В настоящее время я работаю над структурой данных, которая должна сравнивать два текстовых файла и составлять список общих строк. моя программа получает содержимое двух файлов в виде двух строк a и b (содержимое одного файла на переменную). Затем я использую функцию tokenize в цикле for, чтобы разбить строку по каждому предложению. Затем они сохраняются в наборе, чтобы избежать дублирования записей. Я удаляю все повторяющиеся строки в каждой переменной, прежде чем сравнивать их. Затем я сравниваю каждую из двух переменных друг с другом и сохраняю только общую строку. У меня есть ошибка, которая возникает в последней части, когда они сравнивают друг друга. Программа будет относиться к схваткам и их противоположным частям одинаково, когда этого не следует делать. Например, он будет читать «Не следует» и «Не следует» как одно и то же и даст неправильный ответ. Я хочу, чтобы он не читал сокращение и их противоположные части как одно и то же.
import nltk
def sentences(a, b): #the variables store the contents of the files in the form of strings
a_placeholder = a
set_a = set()
a = []
for punctuation_a in nltk.sent_tokenize(a_placeholder):
if punctuation_a not in set_a:
set_a.add(punctuation_a)
a.append(punctuation_a)
b_placeholder = b
set_b = set()
b = []
for punctuation_b in nltk.sent_tokenize(b_placeholder):
if punctuation_b not in set_b:
set_b.add(punctuation_b)
b.append(punctuation_b)
a_new = a
for punctuation in a_new:
if punctuation not in set_b:
set_a.remove(punctuation)
a.remove(punctuation)
else:
pass
return []
make a list of the strings they have in common
: это значитstring_from_file_1 == string_from_file_2
? Если это так, вам не нужна предварительная обработка NLTK, подойдет обычное сравнение строк. Можете ли вы опубликовать несколько строк из каждого файла и пример ожидаемого результата?