Я недавно обновился до Stanford CoreNLP v 4.0.0 с v 3.9.2 и заметил, что производительность в отношении NER снизилась. В частности, v4, похоже, не распознает так много объектов и вообще не распознает URL-адреса или EMAIL. Версия 4 также больше не распознает Google как ОРГАНИЗАЦИЮ (все еще признает Microsoft, но я еще не проводил много тестов в других организациях). Мне было интересно, есть ли изменение в том, как использовать v4? Документация, похоже, не указывает на какие-либо отличия в использовании от того, что я вижу.
Журнал изменений на https://stanfordnlp.github.io/CoreNLP/history.html, похоже, не подразумевает, что NER на английском языке sh должно быть затронуто (хотя в нем говорится, что существует новая токенизация UDv2, которая влияет на теги и синтаксический анализ). Я заметил, что файлы jar между v4 и v3.9.2 отличаются, v4 значительно меньше.
Чтобы продемонстрировать различия, рассмотрим, например, базовый c следующий файл входных данных, который включает все типы сущностей и имеет следующий текст в каждой строке (т.е. два файла basic.txt
и basic4.txt
идентичны и содержат строковые элементы в каждой строке, перечисленные ниже).
he
cancer.
Los Angeles
California
Google
two days
Convention
night actor
special interest
todays ego
$1 million
100%
tonight, not sure
10/10
Islam
Nicole.
Europe
https://www.tom.com
fans@tom.com
@therealdeal
USA
Выполнение следующих двух команд (где переменные среды $CORENLP
и $CORENLP4
указывают на каталог, содержащий версии 3.9.2 и 4.0.0 соответственно , каждый из которых имеет файл jar-файла engli sh models, соответствующий каждой версии). Выход для двух версий вычисляется с помощью двух команд
java -mx2g -cp "$CORENLP4/*" edu.stanford.nlp.pipeline.StanfordCoreNLP -ssplit.eolonly true -annotators tokenize,ssplit,pos,lemma,ner -file basic4.txt -outputFormat text
java -mx2g -cp "$CORENLP/*" edu.stanford.nlp.pipeline.StanfordCoreNLP -ssplit.eolonly true -annotators tokenize,ssplit,pos,lemma,ner -file basic.txt -outputFormat text
Создание двух выходных файлов. basic4.txt.out
и basic.txt.out
соответственно. Новая версия CORENLP 4.0.0, похоже, не может идентифицировать URL, адреса электронной почты, а также не распознает Google как организацию.
Чтобы кратко продемонстрировать, вывод команды diff приведен ниже. Он показывает, что разные версии идентифицируют большинство объектов (с дополнительными подробностями в v4). Однако в версии 4 отсутствует URL, EMAIL и Google как ОРГАНИЗАЦИЯ, как упоминалось ранее.
diff basic.txt.out basic4.txt.out > corenlp.diff
1c1
< Document: ID=basic.txt (21 sentences, 34 tokens)
---
> Document: ID=basic4.txt (21 sentences, 34 tokens)
10c10
< he PERSON
---
> he PERSON -
20c20
< cancer CAUSE_OF_DEATH
---
> cancer CAUSE_OF_DEATH -
30c30
< Los Angeles CITY
---
> Los Angeles CITY LOCATION:0.9501291593275937
39c39
< California STATE_OR_PROVINCE
---
> California STATE_OR_PROVINCE LOCATION:0.558758796557467
45c45
< [Text=Google CharacterOffsetBegin=35 CharacterOffsetEnd=41 PartOfSpeech=NNP Lemma=Google NamedEntityTag=ORGANIZATION]
---
> [Text=Google CharacterOffsetBegin=35 CharacterOffsetEnd=41 PartOfSpeech=NNP Lemma=Google NamedEntityTag=O]
48d47
< Google ORGANIZATION
58c57
< two days DURATION
---
> two days DURATION DURATION:-1.0
64c63
< [Text=Convention CharacterOffsetBegin=51 CharacterOffsetEnd=61 PartOfSpeech=NNP Lemma=Convention NamedEntityTag=O]
---
> [Text=Convention CharacterOffsetBegin=51 CharacterOffsetEnd=61 PartOfSpeech=NN Lemma=convention NamedEntityTag=O]
76,77c75,76
< night TIME
< actor TITLE
---
> night TIME TIME:-1.0
> actor TITLE -
87c86
< special interest IDEOLOGY
---
> special interest IDEOLOGY -
97c96
< todays SET
---
> todays SET SET:-1.0
108c107
< $1 million MONEY
---
> $1 million MONEY MONEY:0.999511595823616
118c117
< 100% PERCENT
---
> 100% PERCENT PERCENT:0.9157902320089298
124c123
< [Text=tonight CharacterOffsetBegin=118 CharacterOffsetEnd=125 PartOfSpeech=RB Lemma=tonight NamedEntityTag=DATE NormalizedNamedEntityTag=THIS NI Timex=<TIMEX3 alt_value="THIS NI" anchorTimeID="t0" temporalFunction="true" tid="t4" type="DATE" valueFromFunction="tf0">tonight</TIMEX3>]
---
> [Text=tonight CharacterOffsetBegin=118 CharacterOffsetEnd=125 PartOfSpeech=NN Lemma=tonight NamedEntityTag=DATE NormalizedNamedEntityTag=THIS NI Timex=<TIMEX3 alt_value="THIS NI" anchorTimeID="t0" temporalFunction="true" tid="t4" type="DATE" valueFromFunction="tf0">tonight</TIMEX3>]
130c129
< tonight DATE
---
> tonight DATE DATE:-1.0
139c138
< 10/10 NUMBER
---
> 10/10 NUMBER NUMBER:-1.0
148c147
< Islam RELIGION
---
> Islam RELIGION ORGANIZATION:0.4330241395436507
158c157
< Nicole PERSON
---
> Nicole PERSON PERSON:0.8292894556058169
167c166
< Europe LOCATION
---
> Europe LOCATION LOCATION:0.8992206702193217
173c172
< [Text=https://www.tom.com CharacterOffsetBegin=163 CharacterOffsetEnd=182 PartOfSpeech=NNP Lemma=https://www.tom.com NamedEntityTag=URL]
---
> [Text=https://www.tom.com CharacterOffsetBegin=163 CharacterOffsetEnd=182 PartOfSpeech=ADD Lemma=https://www.tom.com NamedEntityTag=O]
176d174
< https://www.tom.com URL
182c180
< [Text=fans@tom.com CharacterOffsetBegin=183 CharacterOffsetEnd=195 PartOfSpeech=NNP Lemma=fans@tom.com NamedEntityTag=EMAIL]
---
> [Text=fans@tom.com CharacterOffsetBegin=183 CharacterOffsetEnd=195 PartOfSpeech=ADD Lemma=fans@tom.com NamedEntityTag=O]
185d182
< fans@tom.com EMAIL
191c188
< [Text=@therealdeal CharacterOffsetBegin=196 CharacterOffsetEnd=208 PartOfSpeech=NN Lemma=@therealdeal NamedEntityTag=HANDLE]
---
> [Text=@therealdeal CharacterOffsetBegin=196 CharacterOffsetEnd=208 PartOfSpeech=JJ Lemma=@therealdeal NamedEntityTag=HANDLE]
194c191
< @therealdeal HANDLE
---
> @therealdeal HANDLE -
203c200
< USA COUNTRY
---
> USA COUNTRY LOCATION:0.7231044794961725