Python 如何计算拼写更正的准确性?
我正在编写一个代码,用于在文本中提取错误的单词,我正在使用python和textblob库。在此库中有一个函数更正,但它只返回基于错误短语的正确短语,例如:Python 如何计算拼写更正的准确性?,python,nlp,textblob,Python,Nlp,Textblob,我正在编写一个代码,用于在文本中提取错误的单词,我正在使用python和textblob库。在此库中有一个函数更正,但它只返回基于错误短语的正确短语,例如: in: b = TextBlob("I havv goood speling!") in: print(b.correct()) out: I have good spelling! 我想计算更正的准确性,即根据原文获得更正的百分比,或仅获得文本中错误单词的数量 有人可以帮我吗?对于字符串比较,您通常使用levensinterdistan
in: b = TextBlob("I havv goood speling!")
in: print(b.correct())
out: I have good spelling!
我想计算更正的准确性,即根据原文获得更正的百分比,或仅获得文本中错误单词的数量
有人可以帮我吗?对于字符串比较,您通常使用levensinterdistance。这对于单词的错误程度很重要,对于更正的准确性,您需要语言数据来检查更正的输出是否正确,但我认为您只需要一个数字来告诉您必须更正的文本比例,这是统计误报、真阳性的简单统计数据,真否定和假否定。只有谷歌的精确性、召回率和f分数。不会恢复信心,会。然而,这并没有真正的帮助,因为正确的单词和那些被固定为最高置信度的单词有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
很容易获得大量已更改的单词。提取所有单词,得到正确的句子并从中提取单词,然后检查新列表中的哪些单词在原始列表中缺失。够了吗?顺便说一句,为什么要使用spacy标记?除非在原始字符串中至少出现一个拼写正确的单词,否则您的代码工作得非常好。例如,如果你用text='I havv good speling and you have good speling'来运行代码,结果是0而不是3。最好是逐字比较原始字符串和固定字符串,例如:printlen[x,y代表x,y代表ziporig_单词,fixed_单词如果x!=y]@jofrev你是对的,我被原始示例句子分心了。