zoukankan      html  css  js  c++  java
  • 学习TextRank算法

    TextRank是啥:

    一种用于文本的基于图的排序算法。

    优点:

    不需要学习训练。

    模型原理:

    TextRank可以表示为一个有向有权图G=(V,E),图中任何两点V和Vj之间的边的权重为wji,对于一个给定的点Vi ,In(V)为指向该点的点集合。out(V)为点Vi指向的点集合。

    点Vi的得分定义为:

    d为阻尼系数,取值范围为[0,1],代表从图中的一点指向其他任意点的概率。

    计算开始时,需要给图中的点赋初始得分。然后不断迭代计算直到收敛。

     TextRank其实是PageRank应用到关键词提取上的情形,如果一个单词连接另一个单词后的权重很低,那么在迭代工程中他的pagerank会下降。那另一个单词的权重也会降低。

    利用TextRank实现关键词的提取原理。

    1.将给定的文本进行分割

    2.将句子进行分词,然后作词性标注,过滤停用词,保留指定词性的的词。

    3.利用候选关键词,建立候选关键词图,构造两点之间的边。

    4.迭代传播各节点权重,最终收敛。

    5.对节点权重进行倒序排序,得到最重要的T个单词。

    6.回到原始文本进行标记,如果某些单词构成相邻词组,则组成多词关键词。

    实战测试

    数据来源:24500条用户订购有关套餐信息,分为促销活动、销售产品、礼包内容。

    需求:从数据中提取出某些合成词、专有名词

    实战过程:

    TextRank4Keyword类初始化可以传入一个自己写的停用词文件。没有传入就是开发者提供的stopwords.txt

    我们还可实现词性过滤,默认是不使用词性过滤。

    官方提供的词性标签有

     ['an', 'i', 'j', 'l', 'n', 'nr', 'nrfg', 'ns', 'nt', 'nz', 't', 'v', 'vd', 'vn', 'eng']

     ['具有名词功能的形容词', '成语', '略语', '习用语', '名词', '人名', '名词性语素', '地名', '机构团体', '专有名词', '时间词', '动词', '副动词', '名动词', '英文']

    推测来自于ICTCLAS的词性标注标准

    详见:https://blog.csdn.net/solo_ws/article/details/52585549

    jieba.posseg可以实现对单词标注,分词后的词性标签与刚才的列表对比,可以实现保留指定词性的效果

    使用get_keywords方法得到,设置窗口为3,单词最小长度为3,得到的效果并不理想。

    使用get_keyphrases方法设置(keywords_num=4, min_occur_num=1)。得到的效果更好

    参考资料

    1.https://www.cnblogs.com/chenbjin/p/4600538.html

    2.https://blog.csdn.net/solo_ws/article/details/52585549

    3.https://blog.csdn.net/qq_35164554/article/details/90205175

    4.https://www.letianbiji.com/machine-learning/page-rank.html?from=singlemessage

    5.https://blog.csdn.net/hguisu/article/details/7996185?from=singlemessage

  • 相关阅读:
    《Mathematical Olympiad——组合数学》——染色问题
    《啊哈算法》——栈、队列、链表
    《Mathematical Olympiad——组合数学》——抽屉原理
    2749: [HAOI2012]外星人
    bzoj4241: 历史研究
    bzoj3210: 花神的浇花集会
    bzoj4998: 星球联盟
    bzoj2728: [HNOI2012]与非
    bzoj2669: [cqoi2012]局部极小值
    bzoj5441: [Ceoi2018]Cloud computing
  • 原文地址:https://www.cnblogs.com/liuguangshou123/p/13299048.html
Copyright © 2011-2022 走看看