如何使用 CoreNLP 的 RegexNER 检测具有超过 1 个单词的命名实体?

2024-02-06

我在 CoreNLP 中使用 RegexNER 注释器,我的一些命名实体由多个单词组成。摘自我的映射文件:

RAF 抑制剂 DRUG_CLASS

吉尔伯特综合症 疾病

第一个被检测到,但每个单词都获得注释 DRUG_CLASS 并且似乎没有办法链接这些单词,就像两个单词都有的 NER id 一样。

第二种情况根本没有被检测到,这可能是因为标记器将 Gilbert 后面的撇号视为单独的标记。由于 RegexNER 将标记化作为依赖项,因此我无法真正绕过它。

有什么建议来解决这些情况吗?


如果您使用entitymentions注释器将使用相同的 ner 标签从连续标记中创建实体提及。缺点是,如果两个相同类型的实体并排,它们将连接在一起。我们正在努力改进 ner 系统,因此我们可能会包含一个新模型,该模型可以在这些情况下找到不同提及的边界,希望这将进入斯坦福 CoreNLP 3.8.0。

以下是一些用于访问实体提及的示例代码:

package edu.stanford.nlp.examples;

import edu.stanford.nlp.pipeline.*;
import edu.stanford.nlp.ling.*;
import edu.stanford.nlp.util.*;

import java.util.*;

public class EntityMentionsExample {

  public static void main(String[] args) {
    Annotation document =
        new Annotation("John Smith visted Los Angeles on Tuesday.");
    Properties props = new Properties();
    props.setProperty("annotators", "tokenize,ssplit,pos,lemma,ner,entitymentions");
    StanfordCoreNLP pipeline = new StanfordCoreNLP(props);
    pipeline.annotate(document);

    for (CoreMap entityMention : document.get(CoreAnnotations.MentionsAnnotation.class)) {
      System.out.println(entityMention);
      System.out.println(entityMention.get(CoreAnnotations.TextAnnotation.class));
    }
  }
}

如果您只是以与标记器相同的方式对规则进行标记,它将正常工作,因此例如规则应该是Gilbert 's syndrome.

因此,您只需对所有文本模式运行分词器,这个问题就会消失。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何使用 CoreNLP 的 RegexNER 检测具有超过 1 个单词的命名实体? 的相关文章

随机推荐

  • 系统(“暂停”)澄清

    当我使用系统 暂停 时 屏幕上会显示一行 按任意键继续 这很令人恼火 并且使得读取输出变得相当麻烦 有什么办法可以阻止这种情况的发生吗 您的意思是想按任意键继续 但不想在屏幕上显示 按任意键继续 尝试这个getchar 这将捕获从键盘输入的
  • 为什么 Android 上的 Instagram 不接受 Intent.ACTION_SEND_MULTIPLE

    Instagram 应用程序支持多张照片帖子 https help instagram com 269314186824048 https help instagram com 269314186824048 http blog insta
  • 为什么 DateTime 是 .Net 中的结构体?

    Why is DateTime结构体而不是可继承的类 我希望能够重写 ToString 方法 但我不能 可能是因为它被视为一种小型 简单且不可变的数据结构 很像整数或小数 在这些条件下将其设为结构使得使用 DateTime 非常高效 如果它
  • 如何按共同特征组织数据?

    我在对数据进行编目时遇到了麻烦 这种方式允许我通过数据的通用描述符或特征来引用数据 我很清楚继承 特征 编程概念 和接口 但这些似乎都不是我问题的正确答案 我正在用 JavaScript 编写一个程序 该程序可能包含许多不同的项目或对象 假
  • 使用 Flask 和 LangChain 流式传输 ChatGPT 的结果

    基本上我想用 Flask 和 LangChain 来实现这一点 https www youtube com watch v x8uwwLNxqis https www youtube com watch v x8uwwLNxqis 我正在构
  • Hashtable 与 HashMap 中的哈希函数?

    我知道Hashtable和HashMap之间的区别 然而 这两个类似乎都在使用哈希函数完成工作 Hashtable中使用的哈希函数和HashMap中使用的哈希函数有区别吗 特别是 他们使用的哈希算法有区别吗 这两个类中用于散列的公式是什么
  • Rails 3 命名空间和自定义类的问题(未初始化常量)

    我的 Rails 3 2 11 项目中有一个名为app queries visible discussions rb如下所示 class VisibleDiscussions end 我想为查询命名空间 以便我可以使用类似的方法来调用它Qu
  • 当我在存储库中丢失一些修订时,如何转储所有 svn 数据?

    我想转储旧的 svn 源并将其加载到我的新计算机上 我的旧 svn 存储库大约有 100GB 大 当我使用svnadmin dump xx Repositoryfile gt mydump为了转储 svn 文件 我得到了一个 512Mb 大
  • 如何使用Rcpp来加速for循环?

    我创建了一个 for 循环 我想使用 Rcpp 库来加速它 我对C 不太熟悉 你能帮我让我的功能更快吗 感谢您的帮助 我已经包含了我的算法 代码 输入和输出以及 sessionInfo Here is 我的算法 如果当前价格高于先前价格 则
  • Android Studio:恢复“清除只读状态”对话框

    如果源文件是只读的 Android Studio 将显示一个对话框 询问我是否要清除文件的只读状态 以便可以进行编辑 我曾经错误地选中了 不再显示此对话框 的框 然后单击 确定 从那时起 Android Studio 只是清除文件的只读状态
  • WPF DataGrid 过滤 - CollectionViewSource 刷新

    我想知道如何在单击按钮时刷新 CollectionViewSource 到目前为止我已经
  • ExtJS中有map()函数吗?

    ExtJS有Ext each 函数 但是map 是否也隐藏在某处 我已经很努力了 但还没有找到任何可以填补这个角色的东西 这似乎是一些简单而琐碎的事情 像 Ext 这样大的 JS 库显然必须具备 或者当 Ext 确实不包含它时 将其添加到
  • 是否可以在 django 中指定外部 URL 名称

    我刚刚开始在 Django 中命名我的 URL 模式 因此如果我想更改 URL 模式 我只需在一处更改它即可 例如 url r HomeListView as view name home 并在我的模板中引用它 如下所示 url home
  • 如何跳出父函数?

    如果我想打破一个函数 我可以调用return 如果我在子函数中并且想跳出调用子函数的父函数怎么办 有没有办法做到这一点 一个最小的例子 def parent print Parent does some work print Parent
  • Python午夜时间对比

    我必须节省时间AM PM format 但我在决定如何输入午夜时间时遇到困难 假设时间是晚上 9 点到第二天早上 6 点 我必须把它分成日常的基础 像这样 t1 datetime datetime strptime 09 00PM I M
  • 检查两个集合中是否存在任何元素

    我想知道 Linq 是否有一种方法来检查两个集合是否至少有一个共同元素 我期待这样的事情 var listA new List
  • 将包含“id,attribute,value”列的表转换为“id,attribute1,attribute2,...”

    我在数据库中有一个表 如下所示 CustomerId Attribute Value 30 Name John 30 Surname Smith 30 Phone 555123456 为了充分利用这些数据 我需要让它看起来像某样东西 像这样
  • Spritebatch.Begin() 变换矩阵

    我一直想知道 spriteBatch 中的变换矩阵是如何实现的 我创建了一个2D相机 变换矩阵如下 if needUpdate transformMatrix Matrix CreateTranslation Position X Posi
  • 能否强制 AVFoundation 播放本地 .ts 文件?

    显然 AVFoundation 和 Quicktime X 可以解复用并正确播放编码 ts容器 因为 tsHTTPS 实时流媒体底层的容器 缺乏建立本地网络服务来服务 m3u8以及相关的 ts文件 我真的希望能够 说服AVURLAsset
  • 如何使用 CoreNLP 的 RegexNER 检测具有超过 1 个单词的命名实体?

    我在 CoreNLP 中使用 RegexNER 注释器 我的一些命名实体由多个单词组成 摘自我的映射文件 RAF 抑制剂 DRUG CLASS 吉尔伯特综合症 疾病 第一个被检测到 但每个单词都获得注释 DRUG CLASS 并且似乎没有办