Добавление полной остановки "." после каждой строки предложения при использовании пространственного НЛП для суммирования - PullRequest
0 голосов
/ 20 января 2020

Я хочу добавить точку остановки после каждой строки предложения, которую я получаю из моего очищенного текста после выполнения очистки текста, чтобы выполнить суммирование с использованием heapq или gensim. Если я не получу полной остановки, heapq или Gensim не поймут разные предложения и примут все предложения как одно. Я использую следующий код:

import en_core_web_sm
nlp = en_core_web_sm.load()
text = nlp(str1_clean_summary)

for sent in text.sents:
  print(sent.string.strip())

str1_clean_summary выглядит следующим образом:

many price increase options 
still believe us need prove consistently 
aim please delay end displeasingich
responds wuickly

Это дает мне предложения в разных строках, но мне нужно добавить точку после каждого предложения, чтобы они рассматриваются отдельно.

1 Ответ

1 голос
/ 20 января 2020

Если вы не хотите возиться с индексацией диапазона, я бы порекомендовал вам добавить последнюю точку к каждому предложению, прежде чем пробежаться через них.

Пример:

import en_core_web_sm
sents = "many price increase options\nstill believe us need prove consistently\naim please delay end displeasingich\nresponds wuickly\n"
sents = sents.replace('\n', '.\n')

nlp = en_core_web_sm.load()
text = nlp(sents)

for sent in text.sents:
  sentence = sent
  print(sentence)

Вывод:

много вариантов повышения цены.

все еще верьте, что нам нужно доказать последовательно.

цель, пожалуйста, задержите конец displeasingich.

отвечает wuickly.

В противном случае вам придется работать с позиционированием токенов (промежутки - это списки токенов, а благодаря простому внутреннему способу организации своего словаря и других ресурсов токены в промежутке являются «указателями» на словарь токенов. Чтобы добавить новый токен, вы должны двигать хвосты каждого промежутка вперед, что хуже, чем просто играть с простой заменой.) Подробнее здесь и здесь .

...