Как заставить tokenize не обрабатывать сокращения и их противоположные части как одно и то же при сравнении двух текстовых файлов?

В настоящее время я работаю над структурой данных, которая должна сравнивать два текстовых файла и составлять список общих строк. моя программа получает содержимое двух файлов в виде двух строк 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, подойдет обычное сравнение строк. Можете ли вы опубликовать несколько строк из каждого файла и пример ожидаемого результата?
Daneel R. 12.09.2018 20:52
Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
1
1
53
0

Другие вопросы по теме