| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 人工智能 -> 词权重 (term weight)以及相关性文本分方法总结 -> 正文阅读 |
|
[人工智能]词权重 (term weight)以及相关性文本分方法总结 |
1 无监督 (unsupervised) 方法1.1 统计方法(TF, TF-IDF, YAKE)详情可以参考我之前的博文:TF, TFIDF, YAKE 1.2 图方法 (TextRank, SingleRank, TopicRank, PositionRank)详情可以参考我之前的博文:TextRank, SingleRank, TopicRank, PositionRank 2 有监督 (supervised ) 统计方法2.1 Delta TF-IDFDelta TF-IDF针对文本分类,通过计算单词在正负语料的TF-IDF得分差异来衡量一个词的重要性,核心思想是提高在正负样本之间分布不均匀的词的重要性,分布不均匀的词具有更高的区分度,term
t
t
t在文本
d
d
d的分值计算如下: 2.2 TF-IDF-ICFTF-IDF-ICF是在TF-IDF基础上,利用label信息进行有监督的对term进行权重学习,通过增加Inverse Class Frequency (ICF)因子,让那些在少量文本( IDF) 出现以及少量类别 (ICF)出现的term给与更高的权重分值。其中term
t
t
t在文本
d
d
d中的权重计算公式如下: T F ( t , d ) TF(t,d) TF(t,d)表示term t t t在文本 d d d中的词频, I D F ( t ) = l o g 2 ( D D t ) IDF(t)=log_2(\frac{D}{D_t}) IDF(t)=log2?(Dt?D?)表示倒文本频率。 M M M表示的是类别的数量, C F ( t ) CF(t) CF(t)表示的是term t t t在所有类别 M M M个中出现的次数。从上面公式可以看出,相比TF-IDF,TF-IDF-ICF对那些在类别中出现较少的词提高了权重,因为该词在所有类别中出现频率较少,则相对更有区分度。 2.3 TF-RFTF-RF (Term Frequency-Relevance Frequency) 和 Delta TF-IDF思想类似,将term在正样本和负样本的分布考虑进去,但是仅仅考虑包含该term的文本,分值计算如下:
V
t
,
d
=
T
F
(
t
,
d
)
×
l
o
g
2
(
2
+
P
t
m
a
x
(
1
+
N
t
)
)
V_{t,d} = TF(t, d) \times log_2(2 + \frac{P_t}{max(1+N_t)} )
Vt,d?=TF(t,d)×log2?(2+max(1+Nt?)Pt??) 2.4 TF-IGMTF-IGM ( Term Frequency-Inverse Gravity Moment) 用来衡量term在类别之间的不均匀度,进而可以反映term在类别的区分度。首先我们来看下IGM的公式: 2.5 CTF-ICFCTF-ICF ( Class Term Frequency-Inverse Class Frequency) 主要解决文本较短 (比如在电商场景下的sku title),重要的term有可能在一个文本 (sku) 中出现的词频并不高,用TF不能够很好的衡量term的重要度,所以需要对相同类别的文本聚合为一个大的文本,再计算term的频率,在这里称为CTF,若该term在该类别的所有文本中出现的频率越高,该term对于该类别越重要,CTF分值越大,同时为了衡量term在不同的类别上的区分度,用ICF倒类别频率分值来衡量,具体计算如下:
V
t
,
d
i
c
=
C
T
F
(
t
)
×
I
C
F
(
t
)
V_{t,d_{i}^c} = CTF(t) \times ICF(t)
Vt,dic??=CTF(t)×ICF(t) 3 有监督 (supervised ) 语义学习方法此类方法主要基于语义模型,通过对应的学习任务,让模型学习出每个term的分值。 3.1 基于关键词学习Keyphrase Extraction Using Deep Recurrent Neural Networks on Twitter,该论文发表在2016年 EMNLP上,本文基于一个2层的RNN模型将关键词和关键短语提取当做一个标注分类任务,判断每个词是否是关键词或者关键短语,对每个term进行一个二分类任务,模型预测的分值可以当做该term的权重。论文中模型的第一层用来做关键词识别任务,第二层用来做关键短语识别任务,最后将两个任务损失函数进行权重融合,作为最终的损失函数: 3.2 基于文本分类Progress Notes Classification and Keyword Extraction using Attention based Deep Learning Models with BERT, 本论文基于BERT+attention Layer通过对文本进行分类,利用attention层自动学习文本中的每个词的权重,根据词的权重,可以获取与文本主题相关的关键词,下图是截取论文中提供的高attention权重的关键词效果: 3.3 基于检索语义向量匹配Learning Term Discrimination,发表在2020 SIGIR会议的short paper上。论文用一个浅层的神经网络去学习term的TDV (term discrimination values)分值,同时基于学到的termTDV分值,在建立倒排索引的时候,除了对一些停用词进行过滤,进一步对TDV分值为0的进行过滤,在没有降低检索质量的同时,检索速度提升了几倍。 3.3.1 TF-IDF的相关性分值计算首先我们来看下query
q
q
q和文本
d
d
d基于TF-IDF相关性分值计算如下: 3.3.2 基于BM25的相关性分值计算BM25算法是计算相关性评分的常用一种算法,核心原理是对query Q进行单元解析(一般是分词)得到term,然后计算每个term与文本d的相关性得分,最后将相关性得分进行加权求和,得到query Q与文本d的相关性得分,相关性得分计算如下: 3.3.3 基于浅层神经网络的term TDV分值计算论文中用一个浅层的神经网络学习term的区分度分值TDV,再对倒排索引矩阵
S
S
S元素值进行调整,计算公式如下: 3.3.4 Training整体模型结构图如下: 3.3.5 试验效果通过加入TDV分值,不管是TF-IDF还是BM25,整体效果都有较大幅度的提高: |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/27 15:50:44- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |