斯坦福NER CharacterOffsetBegin

时间:2015-04-13 21:15:37

标签: nlp stanford-nlp named-entity-recognition

我使用Stanford CoreNLP作为NER的短文档列表。

java -cp "*" -Xmx2g edu.stanford.nlp.pipeline.StanfordCoreNLP
-annotators tokenize,ssplit,pos,lemma,ner -ssplit.eolonly -pos.model edu/stanford/nlp/models/pos-tagger/english-caseless-left3words-distsim.tagger
-ner.model edu/stanford/nlp/models/ner/english.all.3class.caseless.distsim.crf.ser.gz
-file .../input -outputDirectory .../stanford_ner

问题是来自每个令牌的CharacterOffsetBeginCharacterOffsetEnd是来自先前文档的连续号码。因此,例如document_2的第一个令牌的CharacterOffsetBegin为240而不是0.我可以在命令行中使用任何选项吗?非常感谢任何帮助,谢谢!

1 个答案:

答案 0 :(得分:1)

是 - 如果您将输入拆分为单独的文件。批处理作业有-filelist选项。在您的情况下,文件列表的每一行都有一个文档文件的路径。例如,如果您在目录.../input中包含所有单独的doc文件,则input.txt包含以下内容:

.../input/doc_1.txt
.../input/doc_2.txt
.../input/doc_3.txt

尽管如果可能的话,将完整的路径放在那里可能是个好主意。然后,您将执行CoreNLP:

java -cp "*" -Xmx2g edu.stanford.nlp.pipeline.StanfordCoreNLP
-annotators tokenize,ssplit,pos,lemma,ner -ssplit.eolonly -pos.model edu/stanford/nlp/models/pos-tagger/english-caseless-left3words-distsim.tagger
-ner.model edu/stanford/nlp/models/ner/english.all.3class.caseless.distsim.crf.ser.gz
-filelist .../input.txt -outputDirectory .../stanford_ner

如果您编写一些脚本将input拆分为多个文档,那么同时生成input.txt可能是个好主意。

这将为您处理的每个文档重新启动令牌计数器。