Python 在将文本传递到Stanford NER tagger之前,需要采取哪些预处理步骤?

Python 在将文本传递到Stanford NER tagger之前,需要采取哪些预处理步骤?,python,nlp,stanford-nlp,Python,Nlp,Stanford Nlp,最初,我遵循了预处理步骤,如停止单词删除、HTML剥离、删除标点符号。然而,当我不这样做时,NER似乎表现得更好。有人能告诉我要遵循哪些预处理步骤吗?斯坦福德纳唯一需要的是干净的文本,我的意思是,没有HTML或任何其他类型的文档元标记。此外,您不应该删除停止词,这些词可能有助于模型决定给某个词添加哪个标签 只需创建一个包含干净文本的文件: echo "Switzerland, Davos 2018: Soros accuses Trump of wanting a 'mafia state' a

最初,我遵循了预处理步骤,如停止单词删除、HTML剥离、删除标点符号。然而,当我不这样做时,NER似乎表现得更好。有人能告诉我要遵循哪些预处理步骤吗?

斯坦福德纳唯一需要的是干净的文本,我的意思是,没有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\u 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
正如您所见,您甚至不需要处理标记化(例如,在句子中查找每个唯一的标记/单词),Stanforder会为您这样做

另一个有用的功能是将Stanforder设置为Web服务:

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或发布一个句子,并将其重新标记:

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.
telnet 127.0.0.1 9191
正在尝试127.0.0.1。。。
已连接到本地主机。
转义字符为“^]”。
瑞士,2018年达沃斯:索罗斯指责特朗普想要一个“黑手党国家”,并抨击社交媒体。
瑞士,2018年达沃斯:索罗斯指责特朗普想要一个“黑手党国家”,并抨击社交媒体。
连接被外部主机关闭。