Распознавание именованных объектов RegexNER добавить больше столбцов для информации - PullRequest
0 голосов
/ 22 января 2019

Есть способ сделать это?

Добавьте еще один столбец в файл regexner.mapping, который описывает некоторые аспекты именованного объекта, например:

Бакалавр инженерного дела DEGREE 2.0 some_data_information_1

Lalor LOCATION PERSON 2.0 some_data_information_2

лейбористская организация 2.0 some_data_information_3

Идея состоит в том, что при обнаружении упоминания сущности эта информация будет доступна, например, some_data_information можетбыть ключом из другой базы данных или чего-либо еще.

List<CoreMap> entityMentions = document.get(MentionsAnnotation.class);

for (CoreMap entityMention : entityMentions) {
  //get the information in the description column...
  entityMention.get( ... );
} 

Это можно сделать?

1 Ответ

0 голосов
/ 23 января 2019

RegexNER не поддерживает этот тип функциональности в настоящее время. Вы могли бы написать правила TokensRegex, которые делают это, хотя.

# make all patterns case-sensitive
ENV.defaultStringMatchFlags = 0
ENV.defaultStringPatternFlags = 0

# these Java classes will be used by the rules
ner = { type: "CLASS", value: "edu.stanford.nlp.ling.CoreAnnotations$NamedEntityTagAnnotation" }
nerInfo = { type: "CLASS", value: "edu.stanford.nlp.ling.CoreAnnotations$NERInfo" }
tokens = { type: "CLASS", value: "edu.stanford.nlp.ling.CoreAnnotations$TokensAnnotation" }

# define some regexes over tokens
$COMPANY_BEGINNING = "/[A-Z][A-Za-z]+/"
$COMPANY_ENDING = "/(Corp|Inc)\.?/"

# rule for recognizing company names
{ ruleType: "tokens", pattern: ([{word:$COMPANY_BEGINNING} & {tag:"NNP"}]+ [{word:$COMPANY_ENDING}]), action: (Annotate($0, ner, "COMPANY"), Annotate($0, nerInfo, "COMPANY_INFO")), result: "COMPANY_RESULT" }


// replace "edu.stanford.nlp.ling.CoreAnnotations$NERInfo" with a class you define (that class does not exist, I just list it as an example.)

Полная информация об использовании TokensRegex здесь: https://stanfordnlp.github.io/CoreNLP/tokensregex.html

...