zoukankan      html  css  js  c++  java
  • 关键词与关键词之间的相关度计算

    在信息论中常用互信息(MI,Mutual Information)来衡量两个词的相关度MI(X,Y)=log2p(x,y)/p(x)p(y)
    MI越大,表示两个词之间的结合越紧密。
    当X,Y关联大时,MI(X,Y)大于0;当X与Y关系弱时,MI(X,Y)等于0;当MI(X,Y)小于0时,X与Y称为“互补关系”
     
    这个算式看起来很直观,但计算还是有些麻烦,因为计算概率值p(x),p(y)都需要在语料中进行分词,

    这就涉及到词典的构成以及分词的算法。

    下面介绍一个简便而直观的算法:
    假设一个文章集合 {C},总文章数目为N,其中含有单词X的文章总数为Nx,含有单词Y的文章总数是Ny,含有{X+Y}的文章总数是 Nxy,那么相关性这么计算
    Corr(X,Y)= Math.log10(N/Nx)*Math.log10(N/Ny)*Nxy/(Nx+Ny-Nxy)
    我写了一个程序进行测试,首先准备一个词典,然后准备大量语料,为检索方便,用lucence建索引,然后查询每个词与两个词交集的个数。测试汽车,前两百名结果非常好。测试一个不常见的词,如活性炭,得到的结果如下,还蛮不错的。
    主关键词x 关联词y 关联词数Ny 主关键词数Nx 总文章数N Nxy Coorr(X,y)
    活性碳 不织布 16 72 1127199 9 2.316674
    活性碳 回力胶 25 72 1127199 9 1.996593
    活性碳 吸音棉 29 72 1127199 9 1.883334
    活性碳 珍珠棉 31 72 1127199 9 1.831631
    活性碳 滤袋 39 72 1127199 8 1.453371
    活性碳 防尘网 59 72 1127199 9 1.32477
    活性碳 云母片 26 72 1127199 6 1.26853
    活性碳 压敏胶 27 72 1127199 6 1.250454
    活性碳 超滤膜 19 72 1127199 4 0.92056
    活性碳 海棉 119 72 1127199 9 0.82483
    活性碳 反渗透 155 72 1127199 10 0.746471
    活性碳 滤膜 47 72 1127199 4 0.639034
    活性碳 电导仪 4 72 1127199 2 0.617857
    活性碳 铜箔 100 72 1127199 6 0.614342
    活性碳 糊精 52 72 1127199 4 0.606269
    活性碳 铝粉 52 72 1127199 4 0.606269
    活性碳 制冰机 27 72 1127199 3 0.605689
    活性碳 水净化 219 72 1127199 10 0.554048
    活性碳 滤芯 356 72 1127199 15 0.533304
    活性碳 ro膜 14 72 1127199 2 0.489964
    活性碳 工业水 165 72 1127199 7 0.489529
    活性碳 二氧化钛 83 72 1127199 4 0.459238
  • 相关阅读:
    tomcat报错:java.io.IOException: 您的主机中的软件中止了一个已建立的连接。
    mysql 的 case when 用法
    分享几个能用的 editplus 注册码
    windows 时间同步至最新时间方法 | windows 时间同步服务器
    tomcat 如何登录 Server Status、Manager App、Host Manager
    Eclipse将java项目导出可执行的jar文件
    Java 中将字符串与 unicode 相互转换的工具类
    解决Lost connection to MySQL server during query错误方法
    gt,gte,lt,lte缩写的含义
    python 打印调用栈
  • 原文地址:https://www.cnblogs.com/polugen/p/576213.html
Copyright © 2011-2022 走看看