Я использую проект Стэнфорда Deepdive, чтобы аннотировать огромный список жалоб общественности на конкретные транспортные средства. Мой проект заключается в использовании описаний проблем и обучении Deepdive, чтобы узнать, как классифицировать проблемы на основе слов в их предложениях. Например, если клиент заявил что-то вроде «неисправности подушки безопасности», тогда глубокий дайв должен быть в состоянии сказать, что это проблема безопасности, и они говорят о части автомобиля. Так что я пытаюсь сделать, это обновить список CoreNLP Named Entity Recognition (NER) Stanford, чтобы начать находить такие слова, а также называть их такими вещами, как «АВТОМОБИЛЬ БЕЗОПАСНОСТИ». Может кто-нибудь подробно объяснить, как добавить новый аннотатор, чтобы CoreNLP мог анализировать эти предложения на основе частей автомобилей и общих проблем. Thank YouКак создать собственный аннотатор в CoreNLP от Stanford?
0
A
ответ
1
Вы просмотрели TokenRegexAnnotator? С правилами вы можете извлечь такие выражения и аннотирование маркер с пользовательским ЯЭРОМ тегом:
{
ruleType: "tokens",
pattern: (/airbag/ /malfunctioned/),
result: Annotate($0, ner, 'CAR SAFETY ISSUE')
}
1
@Blaise правильно, что это звучит, как хорошо подходит для TokensRegex. Однако, если вы хотите создать пользовательский аннотатор, процесс выкладывается по адресу: http://nlp.stanford.edu/software/corenlp-faq.shtml#custom.
На высоком уровне вы хотите создать класс, наследующий от Annotator
, и реализовать конструктор с 2 аргументами MyClass(String name, Properties props)
. Затем в вашем файле свойств вы переходите в CoreNLP, вы должны указать customAnnotatorClass.your_annotator_name = your.annotator.Class
. Вы можете передать свойства этому аннотатору обычным способом, указав your_annotator_name.key = value
.