我想输出txt文件中是否存在类似的句子
示例:
如果.txt文件包含
1。太阳系中最大的行星是什么?
2。如何泡茶?
3。我们太阳系中哪个星球最大?
在这种情况下,它应导致:-
3。我们太阳系中哪个星球最大?
基本上应该比较文件行中是否有超过4或5个单词
答案 0 :(得分:2)
我同意约翰·科尔曼的建议。 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)