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的时候将使用内部词库过滤掉“旧词”。
相关推荐
本研究聚焦于“新词识别”,这是自然语言处理中的一个子领域,专注于发现和分析语言中随时间变化不断产生的新词汇。另一个关键词“互信息”是信息论中的一个概念,用于衡量两个事件的相互依赖程度。互信息在此研究中...
对于开发者,词库可以帮助他们快速搭建和优化自然语言处理系统,提升其在实际应用中的效果。 在使用这个词库时,需要注意以下几点: 1. 数据预处理:下载并解压文件后,需要对数据进行适当的格式化和清洗,以适应所...
推荐一个新的开源中文深度学习自然语言处理工具:Jiagu, 包括中文分词、词性标注、命名实体识别、情感分析、新词发现、关键词、文本摘要等。贡献者包括 Yener、zengbin93、dirtdust,感兴趣的同学可以试用,Github...
此外,自然语言处理技术还需要考虑到语言的非正式用法、俚语、新词新义的不断涌现等因素。 自然语言处理技术的未来发展方向主要包括深度学习技术的应用、多模态自然语言处理、跨语言处理能力的提升等方面。深度学习...
Java 实现的自然语言处理 中文分词 词性标注 命名实体识别 依存句法分析 关键词提取 自动....zip,自然语言处理 中文分词 词性标注 命名实体识别 依存句法分析 新词发现 关键词短语提取 自动摘要 文本分类聚类 拼音简繁
自然语言处理(NLP)是计算机科学和人工智能领域的一个核心组成部分,主要研究如何使计算机能够理解和处理人类自然语言。这涉及到多个子领域,包括文本朗读、语音识别、中文自动分词、词性标注、句法分析、自然语言...
自然语言处理是计算机科学领域的一个重要分支,它专注于让计算机理解和生成人类的自然语言,如中文和英文。在这个领域中,中文分词是一项基础且关键的任务。中文分词是指将连续的汉字序列切分成具有独立语义的词汇...
随着互联网的蓬勃发展,网络新词的不断涌现成为了自然语言处理领域的一大挑战。这些新词的出现,往往由于网络用户行为的创新和...随着研究的深入和技术的完善,有望在处理自然语言的新词更新问题上取得更加显著的成果。
自然语言处理(NLP)是计算机科学领域的一个重要分支,主要关注如何使计算机理解、解析、生成和操作人类自然语言。在NLP中,中文命名实体识别(Chinese Named Entity Recognition, CNER)是一项核心任务,它涉及到从...
1. **新词识别**:新词识别是自然语言处理中的重要任务,可以通过统计分析、词性标注、N-gram模型、TF-IDF等方法来实现。利用已有的查询簇,可以分析共现频率、关键词关联性等特征,找出与新词相关的模式。例如,...
《深入探索HanLP自然语言处理》 在信息技术日益发展的今天,自然语言处理(Natural Language Processing,简称NLP)已经成为人工...通过深入学习和使用HanLP,我们可以更好地理解和处理自然语言,推动智能应用的发展。
**Python-Jiagu深度学习自然语言处理工具** Python-Jiagu是一款专为中文文本处理设计的深度学习工具...总的来说,Python-Jiagu是Python生态系统中一个强大的自然语言处理工具,为处理中文文本提供了便利和高效的支持。
在实际应用中,分词系统需要处理各种语言现象,如新词识别、成语或俗语的识别等。对于古诗词的处理,还需要特别注意文学作品的特殊用词和修辞手法,这些都需要分词系统具有足够的语言知识和处理能力。 为了处理好...
### 自然语言处理-汉语分词技术概述 #### 一、引言 随着信息技术的快速发展,自然语言处理(NLP)作为人工智能领域的一个重要分支,其应用范围日益广泛。汉语分词作为NLP的一项基础任务,在语音合成、信息检索、...
新词识别问题的解决方案主要有两种,一种是基于概率统计的,另一种是基于规则的。本文在两者的基础上,实现统计与规则相结合的新词识别检测问题。首先从熟语料中构建N元组候选词库,然后对候选词库分别进行规则过滤...
该源码集成了丰富的自然语言处理功能,包括中文分词、词性标注、命名实体识别、依存句法分析、语义依存分析、新词发现、关键词短语提取、自动摘要、文本分类聚类、拼音简繁转换等,广泛应用于各类中文文本处理任务。