Определение определенных частей документа с использованием CRF

Моей целью является набор документов (в основном в финансовой сфере), нам необходимо определить его отдельные части, такие как название компании или тип документа и т. Д.

Предполагается, что обучение будет проводиться на нескольких сотнях документов. Очевидно, что у меня было бы неравномерное распределение классов (с None, доминирующим в 99,9% примеров). Я планирую использовать CRF (CRFsuite на Sklearn) и изучил всю необходимую литературу. Мне нужен был совет по следующим направлениям:

  • Будет ли набор данных достаточен для обучения CRF? Учитывая, что каждый документ может быть разбит на около 100 токенов (каждый токен является обучающим экземпляром), мы получили бы в общей сложности 10000 экземпляров.

    • Будет ли набор данных слишком искажен для обучения CRF? Например: на 100 документов у меня будет около 400 экземпляров данного класса и около 8000 экземпляров None.

1 ответ

  1. Никто не знает, что вы должны попробовать это в своем наборе данных, проверить полученное качество, возможно, проверить модель CRF (например, https://github.com/TeamHG-Memex/eli5 имеет поддержку sklearn-crfsuite - бесстыдный плагин), попытаться придумайте лучшие функции или решите аннотировать больше примеров и т. д. Это всего лишь общая работа с данными. Размер набора данных выглядит с нижней стороны, но в зависимости от того, насколько структурированы данные и насколько хороши функции, для начала может быть достаточно нескольких сотен документов. Поскольку набор данных невелик, вам, возможно, придется потратить больше времени на разработку функций.
  2. Я не думаю, что дисбаланс классов будет проблемой, по крайней мере, вряд ли это будет вашей главной проблемой.