В настоящее время я использую OpenNLP с UIMA для обозначения слов в предложении. Важно, что одно слово может быть помечено более одного раза. Например, David Cronenberg
следует пометить как director
и person
.
Я знаю, что процесс обучения реализован правильно, потому что у меня есть собственный файл модели, и когда все предложения с одной из меток удаляются из файла модели, обнаруживается другая метка.
Я бы предпочел продолжать использовать 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> .