能干什么?

  文章去重,语句去重,提取关键词(文章摘要,页面指纹),图片识别,语音识别

想要做一个相似度,最重要的是什么?

  必须得到一个度量:计算个体之间的相似程度(分数,0-1之间,0代表完全不同,一代表完全一样)

  相似度值越小,距离越大,相似度值越大,距离越小

  两方面考虑:

    文本角度

    语义角度

      例如:这个菜真好吃

         这个菜真难吃           ---------- > 文本角度来看,相似度非常高,语义角度就非常低

最常用:

   余玄相似度  ------> 计算两个向量夹角的余玄来计算相似度

    一个向量空间中两个向量夹角的余弦值作为衡量两个个体之间差异的大小

   余弦值接近1,夹角趋于0,表明两个向量越相似

   

    0度角的余弦值是1,而其他任何角度的余弦值都不大于1;并且其最小值是-1。从而两个向量之间的角度的余弦值确定两个向量是否大致指向相同的方向。两个向量有相同的指向时,余弦相似度的值为1;两个向量夹角为90°时,余弦相似度的值为0;两个向量指向完全相反的方向时,余弦相似度的值为-1。这结果是与向量的长度无关的,仅仅与向量的指向方向相关。余弦相似度通常用于正空间,因此给出的值为0到1之间。

    cos(?) =b/a

    cos0°=1

    cos90°=0

   

    如果向量a和b不是二维而是n维

    

    举个例子计算:

      x:(2,5)

      y:(4,9)

      cos(?)=2*4+5*9/sqrt(2*2+4*4)*sqrt(5*5+9*9)

  一旦有了向量就能计算相似度了,但是向量是怎么来的呢?

   继续举例子:

      句子1:这支笔好看,但颜色不适合。

      句子2:这支笔不好看,但颜色适合。

    对以上的两个句子做分词:

      句子1:这支/笔/好看,但/颜色/不合适

      句子2:这支/笔/不好看,但/颜色/合适

      word bag(词包):这支,笔,好看,不好看,但,颜色,不合适,合适(集合:上面两个句子去重,列出所有的词) 

    计算词频:当上面句子的分词在词包中出现几次就打几(上述例子没有多次的,所以都是1),不在就打0(一定严格按照词包的顺序)  

      句子1:这支1,笔1,好看1,不好看0,但1,颜色1,不合适1,合适0

      句子2:这支1,笔1,好看0,不好看1,但1,颜色1,不合适0,合适1

    词频向量化:

      句子1:(1,1,1,0,1,1,1,0)

      句子2:(1,1,0,1,1,1,0,1)

    套公式计算:

      cos(?)=1*1+1*1+1*0+0*1+1*1+1*1+1*0+0*1/sqrt(1*1+1*1+1*1+0*0+1*1+1*1+1*1+0*0)*sqrt(1*1+1*1+0*0+1*1+1*1+1*1+0*0+1*1)

处理流程:

    1.找到两篇文章的关键词

    2.每篇文章各取出若干个关键词,合并成一个集合,计算每篇文章对于这个集合中的词的词频(词频:一个词语在这个句子中出现的频率,一般来说一个词语在这个句子中出现的次数越多就越重要)

    3.生成两篇文章各自的词频向量

    4.计算两个向量的余玄相似度,值越大就是越相似

词频:TF(Term Frequency)

    假设:一个词很重要,应该会在文章中出现多次

    词频:一个词在文章中出现的次数

    但是,出现次数最多的是“的”“是”“在”,叹词,状语次,乱码,标点等,这类最常出现的词,叫做停用词(stop words),一般使用黑名单(停用词名单)把这些词过滤掉。

    停用词对结果毫无帮助,必须过滤掉的词

反文档频率:IDF

    相当于一个词被那些文章包含了,如果包含的文章越多,那么这歌词就越没有刻画能力(100篇文章,99篇都包含,那这么次肯定不重要)

    这样词就用另外一个标量来表示:IDF

    最常见的词(“的”、“是”、“在”)给予最小的权重

    较常见的词(“国内”、“中国”、“报道”)给予较小的权重

    较少见的词(“养殖”、“维基”)给予较小的权重

  将TF和IDF进行相乘,就得到了一个词的TF-IDF值,某个词对文章重要性越高,该值越大,于是排在前面的几个词,就是这篇文章的关键词。(关于写错次的情况,隐马尔可夫模型可以解决)

  IDF得统计多篇文章才能得到

计算步骤:

  拿原来的TF来计算,TF忽大忽小,非常不均匀,没有很好的归一,所以做了以下处理。

  词频(TF)= 某个词在文章中出现的次数  

    词频标准化:

      1.词频(TF)= 某个词在文章中出现的次数/文章的总词数

      2.词频(TF)= 某个词在文章中出现的次数/该文出现次数最多的词的出现次数

  反文档频率(IDF)= log(语料库的文档总数/包含该词的文档数+1)

      log是把这个值压缩到了一个范围,包含该词的文档数+1是因为防止分母为0。包含该词的文档数越大这个词就越不重要(可以参考log函数)。

TF-IDF = 词频(TF)*反文档频率(IDF)

    TF-IDF与一个词在文档中的出现次数成正比,与包含该词的文档数成反比。

总结:

    优点:简单快速,结果比较符合实际情况  

    缺点:单纯以“词频”做衡量标准,不够全面,有时重要的次可能出现的次数并不多

转载于:https://www.cnblogs.com/fishperson/p/10479580.html

余玄相似度,TF-IDF相关推荐

  1. scitkit-learn:计算机科学论文的TF / IDF和余弦相似度

    几个月前,我下载了数千篇计算机科学论文的元数据,这样我就可以尝试编写一个迷你推荐引擎来告诉我接下来应该读什么论文. 由于我没有任何人可以阅读每篇论文的数据,因此排除了协作过滤方法,所以我认为我可以尝试 ...

  2. 搜索引擎:文本分类——TF/IDF算法

    原理 TFIDF的主要思想是:如果某个词或短语在一篇文章中出现的频率TF高,并且在其他文章中很少出现,则认为此词或者短语具有很好的类别区分能力,适合用来分类.TFIDF实际上是:TF * IDF,TF ...

  3. 关键词提取算法—TF/IDF算法

    关键词提取算法一般可分为有监督学习和无监督学习两类. 有监督的关键词提取方法可以通过分类的方式进行,通过构建一个较为完善的词表,然后判断每个文档与词表中的每个词的匹配程度,以类似打标签的方式,达到关键 ...

  4. 随笔_从《芳华》影评到TF/IDF算法

     前两天看好多<芳华>的影评说:为什么好人没好报?于是感叹一堆世态炎凉,人性丑陋什么的.我觉得这问题是:为什么中央空调(对谁都温暖)往往不被看好.  先说说TF/IDF算法,这是一种信息处 ...

  5. 文本特征抽取的向量空间模型(VSM)和TF/IDF方法

    文本特征抽取 两组小说,一组是爱情的,另一组是科幻的.我们能否用支持向量机训练一个模型,用来识别小说类型呢? 这个并不容易.因为支持向量机这类机器学习算法只能接受数学里面的向量作为输入.如果用它来做文 ...

  6. C#实现的正余玄函数图象

    主要用到了GDI+中直线的绘制方法 using System; using System.Collections.Generic; using System.ComponentModel; using ...

  7. tf/idf_Neo4j:带密码的TF / IDF(和变体)

    tf/idf 几周前,我写了一篇博客文章,介绍了如何使用scikit-learn在HIMYM成绩单上运行TF / IDF,以按情节找到最重要的短语,然后我很好奇在Neo4j中很难做到. 我首先将Wik ...

  8. Neo4j:带密码的TF / IDF(和变体)

    几周前,我写了一篇博客文章,介绍了如何使用scikit-learn在HIMYM成绩单上运行TF / IDF,以按情节找到最重要的短语,然后我很好奇在Neo4j中很难做到. 我首先将Wikipedia的 ...

  9. 使用lingpipe自然语言处理包进行文本分类/** * 使用 lingpipe的tf/idf分类器训练语料 * * @author laigood */ public class trai

    /**  * 使用 lingpipe的tf/idf分类器训练语料  *   * @author laigood  */ public class traintclassifier { //训练语料文件 ...

最新文章

  1. python opencv 圆形roi
  2. csp php,CSP学习笔记(持续学习更新)
  3. SQL OVER用法
  4. Codeforces Round #701 (Div. 2) D. Multiples and Power Differences 思维构造
  5. GIS-013-Cesium Terrain 数据生成
  6. 命名规范、MVC 开发模式
  7. PyCharm Active Code Generator
  8. PHP-电脑搭建服务器
  9. C语言的数组简单复习
  10. 在线PDF保护解除器,完全免费,没有文件数量限制 - PDF在线解锁器
  11. Openv 线性插值
  12. win7升级win10正式版_如何使用小白系统对win7升级win10操作
  13. IE浏览器发送两次相同请求第二次读取第一次缓存问题
  14. 一级建造师能挂靠到三级资质的企业吗?
  15. 如何改善睡眠状态?建议你尝试这些方法和好物
  16. 我的世界服务器npc怎么修改,我的世界NPCmod教程如何设置任务NPC
  17. 【Tushare转存SQL】可转债数据(待续)
  18. webapi框架搭建-创建项目(三)-webapi owin
  19. android studio开发rtk,Android安卓平板电脑
  20. 推荐几个不错的公众号

热门文章

  1. MVC6 (ASP.NET5) 自定义TagHelper
  2. 第二十六节(对象流,File类)
  3. 【Mac软件推荐】Alfred:Mac下最好的快速启动工具
  4. Eclipse 各种快捷键
  5. Access常用类型及查询语法 [Access]
  6. 用SDL创建一个窗口
  7. nginx-URL重写
  8. 【拔刀吧少年】之sed编辑器
  9. 约瑟夫环问题(vector模拟过程)
  10. 阿里云低延时直播RTS能力升级,让直播推流效果更佳