0

我有一个 HTML 文档、一个常见拼写错误列表以及每种情况的正确拼写。HTML 文档将多达约 50 页,并且有约 30K 拼写更正条目。

纠正此 HTML 文档中所有拼写错误的有效方法是什么?
(注意:我的实现将在 Python 中,以防您知道任何相关的库。)


我想到了两种可能的方法:

  • 构建拼写数据的哈希表
  • 从 HTML 中解析文本
  • 按空格将文本拆分为标记
  • 如果拼写哈希表中的标记替换为更正
  • 使用更新的文本构建新的 HTML 文档

这种方法对于多词拼写更正将失败,这将存在。以下是一种更简单但似乎效率较低的方法,适用于多词:

  • 迭代拼写数据
  • 在 HTML 文档中搜索单词
  • 如果单词存在替换为更正
4

2 回答 2

3

你是对的,第一种方法比第二种方法快得多(此外,我建议查看Tries而不是直接哈希,对于 30k 字而言,空间节省将非常显着)。

为了仍然能够处理多词情况,您可以跟踪前一个标记,从而检查您的哈希是否有组合字符串,例如“prev cur”。

或者,您可以将多词更正排除在散列之外并结合您的两种方法,首先将散列用于单个单词,然后对多词组合进行扫描(反之亦然)。如果多词更正的数量相对较少,这仍然可能相对较快。

请注意,提取单词标记比仅在空格上拆分更棘手。您不希望仅仅因为在哈希中没有找到带有逗号的“实例”而无法更正错误。

于 2009-12-24T08:39:35.723 回答
2

我同意 Rob 关于使用基于字符的 trie 的建议,因为我在很久以前就基于将有效单词字典存储为 trie 编写了一个拼写校正算法。通过使用分支定界,我能够建议可能拼写错误的单词的正确拼写(通过Levenshtein distance)。此外,由于 trie 只是一个大型有限状态机,因此添加公共前缀和后缀相当容易,因此它可以处理诸如“后国家化主义”之类的“词”。

于 2009-12-25T18:37:56.847 回答