CRF для NER со многими классами

Я собираюсь разработать систему распознавания именованных объектов со многими (100+) классами. Предполагая, что они имеют примерно одинаковую частоту, какой алгоритм должен работать лучше всего? Согласно моему пониманию (к сожалению, далекому от идеала) того, как работает CRF, здесь все должно быть в порядке. Но в некоторых источниках () Я нашел другое мнение.

Итак, подходит ли алгоритм CRF для NER с огромным количеством классов?


person dveim    schedule 09.08.2014    source источник


Ответы (1)


О каких классах здесь идет речь? Не скромничай :)

Вероятно, вам лучше всего использовать иерархический подход:

  1. Иметь небольшое количество корневых классов, таких как «продукт», «человек», «место». Первый проход выясняет, кто из них кто.

  2. Затем для каждого из корневых классов создайте подклассы, такие как «автомобильный продукт», «электронный продукт» и т. д.

person Neil McGuigan    schedule 10.08.2014
comment
Проблема в том, что я не знаю этих классов. Они будут обучены машинам и недружелюбны к человеку. Я хочу найти атомарную (по смыслу) часть текста (например, подлежащее/сказуемое/глагол, но немного более общее. Тем не менее, я думаю, что эти значения будут во многом пересекаться). Например: ‹тема›мы‹/тема› ‹уведомление›рады сообщить‹/уведомление› ‹возражение›вы‹возражаете› ‹предлог›что‹/предлог› ‹тема›вы выиграли в лотерею‹/тема› - person dveim; 11.08.2014
comment
Вы должны знать классы для NER. Я бы начал с POS-тегов. Для этого вы можете использовать Стэнфордский CoreNLP. nlp.stanford.edu/software/tagger.shtml - person Neil McGuigan; 11.08.2014
comment
Да, я использую POS-теги в качестве функций. Кроме того, в рассылке stanford-nlp-users я получил ответ для CRF efficiency for many classes - CRF не может с этим справиться. Мне посоветовали использовать условную марковскую модель, но мне нужно время для исследования. - person dveim; 11.08.2014