Прекратить предложение токенизатора от разделения предложения на "нет" сокращение - PullRequest
1 голос
/ 28 января 2020

Я пытаюсь токенизировать следующий тип предложения:

"The item at issue is no. 3553."

Каждый пробный токенизатор, который я пробовал до сих пор, возвращает следующее (включая токенайзер Punkt, обученный в моем корпусе):

[["the", "item", "at", "issue", "is", "no."], ["3553."]]

Добавление аббревиатуры «нет» в токенизатор может стать проблемой для предложений, заканчивающихся на «нет»

Ответы [ 2 ]

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

Боюсь, что единственный способ для системы понять разницу между no. аббревиатурой и no. концом предложения, это понять полный контекст предложения. И это выходит за рамки для токенизаторов basi c и начинает блуждать в машинное обучение (ML) или обработку естественного языка (NLP).

Тем не менее, при прогнозных моделях можно увидеть no. с последующими цифрами.

0 голосов
/ 04 февраля 2020

Вы можете сначала заменить любое вхождение «нет». с "нет". Это может быть частью вашей предварительной обработки текста. Ниже приведено регулярное выражение:

>>> str='The item at issue is no 3553 and no 3554. This is also described in issue no.  7890 with details. No. 345 is the root cause'
>>> p=re.compile('([n|N]o)[.]\s*(\d+)')
>>> m=p.sub(r'\1 \2',str)
>>> m
'The item at issue is no 3553 and no 3554. This is also described in issue no 7890 with details. No 345 is the root cause'

После этого вы можете применять свои токенизаторы.

...