Список дополнительных сокращений для НЛТК? - PullRequest
0 голосов
/ 07 августа 2020

Я пытаюсь использовать Python + NLTK для выполнения сложной токенизации предложений в наборе статей giganti c. К сожалению, это относится к "и др." как конец предложения, а не как сокращение. Я подозреваю, что он сделает то же самое для других сокращений, таких как «eg» или «ie»

Я знаю, что могу добавить что-то вроде этого:

sent_detector = nltk.data.load('tokenizers/punkt/english.pickle')
extra_abbreviations = ['et al']
sentence_tokenizer._params.abbrev_types.update(extra_abbreviations)

Но я не Я не хочу вручную определять все возможные дополнительные сокращения, которые могут встретиться в наборе данных, и вводить их вручную. Кто-нибудь придумал более универсальное решение для этой конкретной проблемы, даже если это просто длинный список сокращений, которые можно загрузить из файла и передать в качестве параметра методу обновления?

1 Ответ

0 голосов
/ 07 августа 2020

Токенизатор предложений SpaCy решит это за вас.

import spacy
nlp = spacy.load('en_core_web_lg')
text = 'Exercise (e.g. riding a bike or taking a hike) will help you live longer. This is a second sentence'
doc = nlp(text)
sentences = [sent.string.strip() for sent in doc.sents]
print(sentences)

Вывод: ['Упражнения (например, катание на велосипеде или поход) помогут вам прожить дольше.', 'Это секунда предложение ']

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...