0

我想找到两个字符串之间的相似性示例

string1 = "One"
string2 = "one"

我希望答案在 0 和 1 之间。对于上述两个字符串,我们得到 1。现在我正在使用“Jellyfish”,这是 python 中的一个模块,它具有 jaro_distance() 函数。但缺点是我只能比较两个只包含英文单词和其他特殊字符的字符串。但我想比较其他语言的两个字符串,比如旁遮普语

string1 = "ਬੁੱਧਵਾਰ"
string2 = "ਬੁੱਧਵਾ"

我尝试了相同的 jaro_distance() 函数,但我得到了

>>score = jellyfish.jaro_distance(unicode(string1), unicode(string2))
UnicodeDecodeError: 'ascii' codec can't decode byte 0xe0 in position 0: ordinal not in range(128)

在将它们提供给函数之前,我尝试对它们进行编码和解码。有没有办法将 jaro_distance() 用于其他语言,或者是否有其他可用的模块/功能?你们能帮我解决这个问题吗?

4

1 回答 1

3

您可以使用SequenceMatcher内置模块中的difflib

代码示例:

import difflib

print(difflib.SequenceMatcher(None, "ਬੁੱਧਵਾਰ", "ਬੁੱਧਵਾ").ratio())

输出:

0.9230769230769231
于 2021-09-29T13:27:31.263 回答