新词发现

本“新词发现”模块基于信息熵和互信息两种算法,可以在无语料的情况下提取一段长文本中的词语,并支持过滤掉系统中已存在的“旧词”,得到新词列表。

调用方法

静态方法

一句话静态调用接口已经封装到HanLP中:

/**

* 提取词语

*

* @param text 大文本

* @param size 需要提取词语的数量

* @return 一个词语列表

*/

public static List<WordInfo> extractWords(String text, int size)

/**

* 提取词语

*

* @param reader 从reader获取文本

* @param size   需要提取词语的数量

* @return 一个词语列表

*/

public static List<WordInfo> extractWords(BufferedReader reader, int size) throws IOException

/**

* 提取词语(新词发现)

*

* @param text         大文本

* @param size         需要提取词语的数量

* @param newWordsOnly 是否只提取词典中没有的词语

* @return 一个词语列表

*/

public static List<WordInfo> extractWords(String text, int size, boolean newWordsOnly)

/**

* 提取词语(新词发现)

*

* @param reader       从reader获取文本

* @param size         需要提取词语的数量

* @param newWordsOnly 是否只提取词典中没有的词语

* @return 一个词语列表

*/

public static List<WordInfo> extractWords(BufferedReader reader, int size, boolean newWordsOnly) throws IOException

调用示例请参考com.hankcs.demo.DemoNewWordDiscover。 值得注意的是,在计算资源允许的情况下,文本越长,结果质量越高。对于一些零散的文章,应当合并为整个大文件传入该算法。

高级参数

根据语料的长度或用词的不同,默认的参数有可能不能得到最佳的结果。我们可以通过构造不同的NewWordDiscover调整提取算法。该构造函数如下:

/**

* 构造一个新词识别工具

* @param max_word_len 词语最长长度

* @param min_freq 词语最低频率

* @param min_entropy 词语最低熵

* @param min_aggregation 词语最低互信息

* @param filter 是否过滤掉HanLP中的词库中已存在的词语

*/

public NewWordDiscover(int max_word_len, float min_freq, float min_entropy, float min_aggregation, boolean filter)

其中:

· max_word_len控制识别结果中最长的词语长度,默认值是4;该值越大,运算量越大,结果中出现短语的数量也会越多。

· min_freq控制结果中词语的最低频率,低于该频率的将会被过滤掉,减少一些运算量。由于结果是按照频率排序的,所以该参数其实意义不大。

· min_entropy控制结果中词语的最低信息熵的值,一般取0.5左右。该值越大,越短的词语就越容易被提取出来。

· min_aggregation控制结果中词语的最低互信息值,一般取50到200.该值越大,越长的词语就越容易被提取出来,有时候会出现一些短语。

· filter设为true的时候将使用内部词库过滤掉“旧词”。

Pyhanlp自然语言处理中的新词识别的更多相关文章

  1. 从Word Embedding到Bert模型—自然语言处理中的预训练技术发展史(转载)

    转载 https://zhuanlan.zhihu.com/p/49271699 首发于深度学习前沿笔记 写文章   从Word Embedding到Bert模型—自然语言处理中的预训练技术发展史 张 ...

  2. 自然语言处理中的语言模型预训练方法(ELMo、GPT和BERT)

    自然语言处理中的语言模型预训练方法(ELMo.GPT和BERT) 最近,在自然语言处理(NLP)领域中,使用语言模型预训练方法在多项NLP任务上都获得了不错的提升,广泛受到了各界的关注.就此,我将最近 ...

  3. zz从Word Embedding到Bert模型—自然语言处理中的预训练技术发展史

    从Word Embedding到Bert模型—自然语言处理中的预训练技术发展史 Bert最近很火,应该是最近最火爆的AI进展,网上的评价很高,那么Bert值得这么高的评价吗?我个人判断是值得.那为什么 ...

  4. (转)注意力机制(Attention Mechanism)在自然语言处理中的应用

    注意力机制(Attention Mechanism)在自然语言处理中的应用 本文转自:http://www.cnblogs.com/robert-dlut/p/5952032.html  近年来,深度 ...

  5. paip.提升中文分词准确度---新词识别

    paip.提升中文分词准确度---新词识别 近来,中文每年大概出现800---1仟个新的词.. 60%的分词错误是由新词导致的 作者Attilax  艾龙,  EMAIL:1466519819@qq. ...

  6. 注意力机制(Attention Mechanism)在自然语言处理中的应用

    注意力机制(Attention Mechanism)在自然语言处理中的应用 近年来,深度学习的研究越来越深入,在各个领域也都获得了不少突破性的进展.基于注意力(attention)机制的神经网络成为了 ...

  7. 自然语言处理中的自注意力机制(Self-attention Mechanism)

    自然语言处理中的自注意力机制(Self-attention Mechanism) 近年来,注意力(Attention)机制被广泛应用到基于深度学习的自然语言处理(NLP)各个任务中,之前我对早期注意力 ...

  8. 自然语言处理中的N-Gram模型

    N-Gram(有时也称为N元模型)是自然语言处理中一个非常重要的概念,通常在NLP中,人们基于一定的语料库,可以利用N-Gram来预计或者评估一个句子是否合理.另外一方面,N-Gram的另外一个作用是 ...

  9. (zhuan) 自然语言处理中的Attention Model:是什么及为什么

    自然语言处理中的Attention Model:是什么及为什么 2017-07-13 张俊林 待字闺中 要是关注深度学习在自然语言处理方面的研究进展,我相信你一定听说过Attention Model( ...

随机推荐

  1. 莫烦tensorflow(4)-placeholder

    import tensorflow as tf input1 = tf.placeholder(tf.float32)input2 = tf.placeholder(tf.float32) outpu ...

  2. 河工大玲珑校赛重现の rqy的键盘

    题目传送门:http://218.28.220.249:50015/JudgeOnline/problem.php?id=1263 1263: rqy的键盘 时间限制: 1 秒  内存限制: 128 ...

  3. js--未来元素

    通过动态生成的标签,在生成标签直接绑定事件是无效的. eg:html标签 <div id="tree"> </div> <script> $(' ...

  4. gl_PointSize偶数像素表现精准,基数会模糊化。

  5. 20165228 2017-2018-2 《Java程序设计》第9周学习总结

    20165228 2017-2018-2 <Java程序设计>第9周学习总结 教材学习内容总结 URL类是java.net包中的一个重要的类,URL的实例封装着一个统一资源定位符(Unif ...

  6. BZOJ 5099: Pionek(双指针)(占位)

    pro:有N个向量,你可以选择一些向量,使得其向量和离原点最远. 输出这个欧几里得距离的平方. sol:(感觉网上的证明都不是很充分,我自己也是半信半疑吧)日后证明了再补. #include<b ...

  7. Codeforces483B. Friends and Presents(二分+容斥原理)

    题目链接:传送门 题目: B. Friends and Presents time limit per test second memory limit per test megabytes inpu ...

  8. pytonn04day

    参考: https://docs.python.org/3/tutorial/datastructures.html#list-comprehensions 一列表 它是以[ ]括起来, 每个元素⽤用 ...

  9. 3D打印材料PLA,ABS对比

  10. java 编译 运行 及 引用外部 jar 包的方法

    1. 环境变量配置 JAVA_HOMEC:\Program Files\Java\jdk1.8.0_121; PATH%PATH%;C:\Java\jdk1.6.0_30\bin; CLASSPATH ...