TL; DR
Используйте sent_tokenize
, следите за индексом, где находится фокусное слово, и окном предложений, чтобы получить желаемый результат.
from itertools import chain
from nltk import sent_tokenize, word_tokenize
from nltk.tokenize.treebank import TreebankWordDetokenizer
word_detokenize = TreebankWordDetokenizer().detokenize
text = """As a result may continue to be adversely impacted, by fluctuations in foreign currency exchange rates. Certain events such as the threat of additional tariffs on imported consumer goods from China, have increased global economic and political uncertainty and caused volatility in foreign currency exchange rates. Stores are primarily located in shopping malls and other shopping centers, certain of which have been experiencing declines in customer traffic."""
tokenized_text = [word_tokenize(sent) for sent in sent_tokenize(text)]
sent_idx_with_china = [idx for idx, sent in enumerate(tokenized_text)
if 'China' in sent or 'china' in sent]
window = 2 # If you want 2 sentences before and after.
for idx in sent_idx_with_china:
start = max(idx - window, 0)
end = min(idx+window, len(tokenized_text))
result = ' '.join(word_detokenize(sent) for sent in tokenized_text[start:end])
print(result)
Другой пример, pip install wikipedia
first:
from itertools import chain
from nltk import sent_tokenize, word_tokenize
from nltk.tokenize.treebank import TreebankWordDetokenizer
word_detokenize = TreebankWordDetokenizer().detokenize
import wikipedia
text = wikipedia.page("Winnie The Pooh").content
tokenized_text = [word_tokenize(sent) for sent in sent_tokenize(text)]
sent_idx_with_china = [idx for idx, sent in enumerate(tokenized_text)
if 'China' in sent or 'china' in sent]
window = 2 # If you want 2 sentences before and after.
for idx in sent_idx_with_china:
start = max(idx - window, 0)
end = min(idx+window, len(tokenized_text))
result = ' '.join(word_detokenize(sent) for sent in tokenized_text[start:end])
print(result)
print()
[выход]:
Пепельный лес в Англии, где разворачиваются истории о Пухе, является популярным
туристическая достопримечательность, и включает в себя деревянный мост Пух, где Пух и
Пятачок изобрел пометки. Оксфордский университет Винни Пух
Общество было основано магистрантами в 1982 году. == Цензура в Китае
== В Китайской Народной Республике изображения Пуха были подвергнуты цензуре в середине 2017 года с сайтов социальных сетей, когда интернет-мемы сравнивались
Китайский президент Си Цзиньпин в Пух стал популярным. Фильм 2018 года
Кристоферу Робину также было отказано в освобождении из Китая.