几种关键词算法

2020-04-01 08:56:08 zrl2088 27

几种关键词提取介绍:TextRank、LDA、TPR

- TextRank关键词提取

TextRank是由PageRank延伸而来的,先简单介绍PageRank


PageRank:

一个简单的例子,求节点A的PR值是多少

例1:

非零科技|关键词归类|阿里巴巴|P4P|爆品打造

PR(A)=PR(B)+PR(C)

PR(A)=PR(B)+PR(C)


但是节点B不止有一条出链,所以应该为:

PR(A)=PR(B)2+PR(C)1

PR(A)=PR(B)2+PR(C)1


例2:可能会存在没有出链的网页

非零科技|关键词归类|阿里巴巴|P4P|爆品打造

图中网页C没有出链,于是可以假设对所有网页都有出链

PR(A)=PR(B)2+PR(C)4

PR(A)=PR(B)2+PR(C)4

例3:有些网页只有自己到自己的出链,或者几个网页形成一个循环链,这样就导致,在不断的迭代循环中,这些网页的PR值一直在增加

非零科技|关键词归类|阿里巴巴|P4P|爆品打造

这种情况下,想象成一个人如果到达C网站后发现没有其他的出链,那么他将以一定的概率从浏览器中输入网站跳转到其他的网站

PR(A)=αPR(B)2+(1−α)4

PR(A)=αPR(B)2+(1−α)4


一般情况下PageRank的更新公式为:

非零科技|关键词归类|阿里巴巴|P4P|爆品打造

L(pj)L(pj)是网页jj的出链数目,MpiMpi是指出链到网页ii的数目

TexTRank:

TextRank,是将每一个词作为一个节点,而节点与节点之间的链,是由词与词之间的共现决定的,决定词与词共现的方法,是由一个固定大小的窗口决定的,如果一个词与另一个词在同一个窗口里,就在这两个词之间加一条边。


例如:

程序员是从事程序开发、维护的专业人员。一般将程序员分为程序设计人员和程序编码人员,但两者的界限并不非常清楚,特别是在中国。软件从业人员分为初级程序员、高级程序员、系统分析员和项目经理四大类。

分词以后的结果

[程序员/n, 是/v, 从事/v, 程序/n, 开发/v, 、/w, 维护/v, 的/uj, 专业/n, 人员/n, 。/w, 一般/a, 将/d, 程序员/n, 分为/v, 程序/n, 设计/vn, 人员/n, 和/c, 程序/n, 编码/n, 人员/n, ,/w, 但/c, 两者/r, 的/uj, 界限/n, 并/c, 不/d, 非常/d, 清楚/a, ,/w, 特别/d, 是/v, 在/p, 中国/ns, 。/w, 软件/n, 从业/b, 人员/n, 分为/v, 初级/b, 程序员/n, 、/w, 高级/a, 程序员/n, 、/w, 系统/n, 分析员/n, 和/c, 项目/n, 经理/n, 四/m, 大/a, 类/q, 。/w]


选择窗口大小为5后,去掉一些停用词后,就可以得到:


开发=[专业, 程序员, 维护, 英文, 程序, 人员],

软件=[程序员, 分为, 界限, 高级, 中国, 特别, 人员],

程序员=[开发, 软件, 分析员, 维护, 系统, 项目, 经理, 分为, 英文, 程序, 专业, 设计, 高级, 人员, 中国],

分析员=[程序员, 系统, 项目, 经理, 高级],

维护=[专业, 开发, 程序员, 分为, 英文, 程序, 人员],

系统=[程序员, 分析员, 项目, 经理, 分为, 高级],

项目=[程序员, 分析员, 系统, 经理, 高级],

经理=[程序员, 分析员, 系统, 项目],

分为=[专业, 软件, 设计, 程序员, 维护, 系统, 高级, 程序, 中国, 特别, 人员],

英文=[专业, 开发, 程序员, 维护, 程序],

程序=[专业, 开发, 设计, 程序员, 编码, 维护, 界限, 分为, 英文, 特别, 人员],

特别=[软件, 编码, 分为, 界限, 程序, 中国, 人员],

专业=[开发, 程序员, 维护, 分为, 英文, 程序, 人员],

设计=[程序员, 编码, 分为, 程序, 人员],

编码=[设计, 界限, 程序, 中国, 特别, 人员],

界限=[软件, 编码, 程序, 中国, 特别, 人员],

高级=[程序员, 软件, 分析员, 系统, 项目, 分为, 人员],

中国=[程序员, 软件, 编码, 分为, 界限, 特别, 人员],

人员=[开发, 程序员, 软件, 维护, 分为, 程序, 特别, 专业, 设计, 编码, 界限, 高级, 中国]


来看看”程序员”这个词:

非零科技|关键词归类|阿里巴巴|P4P|爆品打造


textRank的更新公式为:

WS(Vi)=1−dN+d∗∑Vj∈In(Vi)wji∑Vk∈Out(Vj)WS(Vj)

WS(Vi)=1−dN+d∗∑Vj∈In(Vi)wji∑Vk∈Out(Vj)WS(Vj)

非零科技|关键词归类|阿里巴巴|P4P|爆品打造

根据上面的公式不断迭代,最后每一个词的Weights值会收敛,再根据每个词的Weights大小排序,取前面的权重大的词作为关键词。


- LDA关键词提取

lda是含有隐变量生成模型,也是一种隐语义算法模形,下面介绍LDA的生成模型,如下的图都是从《LDA的数学八卦》中摘取:


我们将文档词的生成比作上帝老头抛色子

非零科技|关键词归类|阿里巴巴|P4P|爆品打造


来看下简单的一元模性:

非零科技|关键词归类|阿里巴巴|P4P|爆品打造

也就是这样

非零科技|关键词归类|阿里巴巴|P4P|爆品打造


而贝叶斯学派的理解是引入了完全贝叶斯公式,引入了先验。


非零科技|关键词归类|阿里巴巴|P4P|爆品打造



PLSA

非零科技|关键词归类|阿里巴巴|P4P|爆品打造


LDA

非零科技|关键词归类|阿里巴巴|P4P|爆品打造


LDA生成模型的公式

非零科技|关键词归类|阿里巴巴|P4P|爆品打造



非零科技|关键词归类|阿里巴巴|P4P|爆品打造



上面的公式的分母中存在求和符号,所以不容易得到解析解,所以使用了Gibbs采样,来对指定词的主题进行采样,经过采样后就可以得到

基于主题的词分布:

p(w|z)

p(w|z)

和基于文章的主题分布

p(z|d)

p(z|d)

基于LDA的关键词提取

根据上面的LDA的训练,可以的得到一篇文章的主题分布p(z|di)p(z|di),和文章中词的主题分布p(z|wi)p(z|wi),可以通过余弦相似度或者KL散度来计算这两个分布的相似性。如果文章的某一主题zz的概率很大,而该文章中某个词对于该主题zz也拥有更大的概率,那么该词就会有非常大的概率成为关键词

p(z|w)=Cwk+β∑k=1∈KCwk+kβ

p(z|w)=Cwk+β∑k=1∈KCwk+kβ


p(z|d)=Cwj+α∑Kk=1Cwk+kβ

p(z|d)=Cwj+α∑k=1KCwk+kβ

TPR = LDA + TextRank

回归PageRank时的图

非零科技|关键词归类|阿里巴巴|P4P|爆品打造

这种情况下,想象成一个人如果到达C网站后发现没有其他的出链,那么他将以一定的概率从浏览器中输入网站跳转到其他的网站

非零科技|关键词归类|阿里巴巴|P4P|爆品打造


1−αN1−αN表示网页有1−α1−α的概率转移到其他节点,以αα的概率转移到自己的邻居节点,在pageRank中这部分通常拥有相同的值,表示每个节点等概率的跳转到其他节点,没有任何偏好。

TPR的思想是每个主题单独运行各自的带偏好的TextRank,每个主题的TextRank都会偏好与主题有较大相关度的词,这个偏好就是设置随机跳转的概率来得到的。


textrank公式:

WS(wi)=1−dN+d∗∑wj∈In(wi)wji∑wk∈Out(wj)WS(wj)

WS(wi)=1−dN+d∗∑wj∈In(wi)wji∑wk∈Out(wj)WS(wj)


对于每个主题zz,根据LDA的训练都可以得到每个主题下的词的分布p(w|z)p(w|z),可以把每个词的概率值单做该主题下Textrank的跳转概率来计算,重新修改为:

WSz(wi)=(1−d)P(wi|z)+d∗∑wj∈In(wi)wji∑wk∈Out(wj)WSz(wj)

WSz(wi)=(1−d)P(wi|z)+d∗∑wj∈In(wi)wji∑wk∈Out(wj)WSz(wj)

而每个词最后的得分为:

WS(wi)=∑z=1KWSz(wi)∗P(z|d)

WS(wi)=∑z=1KWSz(wi)∗P(z|d)

使用下图理解:

非零科技|关键词归类|阿里巴巴|P4P|爆品打造


简单结果对比

TPR、TextRank、LDA对比

TPR:[经济, 美国, 美联储, 消息, 市场, 国会, 联邦, 耶伦, 股市, 报告, 经济委员会, 英国, 主席, 央行, 汇率, 提振, 税改, 油价, 股指, 分析师]

TextRank:[经济, 市场, 报告, 美国, 消息, 央行, 汇率, 油价, 股市, 股指, 分析师, 盈利, 加拿大, 数字, 银行, 金融, 指数, 英国, 原油, 美联储]

LDA:[国会, 联邦, 策略师, 经济委员会, 加拿大皇家银行, 美联储, 主席, 特币, 华尔街, 耶伦, 前景, 经济师, 推高, 参议院, 美国, 货币, 汇率, 提振, 行长, 朝鲜]


TPR:[美国, 黄金, 美联储, 加息, 金价, 价格, 朝鲜, 耶伦, 市场, 关口, 主席, 经济, 新高, 指数, 证词, 税改, 投资者, 跌幅, 高位, 国会]

TextRank:[美国, 黄金, 价格, 金价, 关口, 美联储, 朝鲜, 市场, 新高, 加息, 耶伦, 经济, 指数, 跌幅, 税改, 投资者, 阻力, 技术, 高位, 主席]

LDA:[国会, 美市, 美联储, 弹道导弹, 加息, 初值, 缩表, 通胀, 杜德利, 火星, 但耶伦, 耶伦, 主席, 梅斯特, 洲际导弹, 那契, 惊现, 纽约联储, 达拉斯联储, 季调]


TPR:[美联储, 加息, 听证会, 人选, 美国, 主席, 条件, 例会, 通胀, 事务委员会, 美国联邦储备委员会, 时说, 鲍威尔, 货币, 负债表, 政策, 参议院, 特朗普, 总统, 状况]

TextRank:[美联储, 加息, 听证会, 美国, 人选, 主席, 条件, 通胀, 水平, 住房, 城市, 事务委员会, 规模, 银行, 负债表, 时说, 参议院, 资产, 货币, 特朗普]

LDA:[例会, 事务委员会, 美国联邦储备委员会, 听证会, 鲍威尔, 美联储, 加息, 负债表, 人选, 主席, 时说, 通胀, 货币, 参议院, 政策, 美国, 水平, 状况, 条件, 总统]


TPR:[文化, 中国, 玉雕, 艺术, 宁海, 大师, 玉石, 历史, 艺术品, 品格, 专家, 中华, 市民, 传统, 民族, 博览会, 城市, 中心, 底蕴, 源远流长]

TextRank:[中国, 文化, 玉雕, 大师, 艺术, 专家, 宁海, 历史, 市民, 上海, 古玩, 传统, 艺术品, 上海御客会文化传播有限公司, 董事长, 中华, 玉石, 主任, 中心, 内容]

LDA:[玉石, 品格, 宁海, 玉雕, 艺术品, 艺术, 文化, 大师, 民族, 中华, 博览会, 底蕴, 内涵, 气息, 源远流长, 文化协会, 董事长, 秘书长, 历史, 载体]

————————————————

原文链接:https://blog.csdn.net/rouchtime/java/article/details/78021789


我要体验
联系电话
邮箱
QQ