当前位置: 首页 > 知识库问答 >
问题:

斯坦福核心NLP NER输出

古彦
2023-03-14

我曾使用grep和awk从斯坦福CRF-NER的“内联XML”中提取英语文本中的命名实体,我希望在其他人类语言中使用相同的更大工作流。

我一直在尝试法语(西班牙语似乎给我带来了一个Java错误,这是另一个故事),并使用Java-cp stanford-corenlp-4.0.0/stanford-corenlp-4.0.0。jar:stanford-corenlp-4.0.0-models-french。jar edu。斯坦福。nlp。管道StanfordCoreNLP-属性StanfordCoreNLP法语。属性-文件法语。txt-outputFormat text我得到标准文本输出,每个句子都有各种类型的注释,包括正确组合在一起的多单词实体,如下所示:

Extracted the following NER entity mentions:
Puget Sound LOC I-LOC:0.9822963367809222
lac Washington  LOC I-LOC:0.9908561818309122
Canada  LOC I-LOC:0.9804363858330243
États-Unis  LOC I-LOC:0.9973224740712531

我知道解析它是可能的,但当我真的只是想要整个文件中的实体列表时,这似乎浪费了很多处理。

我还能够使用java-cp stanford-corenlp-4.0.0/stanford-corenlp-4.0.0获得单词和ner类型的列。jar:stanford-corenlp-4.0.0-models-french。jar edu。斯坦福。nlp。管道StanfordCoreNLP-属性StanfordCoreNLP法语。属性-文件法语。txt-输出。word、ner和outputFormat conll列

Puget   I-LOC
Sound   I-LOC
et  O
le  O
lac I-LOC
Washington  I-LOC
,   O
à   O
environ O
155 O
km  O
à   O
le  O
sud O
de  O
la  O
frontière   O
entre   O
le  O
Canada  I-LOC
et  O
les O
États-Unis  I-LOC
.   O

除了有点凌乱之外,这还会将多个单词实体分开,从而无法按比例重新缝合。

我更喜欢内联xml(例如

我已经研究了实体提及注释器,但我还没有弄清楚,如果它需要培训,那么我宁愿不使用它。默认文本输出的分组足以满足我的需要。


共有1个答案

翟展
2023-03-14

我在GitHub上的最新代码中添加inlineXML作为ouputFormat选项。这个变化在刚刚发布的4.1.0版本中不可用。GitHub网站上有关于如何将代码构建到jar中的说明。

GitHub网站:https://github.com/stanfordnlp/CoreNLP

 类似资料:
  • 我是Java和Stanford NLP工具包的新手,并试图在一个项目中使用它们。具体地说,我尝试使用Stanford Corenlp toolkit来注释文本(使用Netbeans而不是命令行),并尝试使用http://nlp.Stanford.edu/software/Corenlp.shtml#Usage上提供的代码(使用Stanford Corenlp API)。问题是:有人能告诉我如何在文

  • UIMA和StanfordNLP在流水线操作之后生成输出,比如如果我们想做词性标记,那么在输入文本中首先进行标记化,然后进行词性标记。 我想使用UIMA的标记化,并在Stanford CoreNLP的POS标记器中使用该标记。但是Stanford CoreNLP的POS标记器需要在POS标记器之前运行标记器。 那么,是否可以在同一管道中使用不同的API?是否可以同时使用UIMA标记器和Stanfo

  • 我假设我试图将输出转换成的格式是旧版本的CorenLP的默认输出。有什么方法可以得到所需格式的输出吗?

  • 有人能让我知道核心NLP的区别吗 http://stanfordnlp.github.io/CoreNLP/ 斯坦福大学NLP http://nlp.stanford.edu/

  • 它工作得很好,但需要很多时间;假设我们在一个问答系统中使用它,那么对于每一个新的输入,都必须运行pipeAnnotation。正如你所知道的,每次都要提取一些规则,训练一些数据等,以生成一个带有NLP标记的句子,如POS,NER和...... 首先,我想用RMI和EJB解决这个问题,但是失败了,因为不管是什么JAVA架构,对于每一个新的句子,pipeAnnotation都应该从头开始学习。查看in

  • 我正在注释和分析一系列文本文件。 pipeline.annotate方法每次读取文件时都会变得越来越慢。最终,我得到了一个OutOfMemoryError。 管道初始化一次: 然后,我使用相同的管道实例处理每个文件(如SO和斯坦福大学在其他地方推荐的)。 明确地说,我希望问题出在我的配置上。但是,我确信失速和内存问题发生在pipeline.annotate(file)方法上。 在处理每个文件后,我