1 数据源处理、分词

分词就是为了削弱相关性,降低对词序的依赖。但是有些词之间是存在依赖关系的,新词发现就是为了挖掘出聚有强依赖关系的词语。

2.1 基于凝聚度和左右熵计算自由度的新词发现

https://github.com/hellonlp/hellonlp/tree/master/ChineseWordSegmentation

2.1.1 左右邻熵衡量字符串的自由度

已知一个字符串的组合string,在已知的文本数据库中,出现在它左边相邻的字有m种,出现在它右边边相邻的字有n种。那么这两种情况下,我们分别可以计算两个熵,分别为左邻熵和右邻熵。

  • 左邻熵

其中,  为左邻字符串集合。string为字符串的组合(长度1-5)

  • 右邻熵

其中,  为右邻字符串集合。

根据上面的2个公式,我们可以得知,当  或者  集合越大,以及当  的值越大时,我们得到的熵就会越大。熵越大,代表的信息量也就越大。

  • 计算左右邻字丰富程度的方法:

当 的值越大时,意味着string可以独立作为一个词的可能性就越大。其中,为了避免ER或者EL其中某一个值非常大,而另外一个值非常小,导致该情况下得到的  值过大,我们计算了LE与LR的差绝对值|EL-ER|。举一个实际的例子,假设“天天向”左邻熵会非常的大,但是右邻熵却非常的小,如果我们直接将左右邻熵相加就会得到一个较大的值,那么“天天向”这个字符串就会被当作为一个词了,这是不合理的。我们需要的是左右的信息熵都相对较大时,此时的词可以独立作为一个词的可能性越大。

2.1.2   利用互信息计算词内凝聚度

两个字符对象的互信息计算公式:

两个字符串之间的互信息评估的是他们在一起的意义,互信息越大说明彼此依赖更强,而不是可以有可无的。在实际的文本数据中,很多字符一起出现的频数很高,但这并不意味着他们的组合可以做为一个词。所以,这个时候,互信息可以用来评估,他们中哪些字符串的组合是真正有意义的,哪些是可有可无的。

例如,"的"、"个"和很多字符串的组合频数都比较高。例如一句话:"美丽的山水画",其中,"的山水"和"山水画"都出现的频数较高,分别为200和300。另外,"的"、"山水"、"画"的频数分别为1000000、1000和2000。另外,一共有10^8个组合。

那么,"的山水"和"山水画"的互信息分别为:

  • 平均互信息

由于对象间互信息量会受到候选词长度的影响(候选词越长,互信息取值偏大),我们使用平均互信息作为词语内聚程度的度量。

2.1.3  平衡自由度和凝聚都的影响程度

2.2 基于切词的新词发现

https://github.com/trustfuture/word_discovery

既然分词是为了削弱相关性,那么就是再相关性较弱的地方切断,通过考虑多字的内部凝聚度(ngrams),来识别出可能存在的词组。

比如,定义三个字符穿的内部凝聚度为:

这个定义其实也就是说,要枚举所有可能的切法,因为一个词应该是处处都很“结实”的,4字或以上的字符串凝固度类似定义。一般地,我们只需要考虑到4字(4grams)就好(但是注意,我们依旧是可以切出4字以上的词来的)。

完整算法步骤:

第一步,统计:选取某个固定的n,统计2grams、3grams、…、ngrams,计算它们的内部凝固度,只保留高于某个阈值的片段,构成一个集合G;这一步,可以为2grams、3grams、…、ngrams设置不同的阈值,不一定要相同,因为字数越大,一般来说统计就越不充分,越有可能偏高,所以字数越大,阈值要越高;

第二步,切分:用上述grams对语料进行切分(粗糙的分词),并统计频率。切分的规则是,只要一个片段出现在前一步得到的集合G中,这个片段就不切分,比如“各项目”,只要“各项”和“项目”都在G中,这时候就算“各项目”不在G中,那么“各项目”还是不切分,保留下来;

第三步,回溯:经过第二步,“各项目”会被切出来(因为第二步保证宁放过,不切错)。回溯就是检查,如果它是一个小于等于n字的词,那么检测它在不在G中,不在就出局;如果它是一个大于n字的词,那个检测它每个n字片段是不是在G中,只要有一个片段不在,就出局。还是以“各项目”为例,回溯就是看看,“各项目”在不在3gram中,不在的话,就得出局。

新词发现-helloNLP相关推荐

  1. python实现词语填空_python简单实现新词发现

    基于新信息熵的新词发现原理<互联网时代的社会语言学:基于SNS的文本数据挖掘>这篇文章已经讲得非常清楚了,在这里主要是通过代码复现这篇文章. 实现的模块主要分为四个部分:从文章中提取所有可 ...

  2. 无监督构建词库:更快更好的新词发现算法

    作者丨苏剑林 单位丨追一科技 研究方向丨NLP,神经网络 个人主页丨kexue.fm 新词发现是 NLP 的基础任务之一,主要是希望通过无监督发掘一些语言特征(主要是统计特征),来判断一批语料中哪些字 ...

  3. Python自然语言处理相,新词发现,主题模型,隐马尔模型词性标注,Word2Vec,情感分析...

    向AI转型的程序员都关注了这个号???????????? 机器学习AI算法工程   公众号:datayx 代码环境:python --version 3.5.2 tensorflow keras 代码 ...

  4. python | 高效统计语言模型kenlm:新词发现、分词、智能纠错

    之前看到苏神[重新写了之前的新词发现算法:更快更好的新词发现]中提到了kenlm,之前也自己玩过,没在意,现在遇到一些大规模的文本问题,模块确实好用,前几天还遇到几个差点"弃疗"的 ...

  5. 新词发现:中文新词识别技术简介

    一.前言 新词识别,也可称为未登录词识别,严格来说,新词是指随时代发展而新出现或旧词新用的词,如:给力.山寨等:而未登录词是在词典中未存在的词,但实际使用中,两者并没有严格的区分,下文均以新词指代. ...

  6. 互信息和左右熵的新词发现(笔记)

    推荐:http://spaces.ac.cn/archives/3491/ http://www.matrix67.com/blog/archives/5044 http://www.hankcs.c ...

  7. 切切切词!新词发现算法TopWORDS的原理及实现|实在智能AI+RPA学院

    切切切词!新词发现算法TopWORDS的原理及实现|实在智能AI+RPA学院 一.介绍 TopWORDS [参考文献1]是发表在PNAS的一种新词发现算法,它在没有任何先验知识的条件下,快速地从大规模 ...

  8. NLP:自然语言处理技术之词语级别相关术语解释(如上位词/WordNet)、基于词汇层面的词法分析六大任务(分词/词性标注/词干提取-词形还原/新词发现/形态分析/拼写校正)的简介及其应用

    NLP:自然语言处理技术之词语级别相关术语解释(如上位词/WordNet).基于词汇层面的词法分析(Lexical Analysis)六大任务(分词/词性标注/词干提取-词形还原/新词发现/形态分析/ ...

  9. 基于大规模语料的新词发现算法【转自matix67】

    最近需要对商品中的特有的词识别,因此需新词发现算法,matrix的这篇算法很好. 对中文资料进行自然语言处理时,我们会遇到很多其他语言不会有的困难,例如分词--汉语的词与词之间没有空格,那计算机怎么才 ...

  10. 中文新词发现算法解析

    现在社交网络和视频网站发展都非常迅猛,参与人数非常多,每日UGC量非常可观.也因此经常制造爆炸性新闻,新词的制造和流行也频频出现.不同的社交圈内,由于话题性的不同,其新词分布也不同,所以直接引入搜狗等 ...

最新文章

  1. 贪心/二分查找 BestCoder Round #43 1002 pog loves szh II
  2. python 的库如何开发_一篇文章入门Python生态系统
  3. 【Pytorch神经网络理论篇】 04 Variable类型与自动微分模块剖析
  4. Python练习:斐波那契数列计算 B
  5. C++之指针探究(十五):回调函数应用之qsort排序
  6. 【已解决】报异常:java.lang.ArithmeticException: / by zero
  7. Freemarker获取项目根目录
  8. 第一部分----HTML的基本结构与基本标签
  9. 《Java就业培训教程》_张孝祥_书内源码_02
  10. RS485芯片UN485E的特点及其应用
  11. spring boot在整合mybatis的时候报错Mapper method'...'has an unsupported return type'...'
  12. Unreal教学(10)——放置Actor (Placing Actors)
  13. 清除windows登录密码
  14. 少吃调料竟然是错的!这9种调料原来是长寿高手
  15. OpenPose 运行指令 (Version@1.7)
  16. 微信ios签名报错config:fail
  17. 朴素贝叶斯的应用_TF-IDF实例
  18. java数学建模,什么是数学建模- -
  19. 使用Google Analytics来统计网站流量
  20. vue实战项目-电商商城前台-(学习尚硅谷的)尚品汇

热门文章

  1. HDFS Shell 命令简介及查询
  2. Elasticsearch相关操作梳理
  3. 造成笔记本电池损耗的主要原因
  4. 互联网日报 | 格力首款5G手机开售;拼多多内测多多钱包功能;跟谁学宣布定增融资8.7亿美元...
  5. 2016 知识点汇总 mindmap
  6. python plot线形和颜色
  7. vmware服务器虚拟化培训视频教程,目前网上关于vSphere最详细的视频教程 vSphere全套经典培训视频教程 VMware课程超清...
  8. 神剑轩辕java,上古十大神剑有哪些 有一把居然是专门用来弑君杀父的
  9. 解决word、typora等打不开超链接问题
  10. 首席新媒体运营黎想教程:海报裂变活动怎么做?4个必备技巧