Какие этапы предварительной обработки необходимо выполнить перед передачей текста в тег Stanford NER? - PullRequest
0 голосов
/ 27 октября 2018

Первоначально я следовал шагам предварительной обработки, таким как, удаление слов, удаление HTML, пунктуация. Однако, когда я не делаю этого, NER, кажется, работает лучше. Может кто-нибудь сказать мне, какие шаги предварительной обработки должны быть выполнены?

1 Ответ

0 голосов
/ 27 октября 2018

Единственное, что нужно StanfordNER - это чистый текст, я имею в виду чистый, без HTML или других мета-тегов документов.Кроме того, вы не должны удалять стоп-слова, они могут быть полезны для модели при решении, какую метку дать определенному слову.

Просто иметь файл с чистым текстом:

echo "Switzerland, Davos 2018: Soros accuses Trump of wanting a 'mafia state' and blasts social media." > test_file.txt

Тогда вы назовете stanford-ner.jar и передадите ему обученную модель, например: classifiers/english.all.3class.distsim.crf.ser.gz и входной файл, например: test_file.txt

Например:

java -cp stanford-ner-2017-06-09/stanford-ner.jar edu.stanford.nlp.ie.crf.CRFClassifier -loadClassifier classifiers/english.all.3class.distsim.crf.ser.gz -textFile test_file.txt -outputFormat inlineXML

Это должно вывести что-то вроде этого:

Switzerland LOCATION
,   O
Davos   PERSON
2018    O
:   O
Soros   PERSON
accuses O
Trump   PERSON
of  O
wanting O
a   O
`   O
mafia   O
state   O
'   O
and O
blasts  O
social  O
media   O
.   O

Как вы можете видеть, вам даже не нужно обрабатывать токенизацию (например, найти каждый уникальный токен / слово в предложении), StanfordNER сделает это за вас.

Еще одна полезная функция - настроить StanfordNER в качестве веб-службы:

java -mx2g -cp stanford-ner-2017-06-09/stanford-ner.jar edu.stanford.nlp.ie.NERServer -loadClassifier my_model.ser.gz -textFile -port 9191 -outputFormat inlineXML

Затем вы можете просто использовать telnet или POST-предложение и получить его обратно с тегами:

telnet 127.0.0.1 9191
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
Switzerland, Davos 2018: Soros accuses Trump of wanting a 'mafia state' and blasts social media.

<LOCATION>Switzerland</LOCATION>, <PERSON>Davos</PERSON> 2018: <PERSON>Soros</PERSON> accuses <PERSON>Trump</PERSON> of wanting a 'mafia state' and blasts social media.

Connection closed by foreign host.
...