0

0

我们一起聊聊知识抽取,你学会了吗?

PHPz

PHPz

发布时间:2023-11-13 20:13:02

|

1590人浏览过

|

来源于51CTO.COM

转载

一、简介

知识抽取通常指从非结构化文本中挖掘结构化信息,例如含有丰富语义信息的标签和短语。这在业界被广泛应用于内容理解和商品理解等场景,通过从用户生成的文本信息中提取有价值的标签,将其应用于内容或商品上

知识抽取通常伴随着对所抽取标签或短语的分类,通常被建模为命名实体识别任务,通用的命名实体识别任务就是识别命名实体成分并将成分划分到地名、人名、机构名等类型上;领域相关的标签词抽取将标签词识别并划分到领域自定义的类别上,如系列(空军一号、音速 9)、品牌(Nike、李宁)、类型(鞋、服装、数码)、风格(ins 风、复古风、北欧风)等。

为了方便描述,下文中将富含信息的标签或短语统一称为标签词

二、知识抽取分类

本文从标签词挖掘和标签词分类两个角度介绍知识抽取的经典方法。将标签词挖掘方法分为无监督方法、有监督方法及远程监督方法,如图 1 所示。标签词挖掘通过候选词挖掘和短语打分两个步骤筛选高打分的标签词,标签词分类通常将标签词抽取和分类联合建模,转化为命名实体识别的序列标注任务。

☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 免费无限量使用 DeepSeek R1 模型☜☜☜

我们一起聊聊知识抽取,你学会了吗?图1 知识抽取方法分类

三、标签词挖掘

Designify
Designify

拖入图片便可自动去除背景✨

下载

无监督方法

基于统计的方法

首先对文档进行分词或者将分词后的词进行 N-gram 组合作为候选词,再根据统计特征来对候选词打分。
  • TF-IDF(Term Frequency-Inverse Document Frequency) :统计每个词的 TF-IDF 打分,分数越高说明包含的信息量越大。

重写后的内容:计算方法:tfidf(t, d, D) = tf(t, d) * idf(t, D),其中tf(t, d) = log(1 + freq(t, d)),freq(t,d)表示候选词 t 在当前文档 d 中出现的次数,idf(t,D) = log(N/count(d∈D:t∈D))表示候选词 t 出现在多少个文档中,用来表示一个词语的稀有度,假如一个词语只在一篇文档中出现,说明这个词语比较稀有,信息量更丰富

特定业务场景下可以借助外部工具对候选词先进行一轮筛选,如采用词性标识筛选名词。

  • YAKE[1]:定义了五个特征来捕捉关键词特征,这些特征被启发式地组合起来,为每个关键词分配一个分数。分数越低,关键词越重要。1)大写词:大写字母的Term(除了每句话的开头单词)的重要程度比那些小写字母的 Term 重要程度要大,对应到中文可能是粗体字次数;2)词位置:每段文本越开头的部分词的重要程度比后面的词重要程度更大;3)词频,统计词出现的频次;4)词的上下文关系,用来衡量固定窗口大小下出现不同词的个数,一个词与越多不相同的词共现,该词的重要程度越低;5)词在不同句子中出现的次数,一个词在更多句子中出现,相对更重要。

基于图的方法 Graph-Based Model

  • TextRank[2]:首先对文本进行分词和词性标注,并过滤掉停用词,只保留指定词性的单词来构造图。每个节点都是一个单词,边表示单词之间的关系,通过定义单词在预定大小的移动窗口内的共现来构造边。采用 PageRank 更新节点的权重直至收敛;对节点权重进行倒排序,从而得到最重要的 k 个词语,作为候选关键词;将候选词在原始文本中进行标记,若形成相邻词组,则组合成多词组的关键词短语。

基于表征的方法 Embedding-Based Model

基于表征的方法通过计算候选词和文档之间的向量相似度来对候选词进行排序。
  • EmbedRank[3]:通过分词和词性标注选择候选词,采用预训练好的 Doc2Vec 和 Sent2vec 作为候选词和文档的向量表征,计算余弦相似度对候选词进行排序。类似的,KeyBERT[4] 将 EmbedRank 的向量表征替换为 BERT。

有监督方法

有监督方法通过训练一个模型来计算候选词是否属于标签词。
  • 先筛候选词再采用标签词分类:经典的模型 KEA[5] 对四个设计的特征采用 Naive Bayes 作为分类器对 N-gram 候选词进行打分。
  • 候选词筛选和标签词识别联合训练:BLING-KPE[6] 将原始句子作为输入,分别用 CNN、Transformer 对句子的 N-gram 短语进行编码,计算该短语是标签词的概率,是否是标签词采用人工标注 Label。BERT-KPE[7] 在 BLING-KPE 的思想基础上,将 ELMO 替换为 BERT 来更好地表示句子的向量。

我们一起聊聊知识抽取,你学会了吗?图2 BLING-KPE 模型结构


远监督方法

AutoPhrase

远监督方法的典型代表是 AutoPhrase[10],在业界标签词挖掘中被广泛使用。AutoPhrase 借助已有的高质量知识库进行远程监督训练,避免人工标注。

在本文中,我们将高质量短语定义为那些具备完整语义的单词,在同时满足以下四个条件的情况下

  • Popularit:文档中出现的频次足够高;
  • Concordance:Token 搭配出现的频率远高于替换后的其他搭配,即共现的频次;
  • Informativeness:有信息量、明确指示性,如 “this is” 就是没有信息量的负例;
  • Completeness:短语及其子短语都要具有完整性。

AutoPhrase 标签挖掘流程如图 3 所示。首先,我们使用词性标注筛选高频 N-gram 词作为候选。然后,我们通过远监督的方式对候选词进行分类。最后,我们使用以上四个条件筛选出高质量的短语(短语质量再估计)

我们一起聊聊知识抽取,你学会了吗?图3 AutoPhrase 标签挖掘流程

从外部知识库获取高质量的短语作为 Positive Pool,其他短语作为负例,按论文实验统计,负例池中存在 10% 的高质量短语因为没有在知识库中被分到了负例中,因此论文采用了如图 4 所示的随机森林集成分类器来降低噪声对分类的影响。在业界应用中,分类器的训练也可以采用基于预训练模型 BERT 的句间关系任务二分类方法[13]。

我们一起聊聊知识抽取,你学会了吗?图4 AutoPhrase标签词分类方法

四、标签词分类

有监督方法

NER 序列标注模型

命名实体识别(Named Entity Recognition,NER)也是一种候选词筛选和标签词识别联合训练的标签抽取方法,通常针对句子信息量比较重复的场景,来识别句子中的实体成分,采用序列标注模型实现。将句子作为输入,对句子中的每个 Token 预测属于以下 Label 的概率:B(Begin)-LOC(地名),I(Inside)-LOC(地名),E(End)-LOC(地名),O(Others)等,其中 “-” 后面的是实体词所属的类别。在中文NER任务中,通常采用基于字符而不是基于词汇的方法来进行序列标注建模来避免中文分词带来的错误传递问题,因此需要引入词汇信息来强化实体词边界。

Lattice LSTM[8] 是针对中文 NER 任务引入词汇信息的开篇之作,Lattice 是一个有向无环图,词汇的开始和结束字符决定了格子位置,通过词汇信息(词典)匹配一个句子时,可以获得一个类似 Lattice 的结构,如图 5(a) 所示。Lattice LSTM 结构则融合了词汇信息到原生的 LSTM 中,如 5(b) 所示,对于当前的字符,融合以该字符结束的所有外部词典信息,如“店”融合了“人和药店”和“药店”的信息。对于每一个字符,Lattice LSTM 采取注意力机制去融合个数可变的词单元。虽然 Lattice-LSTM 有效提升了 NER 任务的性能,但 RNN 结构无法捕捉长距离依赖,同时引入词汇信息是有损的,同时动态的 Lattice 结构也不能充分进行 GPU 并行,Flat[9] 模型有效改善了这两个问题。如图 5(c),Flat 模型通过 Transformer 结构来捕捉长距离依赖,并设计了一种位置编码 Position Encoding 来融合 Lattice 结构,将字符匹配到的词汇拼接到句子后,对于每一个字符和词汇都构建两个 Head Position Encoding 和 Tail Position Encoding,将 Lattice 结构展平,从一个有向无环图展平为一个平面的 Flat-Lattice Transformer 结构。

我们一起聊聊知识抽取,你学会了吗?图5 引入词汇信息的 NER 模型

远监督方法

AutoNER

AutoNER[11] 采用外部词典构造训练数据进行远监督实体识别,首先进行实体边界识别(Entity Span Recognition),再进行实体分类(Entity Classification)。外部词典的构造可以直接使用外部知识库,也可以采用 AutoPhrase 的挖掘方式先进行离线标签词挖掘,再用 AutoNER 模型进行标签词增量更新。

为了解决远监督中的噪声问题,我们采用了Tie或Break的实体边界标识方案来替代BIOE的标注方式。其中,Tie表示当前词和上一个词属于同一个实体,而Break表示当前词和上一个词不再同一个实体中

在实体分类阶段,使用模糊CRF(Fuzzy CRF)来应对一个实体具有多种类型的情况

我们一起聊聊知识抽取,你学会了吗?图6 AutoNER 模型结构图

BOND

BOND[12] 是一个两阶段的基于远程监督学习的实体识别模型。在第一阶段中,采用远距离标签使预训练语言模型适应 NER 任务;在第二阶段,首先用阶段一中训练的模型初始化 Student 模型和 Teacher 模型,然后使用 Teacher 模型生成的伪标签对 Student 模型进行训练,最小化远监督带来的噪声问题的影响。

我们一起聊聊知识抽取,你学会了吗?图片

需要重新书写的内容是:图7 BOND训练流程图

五、总结

本文从标签词挖掘和标签词分类两个角度介绍了知识抽取的经典方法,包括不依赖人工标注数据的无监督和远监督经典方法 TF-IDF、TextRank,业界被广泛使用的 AutoPhrase、AutoNER 等,可以为业界内容理解、Query 理解的词典构造、NER 等方向提供参考。

参考文献

【1】Campos R, Mangaravite V, Pasquali A, et al. Yake! collection-independent automatic keyword extractor[C]//Advances in Information Retrieval: 40th European Conference on IR Research, ECIR 2018, Grenoble, France, March 26-29, 2018, Proceedings 40. Springer International Publishing, 2018: 806-810. https://github.com/LIAAD/yake

【2】Mihalcea R, Tarau P. Textrank: Bringing order into text[C]//Proceedings of the 2004 conference on empirical methods in natural language processing. 2004: 404-411.

【3】Bennani-Smires K, Musat C, Hossmann A, et al. Simple unsupervised keyphrase extraction using sentence embeddings[J]. arXiv preprint arXiv:1801.04470, 2018.

【4】KeyBERT,https://github.com/MaartenGr/KeyBERT

【5】Witten I H, Paynter G W, Frank E, et al. KEA: Practical automatic keyphrase extraction[C]//Proceedings of the fourth ACM conference on Digital libraries. 1999: 254-255.

翻译内容:【6】熊L,胡C,熊C,等。超越语言模型的开放领域Web关键词提取[J]。arXiv预印本arXiv:1911.02671,2019年

【7】Sun, S., Xiong, C., Liu, Z., Liu, Z., & Bao, J. (2020). Joint Keyphrase Chunking and Salience Ranking with BERT. arXiv preprint arXiv:2004.13639.

需要重写的内容是:【8】张Y,杨J。使用格子LSTM的中文命名实体识别[C]。ACL 2018

【9】Li X, Yan H, Qiu X, et al. FLAT: Chinese NER using flat-lattice transformer[C]. ACL 2020.

【10】Shang J, Liu J, Jiang M, et al. Automated phrase mining from massive text corpora[J]. IEEE Transactions on Knowledge and Data Engineering, 2018, 30(10): 1825-1837.

【11】 Shang J, Liu L, Ren X, et al. Learning named entity tagger using domain-specific dictionary[C]. EMNLP, 2018.

【12】Liang C, Yu Y, Jiang H, et al. Bond: Bert-assisted open-domain named entity recognition with distant supervision[C]//Proceedings of the 26th ACM SIGKDD international conference on knowledge discovery & data mining. 2020: 1054-1064.

【13】美团搜索中NER技术的探索与实践,https://zhuanlan.zhihu.com/p/163256192

相关专题

更多
counta和count的区别
counta和count的区别

Count函数用于计算指定范围内数字的个数,而CountA函数用于计算指定范围内非空单元格的个数。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

193

2023.11.20

登录token无效
登录token无效

登录token无效解决方法:1、检查token的有效期限,如果token已经过期,需要重新获取一个新的token;2、检查token的签名,如果签名不正确,需要重新获取一个新的token;3、检查密钥的正确性,如果密钥不正确,需要重新获取一个新的token;4、使用HTTPS协议传输token,建议使用HTTPS协议进行传输 ;5、使用双因素认证,双因素认证可以提高账户的安全性。

6048

2023.09.14

登录token无效怎么办
登录token无效怎么办

登录token无效的解决办法有检查Token是否过期、检查Token是否正确、检查Token是否被篡改、检查Token是否与用户匹配、清除缓存或Cookie、检查网络连接和服务器状态、重新登录或请求新的Token、联系技术支持或开发人员等。本专题为大家提供token相关的文章、下载、课程内容,供大家免费下载体验。

782

2023.09.14

token怎么获取
token怎么获取

获取token值的方法:1、小程序调用“wx.login()”获取 临时登录凭证code,并回传到开发者服务器;2、开发者服务器以code换取,用户唯一标识openid和会话密钥“session_key”。想了解更详细的内容,可以阅读本专题下面的文章。

1052

2023.12.21

token什么意思
token什么意思

token是一种用于表示用户权限、记录交易信息、支付虚拟货币的数字货币。可以用来在特定的网络上进行交易,用来购买或出售特定的虚拟货币,也可以用来支付特定的服务费用。想了解更多token什么意思的相关内容可以访问本专题下面的文章。

1095

2024.03.01

java中break的作用
java中break的作用

本专题整合了java中break的用法教程,阅读专题下面的文章了解更多详细内容。

116

2025.10.15

java break和continue
java break和continue

本专题整合了java break和continue的区别相关内容,阅读专题下面的文章了解更多详细内容。

253

2025.10.24

CSS position定位有几种方式
CSS position定位有几种方式

有4种,分别是静态定位、相对定位、绝对定位和固定定位。更多关于CSS position定位有几种方式的内容,可以访问下面的文章。

80

2023.11.23

php源码安装教程大全
php源码安装教程大全

本专题整合了php源码安装教程,阅读专题下面的文章了解更多详细内容。

74

2025.12.31

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
ASP 教程
ASP 教程

共34课时 | 3.1万人学习

新的PHP案例(思考者)1
新的PHP案例(思考者)1

共0课时 | 0.8万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号