Определение определенных частей документа с использованием CRF
Моей целью является набор документов (в основном в финансовой сфере), нам необходимо определить его отдельные части, такие как название компании или тип документа и т. Д.
Предполагается, что обучение будет проводиться на нескольких сотнях документов. Очевидно, что у меня было бы неравномерное распределение классов (с None, доминирующим в 99,9% примеров). Я планирую использовать CRF (CRFsuite на Sklearn) и изучил всю необходимую литературу. Мне нужен был совет по следующим направлениям:
Будет ли набор данных достаточен для обучения CRF? Учитывая, что каждый документ может быть разбит на около 100 токенов (каждый токен является обучающим экземпляром), мы получили бы в общей сложности 10000 экземпляров.
- Будет ли набор данных слишком искажен для обучения CRF? Например: на 100 документов у меня будет около 400 экземпляров данного класса и около 8000 экземпляров None.
1 ответ
- Никто не знает, что вы должны попробовать это в своем наборе данных, проверить полученное качество, возможно, проверить модель CRF (например, https://github.com/TeamHG-Memex/eli5 имеет поддержку sklearn-crfsuite - бесстыдный плагин), попытаться придумайте лучшие функции или решите аннотировать больше примеров и т. д. Это всего лишь общая работа с данными. Размер набора данных выглядит с нижней стороны, но в зависимости от того, насколько структурированы данные и насколько хороши функции, для начала может быть достаточно нескольких сотен документов. Поскольку набор данных невелик, вам, возможно, придется потратить больше времени на разработку функций.
- Я не думаю, что дисбаланс классов будет проблемой, по крайней мере, вряд ли это будет вашей главной проблемой.