我有一个字符串,我想与一个候选人名单相匹配。举个例子:
# ignore case
string = "The Shining" # The Stanley Kubrick Movie
candidates = ['Shining', 'The shins', 'Shining, The']
most_similar(string, candidates)
==> 'Shining, The'
在进行“文本字符串比较”时,我通常在本例中使用Levenshtein distance或比率。但是,我想做一个更复杂的相似性测试,以便在上面的情况下最好的匹配是Shining, The
。你知道吗
我猜这是一个常见的问题,可能已经被广泛地解决了,所以我想知道什么库/工具/等可能是获得我想要做的事情的最佳方式?你知道吗
您正在寻找gensim或fuzzywuzzy包。你知道吗
在这个特定的例子中,您可能倾向于
fuzzywuzzy
,因为您只是尝试进行字符串匹配。你知道吗gensim
更多用于计算文档、段落、句子、单词、语料库等的相似度分数和向量表示。。。目标是捕捉语义/主题意义,而不是字面字符串匹配。你知道吗因此,在您的情况下,使用模糊字符串匹配,您可以:
partial_ratio
函数区分大小写,因此您可能希望将所有输入都小写。它将输出0到100之间的分数(100是一个非常强的匹配)。这取决于你如何从中筛选出匹配项,也许可以使用一个阈值:if score > 75: its a match
。你知道吗我建议您研究一下
fuzzywuzzy
包中的不同函数,看看什么最适合您的情况。你知道吗相关问题 更多 >
编程相关推荐