`

Hanlp自然语言处理中的词典格式说明

 
阅读更多

 

使用过hanlp的都知道hanlp中有许多词典,它们的格式都是非常相似的,形式都是文本文档,随时可以修改。本篇文章详细介绍了hanlp中的词典格式,以满足用户自定义的需要。

基本格式

词典分为词频词性词典和词频词典。

1、词频词性词典(如CoreNatureDictionary.txt)

1每一行代表一个单词,格式遵从[单词] [词性A] [A的频次] [词性B] [B的频次] ...。

2支持省略词性和频次,直接一行一个单词。

3.txt词典文件的分隔符为空格或制表符,所以不支持含有空格的词语。如果需要支持空格,请使用英文逗号,分割的纯文本.csv文件。在使用Excel等富文本编辑器时,则请注意保存为纯文本形式。

2、词频词典(如CoreNatureDictionary.ngram.txt)

1每一行代表一个单词或条目,格式遵从[单词] [单词的频次]。

2每一行的分隔符为空格或制表符。

少数词典有自己的专用格式,比如同义词词典兼容《同义词词林扩展版》的文本格式,而转移矩阵词典则是一个csv表格。

下文主要介绍通用词典,如不注明,词典特指通用词典。

数据结构

Trie树(字典树)是HanLP中使用最多的数据结构,为此,我实现了通用的Trie树,支持泛型、遍历、储存、载入。

用户自定义词典采用AhoCorasickDoubleArrayTrie和二分Trie树储存,其他词典采用基于双数组Trie树(DoubleArrayTrie)实现的AC自动机AhoCorasickDoubleArrayTrie。关于一些常用数据结构的性能评估,请参考wiki。

储存形式

词典有两个形态:文本文件(filename.txt)和缓存文件(filename.txt.bin或filename.txt.trie.dat和filename.txt.trie.value)。

1、文本文件

·采用明文储存,UTF-8编码,CRLF换行符。

2、缓存文件

1就是一些二进制文件,通常在文本文件的文件名后面加上.bin表示。有时候是.trie.dat和.trie.value。后者是历史遗留产物,分别代表trie树的数组和值。

2如果你修改了任何词典,只有删除缓存才能生效。

修改方法

HanLP的核心词典训练自人民日报2014语料,语料不是完美的,总会存在一些错误。这些错误可能会导致分词出现奇怪的结果,这时请打开调试模式排查问题:

 

HanLP.Config.enableDebug();

 

1核心词性词频词典

a)比如你在data/dictionary/CoreNatureDictionary.txt中发现了一个不是词的词,或者词性标注得明显不对,那么你可以修改它,然后删除缓存文件使其生效。

B)目前CoreNatureDictionary.ngram.txt的缓存依赖于CoreNatureDictionary.txt的缓存,修改了后者之后必须同步删除前者的缓存,否则可能出错

2核心二元文法词典

a) 二元文法词典data/dictionary/CoreNatureDictionary.ngram.txt储存的是两个词的接续,如果你发现不可能存在这种接续时,删掉即可。

B)你也可以添加你认为合理的接续,但是这两个词必须同时在核心词典中才会生效。

3命名实体识别词典

a基于角色标注的命名实体识别比较依赖词典,所以词典的质量大幅影响识别质量。

b这些词典的格式与原理都是类似的,请阅读相应的文章或代码修改它。

 

 

分享到:
评论

相关推荐

    基于HanLP自然语言处理包的elasticsearch分词器 hanlp-tokenizer-master

    基于HanLP自然语言处理包的elasticsearch分词器 功能 本分词器使用HanLP提供的维特比分词 屏蔽了本地配置用户词典 增加同义词索引功能 增加远程词典热更新(用户词典,停词典,同义词典) 使用 目前支持的es版本为...

    自然语言处理-情感词典(中文情感词典合集资料)

    自然语言处理-情感词典(中文情感词典合集资料)自然语言处理-情感词典(中文情感词典合集资料)自然语言处理-情感词典(中文情感词典合集资料)自然语言处理-情感词典(中文情感词典合集资料)自然语言处理-情感...

    chazidian.zip_hafuman_自然语言_自然语言处理_词典

    《自然语言处理与词典应用:解构"chazidian.zip_hafuman_自然语言_自然语言处理_词典"》 在信息技术高速发展的今天,自然语言处理(NLP)作为人工智能的重要分支,已经成为研究者和开发者关注的焦点。本项目...

    NLP:自然语言处理台大简体中文情感词典.zip

    自然语言处理(NLP)是计算机科学领域的一个重要分支,主要关注如何使计算机理解、解析、生成和操作人类自然语言。在NLP中,情感分析是一项关键任务,它旨在识别和提取文本中的情感倾向,例如正面情绪、负面情绪或...

    自然语言处理-情感词典.zip

    自然语言处理(NLP)是计算机科学领域的一个重要分支,主要关注如何使计算机理解、解析、生成和操作人类自然语言。在NLP中,情感分析是一项关键任务,它涉及到识别和提取文本中的情感倾向,例如积极、消极或中性。...

    HanLp数据字典(1.7.1)

    而“HanLP”是Java语言中一款高效、易用的自然语言处理工具包,为开发者提供了丰富的文本分析功能。本文将深入探讨 HanLP 1.7.1 版本中的数据字典,以及其在NLP应用中的关键作用。 首先,让我们了解 HanLP 的核心...

    NLP:自然语言处理情感词典及其分类.zip

    综上所述,"NLP:自然语言处理情感词典及其分类"这个资源对于学习和应用情感分析至关重要。它不仅包含了一套有效的情感词典,还可能附带了详细的分类体系,这对于提升情感分析的精度和深度具有极大的帮助。无论你是...

    自然语言处理-中文停用词表(1893个)

    ### 自然语言处理中的中文停用词理解与应用 #### 前言 在自然语言处理(NLP)领域,停用词表是一项基础而重要的资源。停用词是指在信息检索、文本挖掘等场景中通常会被过滤掉的词汇,因为它们在文本中的出现频率很...

    Python-无损转换OpenCC词典为HanLP格式

    而HanLP,全称为“HanLP - 高性能自然语言处理工具包”,是由哈工大知远公司开发的Java库,它在分词、词性标注、命名实体识别等方面表现出色,其词典格式可能与OpenCC不同。 要进行无损转换,我们需要了解两个系统...

    自然语言处理分词大作业

    汉语分词是自然语言处理中的一项重要任务,它是指将汉语文本切割成单个汉语词语的过程。汉语分词的目的在于将汉语文本切割成单个汉语词语,以便进行进一步的语言处理和分析。 1.1 引言 汉语分词是自然语言处理中的...

    自然语言处理中文词库(含词性)

    从给定的文件标题“自然语言处理中文词库(含词性)”和描述“用于自然语言理解课程,分词,词性标注使用的词典”,我们可以深入探讨几个关键的自然语言处理(NLP)概念,特别是与中文文本处理相关的部分。...

    HanLP:汉语语言处理-源码

    HanLP是一系列模型与算法组成的NLP工具包,由大快搜索主导并完全开源,目标是普及自然语言处理在生产环境中的应用.HanLP具备功能完善,性能高效,架构清晰,语料时新,可自定义的特点。 HanLP提供下列功能: 中文...

    Android-HanLP是由一系列用于自然语言处理模型与算法组成的Java工具包

    HanLP,作为一款由Java编写的高效自然语言处理工具包,为Android开发者提供了丰富的NLP模型和算法,使其能够在移动设备上轻松实现复杂文本处理任务。 HanLP的主要特点: 1. 功能完善:HanLP涵盖了词性标注、分词、...

    2020秋 自然语言处理期末考试1

    依存句法分析是自然语言处理中的一个重要组成部分,它关注的是句子中词语之间的依存关系,即哪个词依赖于另一个词。这种分析可以帮助理解句子的结构和意义。 依存关系的主要特点包括: - **方向性**:依存关系是有...

    哈工大 智能技术与自然语言处理技术课程 NLP系列课程 自然语言处理大总结 脑图总结.pdf

    首先,课程从自然语言处理的概述开始,解释了NLP的基本概念,包括它在人工智能(AI)中的位置和目标。NLP旨在模拟人类对语言的理解,以便机器可以处理和生成自然语言文本。 在基础知识部分,课程强调了数学基础和...

    2019秋 自然语言处理期末考试卷1

    2. **半词法的分词方法**:分词是自然语言处理的基础步骤,半词法分词是在词典基础上,结合上下文信息进行分词的方法,比如HMM(隐马尔可夫模型)和CRF(条件随机场)等模型,它们能够处理未登录词和歧义问题,提高...

    自然语言处理与自然语言理解

    根据中国国家标准GB/T13745--92中的《学科分类与代码表》,计算语言学属于应用语言学的一个分支,而自然语言处理则属于计算机科学技术的范畴。这两个学科虽然在分类上有差异,但在研究对象和内容上有着紧密的联系。...

    自然语言处理 期末大作业1

    这个任务属于机器翻译(Machine Translation),是自然语言处理中的一个重要应用。 首先,对于神经网络模型的输入数据,有一个特定的格式要求。每个样本序列需要通过添加特殊标记来标准化长度,例如使用`<pad>`符号...

    自然语言处理实验报告.doc/中文分词/宋词生成/n-gram模型/全部java源代码

    在自然语言处理中,n-gram模型常用于语音识别、机器翻译、文本生成等任务。在这个实验中,可能利用n-gram模型生成符合宋词韵律结构的新词句。 **宋词生成**是将现代语言转换为符合宋代诗词格式的过程,涉及到古代...

    自然语言处理大作业Python实现基于词典的分词方法源代码+实验报告(高分项目)

    自然语言处理大作业Python实现基于词典的分词方法源代码+实验报告(高分项目)自然语言处理大作业Python实现基于词典的分词方法源代码+实验报告(高分项目)自然语言处理大作业Python实现基于词典的分词方法源代码+...

Global site tag (gtag.js) - Google Analytics