Для целочисленных значений / значений дат, аннотированных с помощью Prodigy, изучает ли модель spaCy также диапазон значений?

У меня есть сеанс вундеркинда, настроенный для аннотирования определенных числовых значений в документе для возраста (от 0 до 100). Я только аннотирую номер. Мой вопрос: предположим, что вкралось искаженное значение (возраст 1000 или 22,7), поймет ли модель, что даже если оно близко к тексту возраста в документе, его не следует подбирать?

Другими словами, может ли он узнать диапазон целочисленных значений, и если да, будет ли это работать и для формата даты? Например, дата в формате дд / мм / гггг, которая является DOB (все аннотированные - ‹01/01/2000), и есть дата 31/12/2020, будет ли она выбрана, поскольку все аннотированные даты и близко не подходят к этому диапазону?

Спасибо


person ren1199    schedule 23.03.2021    source источник


Ответы (1)


Хороший вопрос! 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
comment
Большое вам спасибо за это, действительно помогли. Однако кажется, что вложения слов для чисел представлены по-разному. Например, I got 10 apples for 50c два числа будут иметь разные вложения, верно? Я думал, что это то, что используется для представления чисел внутри, а не для формы (извиняюсь, если я ошибаюсь). Тогда модель знала бы разницу между 111 и 999? - person ren1199; 29.03.2021
comment
Да, чтобы было ясно, свойство формы - это только одна функция, используемая для представления токенов. Итак, 111 и 999 - это не совсем то же самое, только их формы. - person polm23; 30.03.2021