我正在编写一个函数来确定"相似性"两句话之间。我首先简单地在difflib中使用python的SequenceMatcher,但是我在单词" swapped"的句子中得到的结果很差。
例如:
所以我编写以下函数来解决这个问题:
def similarity(a, b):
a = a.lower()
b = b.lower()
a_tokens = a.split(" ")
a_permutations = list(" ".join(word) for word in itertools.permutations(a_tokens))
result = 0
for a_permutation in a_permutations:
similarity = SequenceMatcher(lambda w: is_stop_word(w), a_permutation, b).ratio()
if similarity > result:
result = similarity
return result
该功能运行良好,效果更好但我担心大输入可能需要很长时间。关于如何改进它的任何建议?