• 关键词提取


    NLP基础技术-------关键词提取

    应用:文本聚类、分类、自动摘要等

    有监督:构建一个较为丰富和完善的词表,然后通过判断每个文档与词表中每个词的匹配程度,以类似打标签的方式来提取关键词

    优点:较高的精度

    缺点:大批量的标注数据,人工成本高(每天有大量新信息,固定词表难以表达)

    无监督:不需要词表,目前应用较广

    常用算法:TF-IDF、TextRank、主题模型(LSA、LSI、LDA等)

    TF-IDF

    基于统计的计算方法,常用于评估在一个文档集中一个词对某份文档的重要程度。

    TF :统计一个词在文档中出现的频词

    计算公式:

    [tf_{ij}=frac{n_{ij}}{sum_{k}{n_{kj}}} ]

    分子表示词 i 在文档 j 中出现频次,分母表示文档总词数(由于每个文档长度不一,计算完要对词频进行归一化)

    IDF :统计一个词在文档集的多少个文档中出现

    计算公式:

    [idf_i=log(frac{|D|}{1+|D_i|}) ]

    |D|表示文档集中的总文档数,分母为文档集中出现词 i 的文档数量,加1采用拉普拉斯平滑,避免出现分母为0的情况

    将两者进行结合得到 tf-idf 算法:

    [tf✖idf(i,j)=tf_{ij}✖idf_i=(frac{n_{ij}}{sum_{k}{n_{kj}}})✖log(frac{|D|}{1+|D_i|}) ]

    扩展:

    根据应用场景的不同,可以有不同的加权方法,如考虑词性、位置等

    TextRank

    特点:不需要基于一个现成的语料库,仅对单篇文档进行分析就可以提取该文档的关键词

    算法思想:

    来源于PageRank:一种链接分析算法,有向无权图(TextRank是有权图)

    • 链接数量:一个网页被越多的其他网页链接,说明这个网页越重要
    • 链接质量:一个网页被越高权值的网页链接,说明这个网页重要

    自动摘要任务:

    默认每个语句和其他所有句子都是有链接关系,是一个有向完全图

    计算公式:

    [WS(V_i)=(1-d)+dquad✖sum_{V_j∈In(V_i)}({frac{w_{ji}}{sum_{V_k∈Out(V_j)w_{jk}}{}}}quad✖quad WS(V_j)) ]

    Out为出链的集合,In为入链接的集合,开始时将所有网页的得分初始化为1,d为阻尼系数(避免出现孤立网页),权重指的是两个句子之间的相似度

    关键词提取任务

    与自动摘要不同:1)词与词之间的关联没有权重 2)每个词不是与文档中所有词都有链接

    因此公式为(与pagerank一致):

    [WS(V_i)=(1-d)+dquad✖sum_{V_j∈In(V_i)} ({frac{1}{|Out(V_j)|}{}}quad✖quad WS(V_j)) ]

    将得分平均贡献给每个链接的词,并用窗口来解决第二个问题,在窗口内的所有词之间都有链接关系

    主题模型:

    认为词与文档之间没有直接的联系,它们应当还有一个维度将它们串联起来,主题模型将这个维度称为主题

    每个文档对应一个或多个的主题,而每个主题都会有对应的词分布,通过主题,就可以得到每个文档的词分布。

    核心公式:

    [p(w_i|d_j)=sum_{k=1}^{K}{p(w_i|t_k)✖(p(t_k|d_j))} ]

    每个词和文档对应的p(wi|dj)都是已知的,右边是需要我们计算的

    LSA/LSI算法

    LSA(Latent Semantic Analysis) & LSI(Latent Semantic Index)

    这两个算法可认为是同一种,都是对文档的潜在语义进行分析,LSI会在分析后,利用结果建立相关的索引

    主要步骤:

    1. 使用BOW模型将每个文档表示为向量
    2. 将所有的文档词向量拼接起来构成词-文档(m✖n)
    3. 对词-文档矩阵进行奇异值分解(SVD)操作([m✖r] · [r✖r] · [r✖n])
    4. 根据SVD的结果,将词-文档矩阵映射到一个更低维度k([][][m✖k]·[k✖k]·[k✖n],0<k<r)的近似SVD结果,每个词和文档都可以表示为k个主题构成的空间中的一个点,通过计算每个词和文档的相似度,得到每个文档中对每个词的相似度结果,相似度最高的一个词即为文档的关键词

    相似度计算

    余弦相似度(向量运算)

    [cos heta=frac{a·b}{||a||✖||b||} ]

    KL相似度

    优点

    有效的利用了语义信息,通过SVD将词、文档映射到一个低维的语义空间,挖掘出词、文档的浅层语义信息,从而对词、文档进行更本质地表达

    缺点

    • SVD计算复杂度高,对特征空间维度较大的,计算效率十分低下
    • 得到的分布信息是基于已有数据集的,当一个新的文档进入到已有的特征空间时,需要对整个空间重新训练

    LDA(Latent Dirichlet Allocation)

    目前主流的主题模型,理论基础是贝叶斯理论

    根据词的共现信息的分析,拟合出词-文档-主题的分布,进而将词、文本都映射到一个语义空间中

    贝叶斯学派:先验分布 + 数据(似然)= 后验分布

    训练过程:

    • 随机初始化,对语料中每篇文档中的每个词w,随机地赋予一个topic编号z
    • 重新扫描语料库,对每个词w按照吉布斯采样公式重新采样它的topic,在语料中进行更新
    • 重复以上语料库的重新采样过程直到吉布斯采样收敛
    • 统计语料库的topic-word的共现频率矩阵,该矩阵即为LDA模型

    吉布斯采样:通过条件分布采样模拟联合分布,再通过模拟的联合分布直接推导出条件分布,以此循环

    注意点

    1. 如何确定共轭分布中超参数
    2. 如何通过狄利克雷分布和多项式分布得到他们的共轭分布
    3. 如何实现吉布斯分布
  • 相关阅读:
    yii2.0缓存的使用
    yii2.0框架where条件的使用
    yii2.0自带验证码使用
    spring中MessageSource的配置使用方法1[转]
    DOM、JDOM、DOM4J的区别
    探秘Java虚拟机——内存管理与垃圾回收
    MySQL开发规范和原则大全
    Java Classloader机制解析
    Junit之测试顺序---FixMethodOrder
    MySQL的btree索引和hash索引的区别
  • 原文地址:https://www.cnblogs.com/alivinfer/p/12349727.html
Copyright © 2020-2023  润新知