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