Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/354.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 基于字符的拼写检查_Python_Nlp_N Gram_Spelling - Fatal编程技术网

Python 基于字符的拼写检查

Python 基于字符的拼写检查,python,nlp,n-gram,spelling,Python,Nlp,N Gram,Spelling,我正在根据上面提到的示例开发n gram拼写检查。尽管算法方法如下所示: 考虑两个字符串“statistics”和“statistic”。如果n设置为2(提取双克),则两个字符串的相似性计算如下: 最初,这两个字符串被分成两个g: 统计数据-ti的st ta为st ti ic cs 9 Bigram 统计-ti处的st ta为st ti ic ca al 10 Bigram 然后在每个字符串中找到唯一的双图 统计数据-在is ti ic cs的st ta(7个唯一的Bigram) 统计-ti处的

我正在根据上面提到的示例开发n gram拼写检查。尽管算法方法如下所示:

考虑两个字符串“statistics”和“statistic”。如果n设置为2(提取双克),则两个字符串的相似性计算如下:

最初,这两个字符串被分成两个g:

统计数据-ti的st ta为st ti ic cs 9 Bigram

统计-ti处的st ta为st ti ic ca al 10 Bigram

然后在每个字符串中找到唯一的双图

统计数据-在is ti ic cs的st ta(7个唯一的Bigram)

统计-ti处的st ta为ic ca al(8个独特的Bigram)

接下来,找到与这两个术语共享的唯一bi图

有6个这样的双克:ic的st ta是ti

相似性度量使用相似系数计算,公式如下:

相似系数=2*C/A+B

A - unique n-grams in term 1.
B - unique n-grams in term 2.
C - unique n-grams appearing in term 1 and term 2.
上述示例将产生结果(2*6)/(7+8)=0.80。相似度越高,更正的词就越相关

我的程序示例输出如下所示:

Enter a word: ttem
temp : 0.5
stem : 0.5
items : 0.4444444444444444
item : 0.5

我如何在其中选择最有可能的候选人。我希望你能提供一些解决办法。希望见到你们。

基于ngram,没有首选的修正选项。 有些拼写检查器确实提供多重更正。
如果你想选择一个,你可以考虑为选择添加其他规则,比如Levenshtein距离——单词之间的单个字符编辑的最小数量,或者为每个字母给出显著的分数(例如使Z值很多,E值更少,因为Z不太可能被错误地写入)。.

谢谢你,伙计。你能用一些例子详细说明一下给重要性评分吗?基于这篇文章,你可以在其中看到分数: