Обнаружение строчных акронимов в тексте - PullRequest
0 голосов
/ 08 октября 2019

Учитывая блок текста в нижнем регистре, как вы идентифицируете аббревиатуры, используя инструмент, подобный Spacy , или что-то подобное? Я пытаюсь разумно использовать заглавные слова, если они являются именами собственными, и у меня возникают проблемы с идентификацией аббревиатур.

POS-тег Spacy довольно хорошо работает для определения имен собственных, включая наиболее распространенные аббревиатуры, через его стандартобъект документа, но я не вижу простого способа отличить короткое имя от аббревиатуры в токенах, которые он возвращает.

Например:

import spacy
nlp = spacy.load('en_core_web_lg')
text = 'joe bought stock in ibm'
doc = nlp(text)
for i, token in enumerate(doc):
    print(i, token.text, token.pos_)

печатает:

0 joe PROPN
1 bought VERB
2 stock NOUN
3 in ADP
4 ibm PROPN

Таким образом, он правильно определил два имени существительных. Однако в токенах для 0 или 4 нет ничего, что идентифицировало бы одно как обычное имя, тогда как другое - аббревиатуру.

Я не могу найти ничего в разъяснениях в документах. Есть ли способ в Spacy, чтобы обнаружить акроним? Если нет, есть ли другие надежные способы?

...