Число распознается как существительное в модели spacy portuguese

#spacy-3

Вопрос:

Просто из любопытства я хотел бы спросить, почему число «4950» имеет PoS (часть речи) «СУЩЕСТВИТЕЛЬНОЕ» в spaCy v3.1.3, используя большую модель на португальском языке. Его нет в файле исключений токенов GitHub (https://github.com/explosion/spaCy/blob/master/spacy/lang/pt/tokenizer_exceptions.py ).

 nlp = spacy.load('pt_core_news_lg')
doc = nlp('4950')
print(doc[0].text, doc[0].pos_)

#4950 NOUN
 

Есть ли какой-нибудь способ узнать, каковы другие частные случаи?

Комментарии:

1. Что вы подразумеваете под «частными случаями»?

Ответ №1:

Чтобы было понятно, обычно это должно быть ЧИСЛО.

Похоже, что это просто ошибка, и она не влияет на большинство чисел, включая похожие, такие как 4951. Возможно, что где-то в португальских обучающих данных 4950 по какой-то причине помечено как СУЩЕСТВИТЕЛЬНОЕ.

Трудно объяснить отдельные прогнозы статистическими моделями, и они иногда допускают ошибки. Это особенно вопиющее и может указывать на проблему с подготовкой данных, но в целом ошибки, подобные этой, всегда возможны. Смотрите эту тему.

Также обратите внимание, что это, похоже, не проблема в маленькой модели. Я изучу это внутренне, чтобы увидеть, есть ли где-нибудь ошибка.


Быстрое обновление: если вы используете это в предложении, например 4950 maçãs , оно правильно помечено как NUM . Предложения из одного слова — это не то, на чем модели часто обучаются, и это может привести к более странным результатам.

Комментарии:

1. Я вижу, моя проблема заключалась в том, что при использовании Matcher там шаблоны для сопоставления задаются токенами. Означает ли это, что внутренне класс сопоставления рассматривает предложения из одного слова? Спасибо.