Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何使用spaCy v3打印NER模型的PRF值?

如何使用spaCy v3打印NER模型的PRF值?
EN

Stack Overflow用户
提问于 2021-05-23 01:46:52
回答 1查看 370关注 0票数 0

上下文

我目前正在为罗马尼亚法律领域制定一个新的模式。我开始使用spaCy v2 (v2.2.4)创建一个自定义模型,并成功地实现了一个代码来查找PRF值。现在,在我转换到spaCy v3 (v3.0.6)之后,我发现很难评估我的模型的性能。

问题

我试着做以下几件事:

  • 在spaCy v3.0.6中使用相同的代码。与spaCy v2.2.4 (问题: GoldParser在spaCy v3.0.6中不存在)一样,
  • 使用spaCy v2.2.4来训练v3.0.6模型(问题:我认为不管它们的版本如何,模型都不是以相同的方式保存)
  • 使用get_ner_prf() (问题:我不知道如何创建类型示例的参数,也不知道如何调用函数)

资源

以下是我目前拥有的所有资源的清单:

  • Config文件用于v3.0.6模型(和所有其他必要的文件)
  • 列车和测试数据以旧的spaCy格式保存
  • 为罗马尼亚

保存了v3.0.6自定义模型

请求

我希望收到一份适用于spaCy v3.0.6并计算PRF值的代码--最好是每个实体类型的单独结果。此外,如果代码只使用上述资源,那将是很棒的。如果需要任何其他信息,我很乐意寄出去。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-05-25 05:56:29

我不再寻找答案了,因为我想明白了。

在下列环节进行的讨论:

https://github.com/explosion/spaCy/discussions/8178

spacy 3 NER Scorer() throws TypeError: score() takes 2 positional arguments but 3 were given

非常有用,我能够编写以下代码(如果读过当前讨论的人仍然发现很难进行转换):

代码语言:javascript
运行
AI代码解释
复制
# TRAIN_DATA format
TRAIN_DATA = [
    ("Who was Hamlet?", [(8,14,'PER')]),
    ("Have you ever met Rome?", [(18,22,'LOC')])
]

import spacy 
from spacy.tokens import Span
from spacy import displacy
from spacy.training import *
from spacy.scorer import Scorer
from spacy.util import minibatch, compounding

nlp = spacy.load("./output/model-best")

# evaluate function
def evaluate(ner_model, testing_data):
    scorer = Scorer()
    examples = []
    for input_, annot in testing_data:
        doc_gold_text = ner_model.make_doc(input_)
        example = Example.from_dict(doc_gold_text, {"entities": annot})
        example.predicted = ner_model(input_)
        examples.append(example)
        
    return scorer.score(examples)

# print the results
print(evaluate(nlp, TRAIN_DATA))

输出的格式如下:

代码语言:javascript
运行
AI代码解释
复制
{'token_acc': 1.0, 'token_p': 1.0, 'token_r': 1.0, 'token_f': 1.0, 'sents_p': 1.0, 'sents_r': 1.0, 'sents_f': 1.0, 'tag_acc': None, 'pos_acc': None, 'morph_acc': None, 'morph_per_feat': None, 'dep_uas': None, 'dep_las': None, 'dep_las_per_type': None, 'ents_p': 0.9833333333333333, 'ents_r': 0.9365079365079365, 'ents_f': 0.9593495934959351, 'ents_per_type': {'LAW': {'p': 1.0, 'r': 1.0, 'f': 1.0}, 'LOC': {'p': 1.0, 'r': 0.6666666666666666, 'f': 0.8}, 'ORG': {'p': 0.9565217391304348, 'r': 0.9565217391304348, 'f': 0.9565217391304348}, 'TIME': {'p': 1.0, 'r': 1.0, 'f': 1.0}, 'PER': {'p': 1.0, 'r': 1.0, 'f': 1.0}}, 'cats_score': 0.0, 'cats_score_desc': 'macro F', 'cats_micro_p': 0.0, 'cats_micro_r': 0.0, 'cats_micro_f': 0.0, 'cats_macro_p': 0.0, 'cats_macro_r': 0.0, 'cats_macro_f': 0.0, 'cats_macro_auc': 0.0, 'cats_f_per_type': {}, 'cats_auc_per_type': {}}

如果有什么不对劲的地方,请不要犹豫。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67658345

复制
相关文章
使用SpaCy构建自定义 NER 模型
命名实体识别(NER)是一种自然语言处理技术,用于在给定的文本内容中提取适当的实体,并将提取的实体分类到预定义的类别下。简单来说,NER 是一种用于从给定文本中提取诸如人名、地名、公司名称等实体的技术。在信息检索方面,NER 有其自身的重要性。
deephub
2021/11/23
3.5K0
albert-chinese-ner使用预训练语言模型ALBERT做中文NER
这次的albert某种程度上可能比bert本身更具有意义,恰逢中文预训练模型出来,还是按照之前的数据来做NER方面的fine-tune
机器学习AI算法工程
2020/05/15
2K0
albert-chinese-ner使用预训练语言模型ALBERT做中文NER
如何用GPT大模型解决NER任务?
今天给大家介绍一篇北大、香农科技、浙大、亚马逊、南洋理工等多个机构近期联合发表的工作,利用GPT这类预训练大模型解决NER问题。
圆圆的算法笔记
2023/08/17
3K1
如何用GPT大模型解决NER任务?
spaCy 2.1 中文模型下载
spaCy是最流行的开源NLP开发包之一,它有极快的处理速度,并且预置了词性标注、句法依存分析、命名实体识别等多个自然语言处理的必备模型,因此受到社区的热烈欢迎。中文版预训练模型包括词性标注、依存分析和命名实体识别,由汇智网提供
用户1408045
2019/07/28
4.2K0
java如何打印数组的值,Java打印数组元素的值[通俗易懂]
本篇文章帮大家学习java打印数组元素的值,包含了Java打印数组元素的值使用方法、操作技巧、实例演示和注意事项,有一定的学习价值,大家可以用来参考。
全栈程序员站长
2022/08/11
4.6K0
利用BERT和spacy3联合训练实体提取器和关系抽取器
NLP技术最有用的应用之一是从非结构化文本(合同、财务文档、医疗记录等)中提取信息,这使得自动数据查询能够有用武之地。
磐创AI
2021/08/05
3K0
利用BERT和spacy3联合训练实体提取器和关系抽取器
【说站】Python如何使用Spacy进行分词
2、导入spacy相关模块后,需要加载中文处理包。然后读小说数据,nlp处理天龙八部小说,包括分词、定量、词性标注、语法分析、命名实体识别,用符号/分隔小说。最后,通过is_stop函数判断单词中的单词是否为无效单词,删除无效单词后,将结果写入txt文件。
很酷的站长
2022/11/24
1.3K0
【说站】Python如何使用Spacy进行分词
5分钟NLP:快速实现NER的3个预训练库总结
在文本自动理解的NLP任务中,命名实体识别(NER)是首要的任务。NER模型的作用是识别文本语料库中的命名实体例如人名、组织、位置、语言等。
deephub
2022/03/12
1.6K0
5分钟NLP:快速实现NER的3个预训练库总结
号称世界最快句法分析器,Python高级自然语言处理库spaCy
spaCy是Python和Cython中的高级自然语言处理库,它建立在最新的研究基础之上,从一开始就设计用于实际产品。spaCy带有预先训练的统计模型和单词向量,目前支持20多种语言的标记。它具有世界上速度最快的句法分析器,用于标签的卷积神经网络模型,解析和命名实体识别以及与深度学习整合。它是在MIT许可下发布的商业开源软件。 spaCy项目由@honnibal和@ines维护,虽然无法通过电子邮件提供个人支持。但开源者相信,如果公开分享,会让帮助更有价值,可以让更多人从中受益。(Github官方地址:
小莹莹
2018/04/24
2.3K0
号称世界最快句法分析器,Python高级自然语言处理库spaCy
用维基百科的数据改进自然语言处理任务
自然语言处理(NLP)正在兴起。计算语言学和人工智能正在加入它们的力量,促进突破性发现。虽然研究集中在显著提高NLP技术上,但企业正在把这项技术视为一项战略资产。这种由NLP引导的突破性创新的主要作用是大量可用的文本数据。谈到数字化时,尤其是对于企业来说,重要的是要记住文档是知识的主要来源。
deephub
2021/04/30
1.1K0
如何使用 Neo4J 和 Transformer 构建知识图谱
在这篇文章中,我将展示如何使用经过优化的、基于转换器的命名实体识别(NER)以及 spaCy 的关系提取模型,基于职位描述创建一个知识图谱。这里介绍的方法可以应用于其他任何领域,如生物医学、金融、医疗保健等。
深度学习与Python
2022/04/19
2.4K0
如何使用 Neo4J 和 Transformer 构建知识图谱
利用维基百科促进自然语言处理
作者 | Nicola Melluso 编译 | VK 来源 | Towards Data Science
磐创AI
2021/09/03
1.3K0
初学者|一文读懂命名实体识别
本文对自然语言基础技术之命名实体识别进行了相对全面的简绍,包括定义、发展历史、常见方法、以及相关数据集,最后推荐一大波python实战利器,并且包括工具的用法。
zenRRan
2019/11/19
1.5K0
自然语言处理的奥秘与应用:从基础到实践
自然语言处理(Natural Language Processing,NLP)是人工智能领域中备受关注的研究领域之一,它旨在使计算机能够理解、处理和生成自然语言文本。从智能助手到情感分析,NLP技术已经在各种领域中取得了巨大的成功。本文将带您深入探讨NLP的核心原理、常见任务以及如何使用Python和NLP库来实现这些任务。我们将从基础开始,逐步深入,帮助您了解NLP的奥秘。
海拥
2023/09/20
2850
自然语言处理的奥秘与应用:从基础到实践
计算机如何理解我们的语言?NLP is fun!
【导读】我们从日常每天都会用到的推荐系统到现在研究火热的开放性聊天、对话机器人,越来越多的产品与应用的背后都需要自然语言处理(NLP)和知识图谱的技术。也有越来越多的学者与工作人员投身于 NLP 领域的研究。为什么要研究NLP呢?如果计算机想要更好的理解人类的语言,拥有更好的人机交互体验,都离不开 NLP。那么,计算机到底是如何理解人类语言的?接下来让我们跟着作者 Adam Geitgey ,和他一起体会自然语言处理技术里那些有意思的事情。
AI科技大本营
2018/08/17
1.6K0
计算机如何理解我们的语言?NLP is fun!
初学者|一文读懂命名实体识别
本文对自然语言基础技术之命名实体识别进行了相对全面的简绍,包括定义、发展历史、常见方法、以及相关数据集,最后推荐一大波python实战利器,并且包括工具的用法。
yuquanle
2019/05/29
1.4K0
入门 | 自然语言处理是如何工作的?一步步教你构建 NLP 流水线
计算机非常擅长使用结构化数据,例如电子表格和数据库表。但是我们人类通常用文字交流,而不是使用电子表格来交流。这对计算机来说不是一件好事。
机器之心
2018/08/21
1.7K0
入门 | 自然语言处理是如何工作的?一步步教你构建 NLP 流水线
NLP中的文本分析和特征工程
在本文中,我将使用NLP和Python解释如何分析文本数据并为机器学习模型提取特征。
deephub
2020/06/24
4K0
NLP中的文本分析和特征工程
【数据竞赛】Kaggle实战之特征工程篇-20大文本特征(下)
针对梯度提升树模型对文本特征进行特征工程,我们需要充分挖掘Label编码丢失的信息,例如上面的名字特征,内部存在非常强的规律,Mr等信息,这些信息反映了性别相关的信息,如果直接进行Label编码就会丢失此类信息,所以我们可以通过文本技巧对其进行挖掘。在本文中,我们对现在常用的文本特征进行汇总。在上篇中介绍过的此处不在赘述。
黄博的机器学习圈子
2021/04/29
1.1K0
【数据竞赛】Kaggle实战之特征工程篇-20大文本特征(下)
点击加载更多

相似问题

利用Spacy模型的NER

12

如何训练几个NER模型(Spacy)

111

如何在Spacy v3中使用BILUO模式更新NER模型?

22

在spaCy 3.0中使用spaCy优化NER模型

153

Spacy NER模型中的评估

351
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档