Как запустить несколько классификаторов с помощью Stanford NER?


Я хотел бы запустить один из встроенных классификаторов для файла, а затем запустить свой собственный классификатор, объединив результаты.

Как это сделать со Stanford NER, в частности, через командную строку?

Я знаю о Как включить более одного классификатора при использовании Stanford named entity Recognizer?, но это немного отличается, так как этот вопрос задает несколько классификаторов с NERServer.

Похоже, мне нужно использовать CoreNLP для запуска нескольких NER модели в последовательности...я могу сделать это без CoreNLP?

Скажем, у меня был файл с содержанием "быстрая коричневая лиса перепрыгнула через ленивую собаку в Америке". Я запускаю один из встроенных классификаторов, и он находит "Америку" как местоположение, затем я запускаю свой собственный, и он находит "лису" и "собаку", результат должен быть:

the quick brown <animal>fox</animal> jumped over the lazy <animal>dog</animal> in <location>America</location
1 2

1 ответ:

Итак, место для начала работы, если вы намертво настроились на выполнение этого в одной команде из командной строки:

cat corpus.txt | tee `stanfordNER -options here > out1.xml` | myNERTagger -options here > out2.xml && diff out1.xml out2.xml | awk to do whatever merging you want here...
Но вы, скорее всего, обнаружите, что это не решение. Вы захотите перейти от предложения к предложению в небольшом скрипте, вызывая pyner или подобный hook into The Stanford tagger, а затем любой пользовательский tagger, который вы построили, объединяя различия по мере продвижения. Форматирование вывода ваших тегов изменит то, как это выглядит довольно драматично.