我们可以在通过 NER 标记的实体周围找到句子吗?

小谢尔顿

我们已经准备好了一个模型,它可以识别一个自定义命名实体。问题是,如果给出整个文档,那么如果只给出几句话,模型就不能按预期工作,它会给出惊人的结果。

我想在标记实体之前和之后选择两个句子。

例如。如果文档的一部分有 world Colombo(标记为 GPE),我需要选择标签前的两个句子和标签后的 2 个句子。我尝试了几种方法,但复杂性太高了。

在 spacy 中是否有一种内置方法可以解决这个问题?

我正在使用 python 和 spacy。

我尝试通过识别标签的索引来解析文档。但是这种方法真的很慢。

aab

看看您是否可以改进自定义命名实体识别器可能是值得的,因为额外的上下文损害性能应该是不寻常的,并且如果您解决该问题,它可能会在整体上更好地工作。

但是,关于您关于周围句子的具体问题:

AToken或 a Span(实体是 a Span)具有一个.sent属性,属性为您提供了作为 a 的覆盖句子Span如果您查看给定句子的开始/结束标记之前/之后的标记,您可以获得文档中任何标记的上一个/下一个句子。

import spacy

def get_previous_sentence(doc, token_index):
    if doc[token_index].sent.start - 1 < 0:
        return None
    return doc[doc[token_index].sent.start - 1].sent

def get_next_sentence(doc, token_index):
    if doc[token_index].sent.end + 1 >= len(doc):
        return None
    return doc[doc[token_index].sent.end + 1].sent

nlp = spacy.load('en_core_web_lg')

text = "Jane is a name. Here is a sentence. Here is another sentence. Jane was the mayor of Colombo in 2010. Here is another filler sentence. And here is yet another padding sentence without entities. Someone else is the mayor of Colombo right now."

doc = nlp(text)

for ent in doc.ents:
    print(ent, ent.label_, ent.sent)
    print("Prev:", get_previous_sentence(doc, ent.start))
    print("Next:", get_next_sentence(doc, ent.start))
    print("----")

输出:

Jane PERSON Jane is a name.
Prev: None
Next: Here is a sentence.
----
Jane PERSON Jane was the mayor of Colombo in 2010.
Prev: Here is another sentence.
Next: Here is another filler sentence.
----
Colombo GPE Jane was the mayor of Colombo in 2010.
Prev: Here is another sentence.
Next: Here is another filler sentence.
----
2010 DATE Jane was the mayor of Colombo in 2010.
Prev: Here is another sentence.
Next: Here is another filler sentence.
----
Colombo GPE Someone else is the mayor of Colombo right now.
Prev: And here is yet another padding sentence without entities.
Next: None
----

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

我们可以通过名称访问VMX设备吗?

来自分类Dev

我们可以通过docker化Azure功能吗?

来自分类Dev

我们如何使用Spacy minibatch和GoldParse使用BILUO标记方案来训练NER模型?

来自分类Dev

我们能通过255吗?

来自分类Dev

我们可以理解吗?

来自分类Dev

我们可以关闭MouseEvents吗?

来自分类Dev

我们可以通过拥有非私有instanceName来创建Singleton类吗?

来自分类Dev

我们可以通过RabbitMQ加快发布消息的速度吗

来自分类Dev

我们可以通过参数调用斯卡拉函数多态而不会变形吗

来自分类Dev

我们可以通过Chromecast将通知发送到电视吗?

来自分类Dev

我们可以通过打开下载文件夹吗?意图?

来自分类Dev

我们可以在开发模式下通过ruby on rails发送电子邮件吗?

来自分类Dev

我们可以通过电子邮件接收发布通知吗?

来自分类Dev

我们可以通过Android中的流链接下载音乐吗

来自分类Dev

我们可以通过编程方式缓存Google地图吗?

来自分类Dev

我们可以通过hireddis将C int数组设置为Redis中的键值吗?

来自分类Dev

我们可以通过在Java中编写upper来代替UPPER函数吗?

来自分类Dev

我们可以用+ =来转换吗:rotate('x'deg); 通过Javascript的CSS属性

来自分类Dev

我们可以通过DM脚本控制EDS的获取吗?

来自分类Dev

我们可以通过'.desktop'文件控制终端窗口大小吗

来自分类Dev

我们可以通过WEB / REST API访问Apple Watch跟踪数据吗?

来自分类Dev

我们可以通过图像分割任务创建显着图吗?

来自分类Dev

我们可以通过专用链接访问azure Web应用程序吗

来自分类Dev

通过iframe传输对象时,我们可以保留__proto__吗?

来自分类Dev

我们可以通过编程方式删除“反应选择”中的选定选项吗?

来自分类Dev

我们可以通过masstransit一起使用RabbitMQ和Mediatr吗?

来自分类Dev

我们可以通过'.desktop'文件控制终端窗口大小吗

来自分类Dev

我们可以通过打开下载文件夹吗?意图?

来自分类Dev

我们可以通过检查存在性来动态创建对象吗?

Related 相关文章

  1. 1

    我们可以通过名称访问VMX设备吗?

  2. 2

    我们可以通过docker化Azure功能吗?

  3. 3

    我们如何使用Spacy minibatch和GoldParse使用BILUO标记方案来训练NER模型?

  4. 4

    我们能通过255吗?

  5. 5

    我们可以理解吗?

  6. 6

    我们可以关闭MouseEvents吗?

  7. 7

    我们可以通过拥有非私有instanceName来创建Singleton类吗?

  8. 8

    我们可以通过RabbitMQ加快发布消息的速度吗

  9. 9

    我们可以通过参数调用斯卡拉函数多态而不会变形吗

  10. 10

    我们可以通过Chromecast将通知发送到电视吗?

  11. 11

    我们可以通过打开下载文件夹吗?意图?

  12. 12

    我们可以在开发模式下通过ruby on rails发送电子邮件吗?

  13. 13

    我们可以通过电子邮件接收发布通知吗?

  14. 14

    我们可以通过Android中的流链接下载音乐吗

  15. 15

    我们可以通过编程方式缓存Google地图吗?

  16. 16

    我们可以通过hireddis将C int数组设置为Redis中的键值吗?

  17. 17

    我们可以通过在Java中编写upper来代替UPPER函数吗?

  18. 18

    我们可以用+ =来转换吗:rotate('x'deg); 通过Javascript的CSS属性

  19. 19

    我们可以通过DM脚本控制EDS的获取吗?

  20. 20

    我们可以通过'.desktop'文件控制终端窗口大小吗

  21. 21

    我们可以通过WEB / REST API访问Apple Watch跟踪数据吗?

  22. 22

    我们可以通过图像分割任务创建显着图吗?

  23. 23

    我们可以通过专用链接访问azure Web应用程序吗

  24. 24

    通过iframe传输对象时,我们可以保留__proto__吗?

  25. 25

    我们可以通过编程方式删除“反应选择”中的选定选项吗?

  26. 26

    我们可以通过masstransit一起使用RabbitMQ和Mediatr吗?

  27. 27

    我们可以通过'.desktop'文件控制终端窗口大小吗

  28. 28

    我们可以通过打开下载文件夹吗?意图?

  29. 29

    我们可以通过检查存在性来动态创建对象吗?

热门标签

归档