spaCy 共指解析 - 命名实体识别 (NER) 返回唯一实体 ID?

2024-01-10

也许我跳过了部分文档,但我试图确定标准 NER 工具集中每个实体的唯一 ID。例如:

import spacy
from spacy import displacy
import en_core_web_sm
nlp = en_core_web_sm.load()

text = "This is a text about Apple Inc based in San Fransisco. "\
        "And here is some text about Samsung Corp. "\
        "Now, here is some more text about Apple and its products for customers in Norway"

doc = nlp(text)

for ent in doc.ents:
    print('ID:{}\t{}\t"{}"\t'.format(ent.label,ent.label_,ent.text,))


displacy.render(doc, jupyter=True, style='ent')

returns:

ID:381    ORG "Apple Inc" 
ID:382    GPE "San Fransisco" 
ID:381    ORG "Samsung Corp." 
ID:381    ORG "Apple" 
ID:382    GPE "Norway"

我一直在看ent.ent_id and ent.ent_id_但根据docs https://spacy.io/api/token。我找不到任何东西ent.root任何一个。

例如,在GCP NLP https://cloud.google.com/natural-language/每个实体都会返回一个 ⟨entity⟩number,使您能够识别文本中同一实体的多个实例。

这是关于位于 ⟨旧金山⟩4 的 ⟨Apple Inc⟩1 的⟨文本⟩2。和 这里有一些关于 ⟨Samsung Corp⟩6 的 ⟨text⟩3。现在,这里还有一些 ⟨text⟩8 关于 ⟨Apple⟩1 及其为 ⟨customers⟩7 提供的 ⟨products⟩5 ⟨挪威⟩9"

spaCy 支持类似的东西吗?或者有没有办法使用 NLTK 或斯坦福大学?


您可以使用neuralcoref库来获得与SpaCy模型一起使用的共指解析,如下所示:

# Load your usual SpaCy model (one of SpaCy English models)
import spacy
nlp = spacy.load('en')

# Add neural coref to SpaCy's pipe
import neuralcoref
neuralcoref.add_to_pipe(nlp)

# You're done. You can now use NeuralCoref as you usually manipulate a SpaCy document annotations.
doc = nlp(u'My sister has a dog. She loves him.')

doc._.has_coref
doc._.coref_clusters

在这里找到安装和使用说明:https://github.com/huggingface/neuralcoref https://github.com/huggingface/neuralcoref

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

spaCy 共指解析 - 命名实体识别 (NER) 返回唯一实体 ID? 的相关文章

随机推荐

  • 当包含 Spring 数据剩余时,Spring 以纯 JSON 而非 HAL 格式返回资源

    当我为我的实体使用 Spring Data Rest 提供的默认控制器时 一切都会正常工作 输出如下所示 links search href http localhost 8080 users search embedded users f
  • iOS 10 上强制使用软件键盘

    当蓝牙 HID 设备 如条形码扫描仪 处于活动状态时 有没有人知道如何强制 iOS 中的屏幕软件键盘 关于 SO 有一些古老的问题 但大多数都是通过手动调整键盘视图的框架来解决的 并且从 iOS 8 开始 该方法似乎不再适用 奇怪的是 似乎
  • 根据 div 的高度动态更改其上边距

    我有一个固定在网页一侧的 div 我需要该 div 垂直居中 使用 CSS 轻松完成 注意 div 的基础高度为 300px sidePanel margin 150px 0 0 0 top 50 position fixed 我遇到的问题
  • MySQL 在 Group By 查询中选择错误的列值

    这是我遇到的一个真正的菜鸟 MySQL 查询问题 我正在编写的游戏中有一个高分表 高分DB记录姓名 等级以及获得的分数 数据库中有许多接近重复的内容 例如 Name Level Score Timestamp key Bob 2 41 12
  • Visual Studio 2017 15.3.0 git 更改包括“storage.ide”,即使 .gitignore 中的 .vs/

    几天前我将VS 2017升级到15 3 0 从那时起 文件 storage ide 一直保留在我修改的文件中 即使我使用过VS 的建议 gitignore https github com github gitignore blob mas
  • 运算符“<”不能应用于“object”和“int”类型的操作数

    我正在 ASP NET 和 C 中创建用户登录 但是在编写函数后 由于错误而无法编译 错误指出 运算符 我想检查 ExecuteNonQuery 的返回值是否大于 0 否则登录会失败 该存储过程是在类的前面与已确认的数据库连接字符串一起创建
  • 展开角度以获得连续相位

    假设我有一系列与此类似的阶段 import numpy as np import matplotlib pyplot as plt phase np linspace 0 100 1000 np pi plt plot phase plt
  • Lisp 反转“全部”函数

    我想在 lisp 中编写一个函数 使用映射函数反转列表中的所有元素 但我不知道如何开始这个 我想我必须以某种方式使用内置的反向函数 例如 如果我有列表 1 2 3 4 5 6 7 8 9 我会得到 9 8 7 6 5 4 3 2 1 或者如
  • 如何在“--help”中定义单击子命令的顺序

    我有这样的代码 import click click group def entry point pass entry point add command lidtk data download documents main entry p
  • 网格上最长的路径,无需重新访问网格单元

    我正在寻找一种算法来找到网格上两点之间的最长路径 但附加的限制是您不能重新访问网格上的单元格 此外 您只能向上 向下 向左 向右移动 考虑到这些限制 我认为走最长的路径与尝试填充尽可能多的空间相同 然而 我在弄清楚如何做到这一点方面遇到了一
  • 在 SSRS 的一张图表中使用 2 个数据集

    是否可以拥有 2 个数据集并在 SSRS 报告的一张图表中显示它们的数据 还是我需要合并这些数据集 我在一个数据集中有已接听的电话数量 在另一个数据集中有未接的电话数量 我想在图表中显示它们 数据保存在不同的区域 这就是为什么我没有一开始就
  • 在圆圈内创建三个垂直点(省略号)

    我想做一个圆圈 div 就像这张图片 我已经尝试过这段代码 discussion after content 2807 font size 1em background 2d3446 width 20px height 20px borde
  • adb 无法连接到 tcp:5037 的守护进程

    我的 adb 无法连接设备 我在跑步adb start server ulucudeMacBook Pro ulucu adb start server daemon not running starting it now at tcp 5
  • 如何在已安装的 PWA 应用程序上推送应用程序更新?

    我的问题是 用户是否可以在无需重新安装 PWA 应用程序的情况下获取这些更改 我在生产中部署了一个 PWA 应用程序 客户端已在其移动设备中安装了已部署的 PWA 应用程序 我想在 HTTP 服务器中的 PWA 应用程序中部署另一个更新补丁
  • 使用 sed、awk、tr 和朋友删除尾随/开始换行符

    我想从文件中删除所有空行 但仅当它们位于文件的末尾 开头时 也就是说 如果它们之前没有非空行 则在开头 并且如果有最后 其后没有非空行 除了 Perl 或 Ruby 等功能齐全的脚本语言之外 这是否可能 我更愿意这样做sed or awk如
  • Haskell:检查两个列表是否相等

    我想检查是否有两个列表A and B是相等的 即a1 b1 a2 b2 我有一个可行的解决方案 all x gt x zipWith A B 另一个想法是递归地执行 a as b bs 检查是否a1 b1并使用剩余列表调用该函数as and
  • 在超类中缓存属性

    例如 我有一个类可以缓存一些值以避免多次计算它们 class A object def init self a b self a a self b b self value None property def value self if s
  • Github 创建带有 2 因素身份验证的令牌

    我正在尝试授权用户并取回令牌 用户已启用两因素身份验证 这是我尝试使用的代码 它不会接受我通过短信获得的代码 如果用户未启用 2fa 则此方法有效 curl i u user H X GitHub OTP code d scopes rep
  • 带中继的 TypeScript:无法解析生成的模块

    In my MessageItem tsx组件我有以下代码 const data useFragment graphql fragment MessageItem message on Message date body message a
  • spaCy 共指解析 - 命名实体识别 (NER) 返回唯一实体 ID?

    也许我跳过了部分文档 但我试图确定标准 NER 工具集中每个实体的唯一 ID 例如 import spacy from spacy import displacy import en core web sm nlp en core web