Python 如何在文本文件中使用levenshtein距离查找与另一个句子相似的句子开头?
我需要在文本文件中找到所有句子的开头,但问题是,我在文件中查找的句子可能与我在数组中的句子有一些不同 我想用levenshtein距离来比较句子,问题是我该拿什么来比较?文件很大,句子最多只有一行 到目前为止,这是我的代码,没有任何相似距离的简单比较Python 如何在文本文件中使用levenshtein距离查找与另一个句子相似的句子开头?,python,regex,dataframe,similarity,levenshtein-distance,Python,Regex,Dataframe,Similarity,Levenshtein Distance,我需要在文本文件中找到所有句子的开头,但问题是,我在文件中查找的句子可能与我在数组中的句子有一些不同 我想用levenshtein距离来比较句子,问题是我该拿什么来比较?文件很大,句子最多只有一行 到目前为止,这是我的代码,没有任何相似距离的简单比较 import re import pandas as pd data = pd.read_excel("./excel_file_with_the_sentences.xlsx") df = pd.DataFrame(data
import re
import pandas as pd
data = pd.read_excel("./excel_file_with_the_sentences.xlsx")
df = pd.DataFrame(data, columns=['Année', 'Journal', 'A_Sommaire', 'Numero'])
# print(df)
jo = df.query("Année == 2018")
jo.sort_values(by=['Numero'], inplace=True)
# "A_Sommaire" contains the sentences the other fields are there to filter and sort only
print(jo["A_Sommaire"])
print(len(jo))
#################################################################################
file_path = "./the_file_with_the_text.txt"
file = open(file_path)
txt = file.read()
##################################################################################
titles = [t for t in jo["A_Sommaire"]]
print(titles)
beginnings = []
for title in titles:
# here I get the iterator that point to the first title encontred
# and I want to change it so that it can search for the first "similar"
# title or sentence
beginning = re.finditer(title, txt, flags=re.MULTILINE)
beginnings.append([b.start() for b in beginning])
print(beginnings)
结果是:
[]、[]、[]、[]、[]、[13898]、[17136]、[17645]、[18743]、[19886]、[21010]、[22165]、[26885]、[31049]、[33333]、[35260]、[37339]、[39760]、[41822]、[45880]、[54839]、[
这是不完整的,通常不存在空值,因为Excel文件中的每个句子都应该在文本文件中至少出现一次
所以我的问题是,我怎样才能用levenshtein距离或任何其他方法来确定相似度,在文本文件中得到我所有句子的开头
注意这些文件太大,甚至无法尝试获取一部分作为示例,因此我对此感到抱歉。是否可以在
处拆分该字符串代码>标记?(一个点和一个空格)。这样你就可以把你所有的句子排成一个数组。我不太明白为什么。但是这个句子是一堆单词和点,我并不特别需要点或空格,我只需要知道句子在文件中的位置,所以是的,可以拆分或使用它做任何事情。可以在处拆分字符串吗代码>标记?(一个点和一个空格)。这样你就可以把你所有的句子排成一个数组。我不太明白为什么。但是这个句子是一堆单词和点,我并不特别需要点或空格,我只需要知道这个句子在文件中的位置,所以是的,可以拆分或使用它做任何事情。