0%

如何计算拼写校正的准确性

❓ 我正在使用用于提取文本中错误单词的代码,正在将Python与textblob库一起使用。 在这个库中有一个函数Correction(),但是它只是基于错误的短语返回正确的短语,例如:

1
2
3
in: b = TextBlob("I havv goood speling!")
in: print(b.correct())
out: I have good spelling!

我想计算更正的准确性,即根据原始文本获取更正的百分比,或者仅获取文本中错误词的数量。


✔️ correct方法不会返回置信度,word.spellcheck会返回。 但是,它并不能真正帮助纠正单词,那些以最高置信度固定的单词的置信度值为1.0,并且您无法推断出有多少个单词得到了纠正。

您可以通过获取原始单词列表,固定单词列表,然后使用列表推导来获取原始列表中缺少的单词,从而获得其编号:

1
2
3
4
5
from textblob import TextBlob
text = 'I havv goood speling!'
orig_words = text.split()
fixed_words = TextBlob(text).correct().split()
print(len([(x,y) for x,y in zip(orig_words, fixed_words) if x != y])) # => 3