我正在编写一段代码,用于提取文本中的错误单词,我正在使用带有"textblob“库的python。在这个库中有一个函数correction(),但它只是根据错误的短语返回正确的短语,例如:
in: b = TextBlob("I havv goood speling!")
in: print(b.correct())
out: I have good spelling!我想计算纠错的准确率,即根据原文获得纠错的百分比,或者只是获得文本中错误单词的数量。
有人能帮我吗?
发布于 2019-10-01 18:15:26
correct method不会给你信心,而Word.spellcheck会。然而,它并没有真正的帮助,因为正确的单词和那些以最高置信度修复的单词具有1.0的置信度,并且您无法推断有多少单词被更正。
你可以通过获取原始单词列表,固定单词列表,然后使用列表理解来获取原始列表中缺少的单词,从而获得它们的编号:
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发布于 2019-10-01 18:12:36
对于字符串比较,通常使用Levensthein距离。这对于一个单词的“错误程度”是很重要的,为了纠正的准确性,你需要语言数据来检查更正()的输出是否正确,但我认为你只需要一个数字来告诉你必须纠正的文本的比例,这是计算假阳性,真阳性,真阴性和假阴性的简单统计数据。只要谷歌“精确度”,“召回”和"f-score“。
https://stackoverflow.com/questions/58181908
复制相似问题