Nlp 如何使用Stanford NER运行多分类器?

Nlp 如何使用Stanford NER运行多分类器?,nlp,stanford-nlp,named-entity-recognition,Nlp,Stanford Nlp,Named Entity Recognition,我想在一个文件上运行一个内置分类器,然后运行我自己的分类器,合并结果 如何使用Stanford NER,尤其是通过命令行 我知道,但这有点不同,因为问题是关于使用NERServer的多分类器的 看起来我需要使用CoreNLP按顺序运行多个NER模型…没有CoreNLP我能做到吗 假设我有一个文件,内容是“在美国,敏捷的棕色狐狸跳过了懒惰的狗”。我运行其中一个内置分类器,它发现“America”是一个位置,然后我运行我自己的,它发现“fox”和“dog”,结果应该是: the quick brow

我想在一个文件上运行一个内置分类器,然后运行我自己的分类器,合并结果

如何使用Stanford NER,尤其是通过命令行

我知道,但这有点不同,因为问题是关于使用NERServer的多分类器的

看起来我需要使用CoreNLP按顺序运行多个NER模型…没有CoreNLP我能做到吗

假设我有一个文件,内容是“在美国,敏捷的棕色狐狸跳过了懒惰的狗”。我运行其中一个内置分类器,它发现“America”是一个位置,然后我运行我自己的,它发现“fox”和“dog”,结果应该是:

the quick brown <animal>fox</animal> jumped over the lazy <animal>dog</animal> in <location>America</location

在美国,敏捷的棕色狐狸跳过了懒惰的狗因此,如果您下定决心要在命令行的一个命令中执行此操作,那么可以从以下位置开始:

cat corpus.txt | tee `stanfordNER -options here > out1.xml` | myNERTagger -options here > out2.xml && diff out1.xml out2.xml | awk to do whatever merging you want here...

但你可能会发现这不是一个解决方案。你会想用一个小脚本一句一句地写,调用或类似于hook到Stanford tagger中,然后是你所构建的任何自定义tagger,在继续的过程中合并不同之处。标记器的输出格式将极大地改变它的外观

所以你想让Stanford NER进行合并?我看不出这将如何从命令行运行,但如果我在代码中这样做,我可能会设置两个管道,每个管道都配置有自己的模型;为每个模型创建一组重复的关键点,因为默认情况下它们使用相同的关键点;在文本样本上运行两个管道;读取每个结果列表(`CoreMap`s);然后为每个结果创建一个新的CoreMap。尽管如此,我不认为一个数据结构比两个独立的数据结构更有好处。你想要一个命令行工具a)在某些文本上运行Stanford NER,b)在同一文本上运行另一个NER,c)以某种方式将两者合并,对吗?您可以使用
tee
或类似工具来完成这一点,但我不太理解“合并结果”这一点。对于某些粘合代码来说,这可能是一种情况。@ap问题是,如果您一个接一个地运行一个分类器,xml就会变得不稳定,因此需要智能地合并。thx@NeilMcGuigan我明白了——这就是我所说的“合并”部分让我困惑的意思。您希望得到什么样的输出?