我使用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
问题是来自每个令牌的CharacterOffsetBegin
和CharacterOffsetEnd
是来自先前文档的连续号码。因此,例如document_2的第一个令牌的CharacterOffsetBegin
为240而不是0.我可以在命令行中使用任何选项吗?非常感谢任何帮助,谢谢!
答案 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
可能是个好主意。
这将为您处理的每个文档重新启动令牌计数器。