两个带字符串列表的相似性得分

2024-05-13 00:54:44 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个字符串列表作为查询,还有几百个其他字符串列表。我想将查询与其他列表进行比较,并提取它们之间的相似度得分。在

示例:

query = ["football", "basketball", "martial arts", "baseball"]

list1 = ["apple", "football", "basketball court"]

list2 = ["ball"]

list3 = ["martial-arts", "baseball", "banana", "food", "doctor"]

我现在所做的和我不满意的结果是他们之间的绝对比较。在

^{pr2}$

我找到了一个可能对我有帮助的图书馆,但我在想你是否有其他的建议。在


Tags: 字符串示例apple列表querylist2ballbasketball
1条回答
网友
1楼 · 发布于 2024-05-13 00:54:44

如果您正在寻找一种方法来查找字符串之间的相似性,SO question建议使用Levenshtein distance作为一种方法。在

有一个solution就绪,它也存在于Natural Language Tool Kit库中。在

这个天真的积分将是(我使用random仅仅是为了得到一个结果。显然没有道理):

#!/usr/bin/env python
query = ["football", "basketball", "martial arts", "baseball"]
lists = [["apple", "football", "basketball court"], ["ball"], ["martial-arts", "baseball", "banana", "food", "doctor"]]
from random import random

def fake_levenshtein(word1, word2):
    return random()

def avg_list(l):
        return reduce(lambda x, y: x + y, l) / len(l)

for l in lists:
    score = []
    for w1 in l:
        for w2 in query:
            score.append(fake_levenshtein(w1, w2))
    print avg_list(score)

祝你好运。在

相关问题 更多 >