Python:如何从txt-fi中找到最匹配的句子

2024-06-11 08:47:53 发布

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

如果在txt文件中有类似的句子,我想输出

示例:
如果.txt文件包含

1。太阳系中最大的行星是什么?
2。怎么泡茶?
三。哪个是我们太阳系最大的行星?在

在这种情况下,它应该结果:-
三。哪个是我们太阳系最大的行星?在

基本上,它应该比较是否有超过4或5个单词在文件的行中是相似的


Tags: 文件txt示例情况行星单词句子太阳系
1条回答
网友
1楼 · 发布于 2024-06-11 08:47:53

我同意约翰·科尔曼的建议。difflib可以帮助您找到两个字符串之间的相似性度量。以下是一种可能的方法:

from difflib import SequenceMatcher

sentences = []
with open('./bp.txt', 'r') as f:
    for line in f:
        # only consider lines that have numbers at the beginning
        if line.split('.')[0].isdigit():
            sentences.append(line.split('\n')[0])
max_prob = 0
similar_sentence = None
length = len(sentences)
for i in range(length):
    for j in range(i+1,length):
        match_ratio = SequenceMatcher(None, sentences[i], sentences[j]).ratio()
        if  match_ratio > max_prob:
            max_prob = match_ratio
            similar_sentence = sentences[j]
if similar_sentence is not None:
    print(similar_sentence)

相关问题 更多 >