我有一个文本作为 in put, wh ere ther e are occassi on aly brok en wor ds.
是否有NLTK
或类似函数可以将输出返回为
I have a text as an input, where there are occassionaly broken words.
?
您不会在一个函数中获得所有内容,但您可以在 Pyenchant 库的帮助下检查单词的拼写。您可以执行以下步骤:
- 取这句话
- 使用 nltk 单词标记器标记单词
- 在 pyEnchant 提供的字典中检查每个 如果该单词
- 在字典中,则表示单词是正确的,否则使用pyEnchant提供的功能获取与该单词相关的建议单词
- 计算错误单词和每个建议单词之间的最小编辑距离(levenshtein 距离(
- 以最小的距离取词
是的,我不会说它的性能效率很高,因为pyEnchant词典包含许多看起来不合法的单词,但在某些情况下可以工作。
上面的方法是使用Levenshtein距离,也可以使用Ngrams,jaccard系数进行拼写更正。
我已经实现了这个任务,你可以检查我的gitHub链接(https://github.com/rameshjesswani/Semantic-Textual-Similarity/blob/master/nlp_basics/nltk/string_similarity.ipynb(