Хороший вопрос! spaCy внутренне не представляет числовые токены как числа, поэтому у него нет явного представления о значениях. В этом смысле он не может отличить действительные значения возраста от недопустимых.
Однако spaCy действительно использует функции формы при представлении токенов, которые помогут ему распознать допустимый возраст. Существуют разные типы токенов формы, но тот, который использует spaCy, будет представлять слова путем преобразования символов в представление типа символа. Работает это так:
- spaCy → xxxXx
- рыба → xxxx
- Рыба → Xxxx
- 23 → dd
- 1000 → дддд
- 22.7 → dd.d
Из-за этого вы могли ожидать, что spaCy узнает, что двузначные числа, скорее всего, будут возрастом, но числа с десятичными или четырехзначными числами маловероятны. С другой стороны, это не помогает отличить 100 от 999.
Для дат это не поможет определить действительные или недействительные даты рождения. Форма - это лишь одна из функций spaCy, но другие функции, такие как префикс и суффикс, тоже не помогут в этом.
Так как числовые значения в коде легко проверить, то, что я предлагаю, является широкое сопоставление в spaCy, а затем использование вашей собственной функции для проверки правильности даты или возраста путем их анализа.
В частности, за пределами spaCy вопрос о том, как модели НЛП представляют числовые значения, на самом деле становится все более популярной темой исследований - если вы хотите узнать об этом больше, это недавняя статья по этой теме: Знают ли языковые модели, насколько тяжелый слон?
person
polm23
schedule
25.03.2021