zoukankan      html  css  js  c++  java
  • 大数据开发 NLP文本相似度

    大数据开发 NLP文本相似度

    2019年01月10日 19:59:00 Blithe_Lee2 阅读数 134更多

    所属专栏: 大数据开发

     版权声明:本文为博主原创文章,大家可以转载分享学习 https://blog.csdn.net/qq_31469369/article/details/86251873

    NLP文本相似度

    nlp 自然语言处理

    1. 个体间的相似程度 一般用余弦相似度 个体间的相似程度 一般用余弦相似度表示
      cosA=a·b/|a|·|b|

    得到了文本相似度计算的处理流程是:
    – 找出两篇文章的关键词;
    – 每篇文章各取出若干个关键词,合并成一个集合,计算每篇文章对于这个集合中的
    词的词频
    – 生成两篇文章各自的词频向量;
    – 计算两个向量的余弦相似度,值越大就表示越相似。

    1. 词频——TF(Term Frequency)
      • :一个词在文章中出现的次数
      • 也不是绝对的!出现次数最多的是“的”“是”“在”,这类最常用的词,
      叫做停用词(stop words)
      • 停用词对结果毫无帮助,必须过滤掉的词
      • 如果某个词比较少见,但是它在这篇文章中多次出现,那
      么它很可能反映了这篇文章的特性,正是我们所需要的关键词
    2. 反文档频率 -IDF
      • 在词频的基础上,赋予每一个词的权重,进一步体现该词的重要性,
      • 最常见的词(“的”、“是”、“在”)给予最小的权重
      • 较常见的词(“国内”、“中国”、“报道”)给予较小的权重
      • 较少见的词(“养殖”、“维基”、“涨停”)较大权重

    4.TF·IDF值越大 该词的越重要
    反文档频率(IDF)= log( 语料库文档数/包含这个关键词的文档数+1)

    应用:

    • 相似文章
      • 使用TF-IDF算法,找出两篇文章的关键词;
      • 每篇文章各取出若干个关键词,合并成一个集合,计算每篇文章对于这个集合
      中的词的词频;
      • 生成两篇文章各自的词频向量;
      • 计算两个向量的余弦相似度,值越大就表示越相似。
    • 文章摘要
      在这里插入图片描述
      5.L C S 定 义
      • 最长公共子序列(Longest Common Subsequence)
      • 一个序列S任意删除若干个字符得到的新序列T,则T叫做S的子序列
      • 两个序列X和Y的公共子序列中,长度最长的那个,定义为X和Y的最长公共子序

      – 字符串12455与245576的最长公共子序列为2455
      – 字符串acdfg与adfc的最长公共子序列为adf
      • 注意区别最长公共子串(Longest Common Substring)
      – 最长公共子串要求连接
      L C S 作 用
      • 求两个序列中最长的公共子序列算法
      – 生物学家常利用该算法进行基因序列比对,以推测序列的结构、功能和演化过程。
      • 描述两段文字之间的“相似度”
      – 辨别抄袭,对一段文字进行修改之后,计算改动前后文字的最长公共子序列,将除此子序列
      外的部分提取出来,该方法判断修改的部分
      求 解 — — 暴力穷举法
      • 假定字符串X,Y的长度分别为m,n;
      • X的一个子序列即下标序列{1,2,……,m}严格递增子序列,因此,X共有2
      m个
      不同子序列;同理,Y有2
      n个不同子序列;
      • 穷举搜索法时间复杂度O(2
      m ∗ 2
      n
      );
      • 对X的每一个子序列,检查它是否也是Y的子序列,从而确定它是否为X和Y的公
      共子序列,并且在检查过程中选出最长的公共子序列;
      • 复杂度高,不可用!
      求 解 — — 动态规划法
      • 字符串X,长度为m,从1开始数;
      • 字符串Y,长度为n,从1开始数;
      • Xi=<x1,……,xi>即X序列的前i个字符(1<=i<=m)(Xi计作“字符串X的i前缀”)
      • Yi=<y1,……,yi>即Y序列的前j个字符(1<=j<=n)(Yj计作“字符串Y的j前缀”)
      • LCS(X,Y)为字符串X和Y的最长公共子序列,即为Z=<z1,……,zk>
      • 如果xm = yn(最后一个字符相同),则:X?与Yn的最长公共子序列Zk的最后一个字符必定为
      xm(= yn)
      • ?? = xm = yn
      • LCS(X?, Yn)=LCS(X?−1, Yn−1)+x
  • 相关阅读:
    常用第三方快递鸟单号查询Api接口免费对接调用攻略
    Solution -「CF 1477A」Nezzar and Board
    Solution -「THUPC 2021」区间矩阵乘法
    Solution Set -「CF 1520」
    Solution -「HNOI 2010」城市建设
    Solution -「NOI 2007」货币兑换
    Solution -「洛谷 P6156」简单题
    Solution -「YunoOI 2017」由乃的 OJ
    Journey -「CQOI 2021」
    Note -「SOS DP」高维前缀和
  • 原文地址:https://www.cnblogs.com/grj001/p/12224426.html
Copyright © 2011-2022 走看看