В настоящее время я использую OpenNLP с UIMA для обозначения слов в предложении. Важно, чтобы одно слово могло быть помечено более одного раза. Например, David Cronenberg
должен быть помечен как director
и person
.Распознавание нескольких именованных типов сущностей при именной фразе с использованием NLP
Я знаю, что процесс обучения реализован правильно, потому что у меня есть пользовательский файл модели, и когда все предложения с одним из меток удаляются из файла модели, обнаруживается другая метка.
Я бы предпочла продолжить использование OpenNLP для двойных слов. Есть ли способ сделать это? Если это не возможно с другой библиотекой, такой как Stanford CoreNLP.
код, который получает этикетки ниже:
List<NamedEntity> entities = JCasUtil.selectCovered(NamedEntity.class, aConstituent);
if (!entities.isEmpty()) {
// is never more than 1
}
И некоторые обучающая выборка данных ниже (есть сотни линий, подобных этому.)
<START:person> David Cronenberg <END> directed <START:film> Crash <END> .
<START:director> David Cronenberg <END> directed <START:film> Scanners <END> .
Обратитесь к разработчикам OpenNLP. Вы можете найти помощь здесь, но вы, скорее всего, найдете там больше. Если это открытый исходный код, то посмотрите на код - вы можете не только найти свой ответ там, но и решение. –