Pyhanlp自然语言处理中的新词识别
新词发现
本“新词发现”模块基于信息熵和互信息两种算法,可以在无语料的情况下提取一段长文本中的词语,并支持过滤掉系统中已存在的“旧词”,得到新词列表。
调用方法
静态方法
一句话静态调用接口已经封装到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自然语言处理中的新词识别的更多相关文章
- 从Word Embedding到Bert模型—自然语言处理中的预训练技术发展史(转载)
转载 https://zhuanlan.zhihu.com/p/49271699 首发于深度学习前沿笔记 写文章 从Word Embedding到Bert模型—自然语言处理中的预训练技术发展史 张 ...
- 自然语言处理中的语言模型预训练方法(ELMo、GPT和BERT)
自然语言处理中的语言模型预训练方法(ELMo.GPT和BERT) 最近,在自然语言处理(NLP)领域中,使用语言模型预训练方法在多项NLP任务上都获得了不错的提升,广泛受到了各界的关注.就此,我将最近 ...
- zz从Word Embedding到Bert模型—自然语言处理中的预训练技术发展史
从Word Embedding到Bert模型—自然语言处理中的预训练技术发展史 Bert最近很火,应该是最近最火爆的AI进展,网上的评价很高,那么Bert值得这么高的评价吗?我个人判断是值得.那为什么 ...
- (转)注意力机制(Attention Mechanism)在自然语言处理中的应用
注意力机制(Attention Mechanism)在自然语言处理中的应用 本文转自:http://www.cnblogs.com/robert-dlut/p/5952032.html 近年来,深度 ...
- paip.提升中文分词准确度---新词识别
paip.提升中文分词准确度---新词识别 近来,中文每年大概出现800---1仟个新的词.. 60%的分词错误是由新词导致的 作者Attilax 艾龙, EMAIL:1466519819@qq. ...
- 注意力机制(Attention Mechanism)在自然语言处理中的应用
注意力机制(Attention Mechanism)在自然语言处理中的应用 近年来,深度学习的研究越来越深入,在各个领域也都获得了不少突破性的进展.基于注意力(attention)机制的神经网络成为了 ...
- 自然语言处理中的自注意力机制(Self-attention Mechanism)
自然语言处理中的自注意力机制(Self-attention Mechanism) 近年来,注意力(Attention)机制被广泛应用到基于深度学习的自然语言处理(NLP)各个任务中,之前我对早期注意力 ...
- 自然语言处理中的N-Gram模型
N-Gram(有时也称为N元模型)是自然语言处理中一个非常重要的概念,通常在NLP中,人们基于一定的语料库,可以利用N-Gram来预计或者评估一个句子是否合理.另外一方面,N-Gram的另外一个作用是 ...
- (zhuan) 自然语言处理中的Attention Model:是什么及为什么
自然语言处理中的Attention Model:是什么及为什么 2017-07-13 张俊林 待字闺中 要是关注深度学习在自然语言处理方面的研究进展,我相信你一定听说过Attention Model( ...
随机推荐
- C++中的break,continue和return语句小结
1.break语句能用在switch,while,do...while和for语句中:continue语句用在while,do...while和for语句中. 2.break结束语句执行,并将程序的执 ...
- python基础操作以及其常用内置方法
#可变类型: 值变了,但是id没有变,证明没有生成新的值而是在改变原值,原值是可变类型#不可变类型:值变了,id也跟着变,证明是生成了新的值而不是在改变原值,原值是不可变 # x=10# print( ...
- 重启uwsgi脚本备份
NAME="identifyImg_uwsgi.init" if [ ! -n "$NAME" ];then echo "no arguments&q ...
- swift简单处理调用高清大图导致内存暴涨的情况
开发中,通常需要用到使用选取多张图片的功能,但是高清大图很吃内存,我想到的处理方案就是拿到高清大图的时候,重新绘制一张小的图片使用.至于清晰度尚可,至少我是分辨不出多大区别. 基本思路就是先固定宽,然 ...
- advanced ip scanner —— 局域网下 ip 及设备的扫描
advanced ip scanner 下载地址:Advanced IP Scanner - Download Free Network Scanner. 用于扫描当前局域网下全部设备及其 ip,构建 ...
- 打印GBK、GB2312字符集全字符
根据编码表填充数据就可以了~~~~(>_<)~~~~~\(≧▽≦)/~啦啦啦 #include <stdio.h> #include <stdlib.h> #inc ...
- 远程办公的GitLab开源的员工手册:涵盖了公司价值观,内部沟通交流指南,开发流程,如何开会,写作风格指南,如何报销,如何请假,线上办公工具推荐等方方面面
原文 :https://docs.gitlab.com.cn/ce/ 英文 :https://about.gitlab.com/handbook/ GitLab Community Edition G ...
- s21day04 python笔记
s21day04 python笔记 一.上周知识回顾及补充 回顾 补充 编译型语言和解释性语言 编译型:代码写完后,编译器将其变成成另外一个文件,然后交给计算机执行 常见的编译型语言:C,C++,Ja ...
- NetCore平台下使用RPC框架Hprose
NetCore下使用RPC框架Hprose https://www.jianshu.com/p/c903fca44d5d Hprose是国内非常优秀的RPC框架,和其它RPC框架比较起来,其它框架一般 ...
- Blender节点笔记
Blender节点笔记实现复杂材质,纹理的更直观的方式就是使用节点功能. 每个节点左边作为输入,右边作为输出.节点之间通过传递值影响后者.传递的值为(Scalars,Vectors)标量与矢量.二维矢 ...