我有一个HTML文档,一个常见的拼写错误列表,以及每个案例的正确拼写。 HTML文档最多可达50页,并且有大约30K的拼写更正条目。
纠正此HTML文档中所有拼写错误的有效方法是什么?
(注意:如果你知道任何相关的库,我的实现将在Python中。)
我想到了两种可能的方法:
这种方法将失败,因为多字拼写修正将存在。以下是一种更简单但看似效率较低的方法,适用于多字词:
答案 0 :(得分:3)
你是对的,第一种方法比第二种方法快得多(另外,我建议调查Tries而不是直接哈希,对于30k字,空间节省将非常显着)。
要仍然能够处理多字案例,您可以跟踪前一个令牌,从而检查哈希值是否为“prev cur”等组合字符串。
否则你可以将多字修正从哈希中移除并合并你的两种方法,首先使用单个字的哈希,然后对多字组合进行扫描(反之亦然)。如果多字校正的数量相对较小,这仍然可以相对较快。
小心,拔出单词标记比分裂空白更难。你不想仅仅因为没有找到'instence'而在你的哈希中使用逗号来纠正错误。
答案 1 :(得分:2)
我同意Rob建议使用基于角色的trie,因为我在很久以前编写了一个拼写校正算法,其基础是将有效单词的字典存储为trie。通过使用分支和绑定,我能够建议拼写错误的单词拼写(Levenshtein distance)。另外,由于trie只是一个大型的有限状态机,因此可以很容易地添加公共前缀和后缀,因此它可以处理“postnationalizationalism”之类的“单词”。