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

使用regexner覆盖现有命名实体,同时维护EntityStations的问题

巫马玉堂
2023-03-14

我正在运行Java版本1.8.0_101的Mac上使用斯坦福CoreNLP 3.9.1。我已经运行了CoreNLP,并且能够利用大多数注释器。我试图微调我的命名实体识别,但在使用现有映射时遇到了问题。

以下是属性文件的内容:#此文件通过以下命令启动:#Marks-MacBook-Pro-4:stanford-corenlp-full-2018-02-27 moranmarkd$java-cp“*”-Xmx8g edu。斯坦福。nlp。管道斯坦福德科伦普-道具ner-3。道具

annotators = tokenize,ssplit,pos,lemma,ner

# RegexNER mappings file - this is different than just the regexner file...this should incorporate with Named Entity Mentions
ner.additional.regexner.mapping = regexner-1.txt

# Where to find the list of input files
filelist = CL-Cleaned-Infiles.txt

# Where to place and how to format output
outputDirectory = ../../CL-Cleaned-CoreNLP-ner3-json
outputFormat = json

以下是regexner-1的内容。txt约翰·迪尔\TorOrganization\tPERSON\n新荷兰\TorOrganization\tCOUNTRY\n

我曾尝试在管道末端使用regexner注释器,并调用其他映射(如上所述),但无法覆盖默认标识,即John Deere是个人,New Holland是国家。

我还尝试从一个长命令行调用所有这些相同的设置,但也没有成功:java-cp“*”-Xmx8g-edu。斯坦福。nlp。管道StanfordCoreNLP-anotators tokenize,ssplit,pos,引理,ner-ner。附加的雷格斯纳。映射regexner-1。txt-文件列表填充。txt-outputDirector..//CL-CLEANED-CoreNLP-ner3-json-输出格式json

我更喜欢做额外的映射而不是regexner,以便仍然能够影响实体提及(正如我所理解的管道)。

欢迎提供有关如何排除故障、纠正什么或尝试什么的建议。

最好的

做记号

共有1个答案

封烨伟
2023-03-14

当前的文档与GitHub上当前可用的代码相匹配,因此斯坦福CoreNLP 3.9.1没有经过改进的ner管道(这是几周前刚刚添加的)。我会在这一页上记下来。

我们正在努力尽快推出Stanford CoreNLP 3.9.2(几周内)。

用GitHub的代码创建一个jar非常简单。说明在主页上。

如果你还有其他问题,请告诉我。

https://github.com/stanfordnlp/CoreNLP

我用你的规则在你的示例上运行了这个命令,并得到了正确的结果(使用最新的代码):

java -Xmx10g edu.stanford.nlp.pipeline.StanfordCoreNLP -annotators tokenize,ssplit,pos,lemma,ner -ner.additional.regexner.mapping override_example.rules -file override_example.txt -outputFormat text
 类似资料:
  • 吉尔伯特综合征 第一个会被检测到,但是每个单词都会得到批注DRUG_CLASS,而且似乎没有办法将这些单词链接起来,就像两个单词都有的NER id一样。 第二种情况根本检测不到,这可能是因为标记器将Gilbert后面的撇号作为一个单独的标记。由于RegexNER将标记化作为一个依赖项,所以我真的无法绕过它。 有什么解决这些案件的建议吗?

  • 问题内容: 我正在使用org.hibernate.cfg.ImprovedNamingStrategy,但是对于表我已经明确指定了表名 但是hibernate似乎正在寻找event_log。显式命名不应该覆盖EnhancedNamingStrategy提供的命名 问题答案: 这是org.hibernate.cfg.ImprovedNamingStrategy的行为,它将混合大小写的名称转换为嵌入的

  • 我们在其中一个应用程序中使用pdfbox。一些叠加的PDF会导致输出和字体“损坏”。 下面是我用来覆盖pdf的示例代码。pdf有时具有不同的页数。我们将顶角变平,并将注释设置为只读。pdf页面旋转和bbox大小有时设置不同(尤其是扫描仪),所以我们试图纠正这一点。

  • 问题内容: 我在应用程序引擎中使用Alchemy API,所以在使用simplejson库来解析响应。问题是响应中包含具有sme名称的条目 因此,问题在于重复了“ subType”,因此加载返回的指令只是“ TVActor”,而不是列表。无论如何要解决这个问题? 问题答案: 定义的RFC 4627 表示: 和: 这意味着AlchemyAPI不应在同一个对象内返回多个名称,并声称它是JSON。 您可

  • 问题内容: 我的模型与现场 函数根据图像文件名命名。 但是,当用户更新头像时,新的头像名称与旧的头像名称一致,并且Django在文件名中添加后缀。 有办法覆盖文件而不是创建新文件吗? 问题答案: 是的,这对我也很重要。这就是我所做的。 模型: 还定义在中: 在另一个文件中,: 显然,这些是这里的示例值,但是总体而言,这对我来说效果很好,并且根据需要进行修改应该非常简单。

  • 问题内容: 基本上,每次我从eclipse运行Java代码时,webdriver都会启动一个新的浏览器并成功地执行我的测试。但是,我有很多测试需要运行,并且每次Webdriver都要启动一个新的浏览器会话是一件很痛苦的事情。我需要一种方法来重新使用以前打开的浏览器;因此,webdriver将在第一次运行时打开,然后在第二次运行时运行eclipse程序,我希望它可以简单地选择以前的浏览器实例并继续在