#spacy #named-entity-recognition
#spacy #распознавание именованных объектов
Вопрос:
Я пытаюсь распознать объекты в наборе текстов OCR по изображениям документов. Поскольку текст обычно some_label: value
находится в форме документа, он часто (но не всегда) встречается и в тексте OCR.
Мой вопрос в том, допустим, я пытаюсь аннотировать даты в своих текстовых файлах OCR, и в 80% случаев дата указана в формате Date: xx/xx/xxxx
; было бы лучше, если бы я…
- Помечен только
xx/xx/xxxx
как объект «Моя дата»- Представляет истинную сущность
- Было бы репрезентативно для 100% данных
- ИЛИ пометил весь
Date: xx/xx/xxxx
объект как мою дату- Воспользовался бы часто встречающимся
Date:
префиксом для большей точности?
- Воспользовался бы часто встречающимся
Еще один пример:
Суммы обычно представляются в виде $xxxxxx5.37
и $ 63.75
- Выберите
5.37
и63.75
- Выберите
$xxxxxx5.37
и$ 63.75
(воспользовавшись знаком $)
Какой из них было бы лучшей практикой следовать / привести к лучшей модели?
(PS: я использую Prodigy для аннотирования своих данных)
Ответ №1:
Это зависит от используемой вами архитектуры нейронной сети.
Давайте предположим, что вы используете spaCy v2 и его нейронную архитектуру по умолчанию, которая является CNN. В этом случае архитектура будет скользить по вашему тексту в соответствии с определенным окном (т.е. x количество слов перед date
объектом и x количество слов после date
объекта).
При таком подходе каждый раз, когда маркер Date:
появляется в тексте, вполне вероятно, что нейронная сеть распознает, что объект date
находится рядом с ним.
В этом случае мое предложение состояло бы в том, чтобы включить только аннотацию даты xx / xx / xxxx в качестве объекта. Это даст модели больше гибкости в определении того , что такое дата entity
. Однако тестирование всегда является лучшим способом выяснить, что лучше. Итак, попробуйте 🙂