Переопределение настроек env по умолчанию для TokensRegex в Стэнфорде - PullRequest
0 голосов
/ 17 января 2019

Какое значение для перегрузки edu.stanford.nlp.ling.CoreAnnotations$TextAnnotation до edu.stanford.nlp.ling.CoreAnnotations$OriginalTextAnnotation когда добавлены правила регулярных выражений токена.

Пример примера:

#123456 помечен как ДЕНЬГИ в Стэнфорде, поэтому для переопределения поведения NER я написал правило, которое помечает 123456 как НОМЕР вместо ДЕНЬГИ. В качестве побочного эффекта следующий £20.49 теперь помечен как NUMBER.

Я отладил код и понял, что при применении шаблона edu.stanford.nlp.ling.CoreAnnotations$TextAnnotation используется для сопоставления. Следовательно, в случае, когда £20.49 является входом, £ является значением edu.stanford.nlp.ling.CoreAnnotations$OriginalTextAnnotation, а # является значением edu.stanford.nlp.ling.CoreAnnotations$TextAnnotation.

Есть ли настройки среды, чтобы изменить это поведение?

Пример правила

# 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" }
tokens = { type: "CLASS", value: "edu.stanford.nlp.ling.CoreAnnotations$TokensAnnotation" }

normalizedValue = { type: "CLASS", value: "edu.stanford.nlp.ling.CoreAnnotations$NormalizedNamedEntityTagAnnotation" }

{ ruleType: "tokens", pattern: (([{word:"#"}]) ([{ner:"MONEY"}])), action: (Annotate($1, ner, "IGNORE"), Annotate($2, ner, "NUMBER"), Annotate($0, normalizedValue, "TOKENS_REGEX")), result: "NUMBER" }

1 Ответ

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

Вы должны использовать последнюю версию на GitHub или версию 3.9.2. Валюта больше не нормализуется, поэтому знак фунта больше не будет превращаться в «#» по умолчанию.

Вы должны быть в состоянии сделать что-то вроде

originalWord = { type: "CLASS", value: edu.stanford.nlp.ling.CoreAnnotations$OriginalTextAnnotation }

Тогда вы можете заменить word в вашем правиле на originalWord.

...