gpt4 book ai didi

python - ngrams 结果令人惊讶 python

转载 作者:太空宇宙 更新时间:2023-11-04 05:02:07 26 4
gpt4 key购买 nike

只是尝试使用 Python 的 ngram 库,我遇到了一个与字符串相似性相关的问题。比率输出有点困惑。看看我尝试了什么:

>>> ngram.NGram.compare('alexp','Alex Cho',N=1)*100
30.0
>>>
>>> ngram.NGram.compare('alexp','Alex Plutzer',N=1)*100
21.428571428571427
>>> ngram.NGram.compare('alexp','Alex Plutzer'.lower(),N=1)*100
41.66666666666667
>>> ngram.NGram.compare('alexp','Alex Cho'.lower(),N=1)*100
44.44444444444444
>>> ngram.NGram.compare('alexp','AlexCho'.lower(),N=1)*100
50.0
>>> ngram.NGram.compare('alexp','AlexPlutzer'.lower(),N=1)*100
45.45454545454545

最相似的必须是具有 alexp 的那个,即 Alex Plutzer 但更多的分数被分配给前一个,即 Alex Cho
可以做些什么来获得适当的结果,与竞争者相比,我得到的输出为 Alex Plutzer 且得分较高?

最佳答案

凭借一些领域知识,使用你考虑的 1-grams 和曲线拟合,我声称两个字符串 S 和 T 的相似度是通过以下方式计算的

enter image description here

其中 ngrams 仅给出字符串的 ngrams,大括号表示集合,竖线/竖线表示该集合中元素的数量。

所以如果这个公式成立,你得到的结果是正确的,那么关于这个公式的结果是正确的。也许更适合您的需要的可能是 Levensthein-Distance

也许您想检查以下 stackoverflow thread ,此外,您可能想检查是否 nltk提供您需要的相似度分数

关于python - ngrams 结果令人惊讶 python,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45454668/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com