`

自然语言处理hanlp的入门基础

阅读更多



 

 

此文整理的基础是建立在hanlp较早版本的基础上的,虽然hanlp的最新1.7版本已经发布,但对于入门来说差别不大!分享一篇比较早的“旧文”给需要的朋友!

安装HanLP

HanLP将数据与程序分离,给予用户自定义的自由。 HanLP由三部分组成:HanLP = .jar + data + .properties ,请前往 项目主页 下载这三个部分。

1、下载jar

放入classpath并添加依赖。

2、下载数据集

HanLP 中的数据分为 词典 和 模型 ,其中 词典 是词法分析必需的, 模型 是句法分析必需的,data目录结构如下:

data

├─dictionary

└─model

用户可以自行增删替换,如果不需要句法分析功能的话,随时可以删除model文件夹。

可选数据集

3、配置文件

示例配置文件:

#本配置文件中的路径的根目录,根目录+其他路径=绝对路径

#Windows用户请注意,路径分隔符统一使用/

root=E:/JavaProjects/HanLP/

#核心词典路径

CoreDictionaryPath=data/dictionary/CoreNatureDictionary.txt

#2元语法词典路径

BiGramDictionaryPath=data/dictionary/CoreNatureDictionary.ngram.txt

#停用词词典路径

CoreStopWordDictionaryPath=data/dictionary/stopwords.txt

#同义词词典路径

CoreSynonymDictionaryDictionaryPath=data/dictionary/synonym/CoreSynonym.txt

#人名词典路径

PersonDictionaryPath=data/dictionary/person/nr.txt

#人名词典转移矩阵路径

PersonDictionaryTrPath=data/dictionary/person/nr.tr.txt

#繁简词典路径

TraditionalChineseDictionaryPath=data/dictionary/tc/TraditionalChinese.txt

#自定义词典路径,用;隔开多个自定义词典,空格开头表示在同一个目录,使用“文件名 词性”形式则表示这个词典的词性默认是该词性。优先级递减。

#另外data/dictionary/custom/CustomDictionary.txt是个高质量的词库,请不要删除

CustomDictionaryPath=data/dictionary/custom/CustomDictionary.txt; 现代汉语补充词库.txt; 全国地名大全.txt ns; 人名词典.txt; 机构名词典.txt; 上海地名.txt ns;data/dictionary/person/nrf.txt nrf

 

配置文件的作用是告诉HanLP数据包的位置,只需修改第一行

root=usr/home/HanLP/

 

data的 父目录 即可,比如data目录是 /Users/hankcs/Documents/data ,那么 root=/Users/hankcs/Documents/ 。

 

  • 如果选用mini数据包的话,则需要修改配置文件:

    CoreDictionaryPath=data/dictionary/CoreNatureDictionary.mini.txt

    BiGramDictionaryPath=data/dictionary/CoreNatureDictionary.ngram.mini.txt

    最后将HanLP.properties放入classpath即可:

     

    对于Eclipse来讲

    project/bin

    对于IntelliJ IDEA来讲

    project/target/classes

    或者

    project/out/production/project

     

    Web项目的话可以放在如下位置:

    Webapp/WEB-INF/lib

    Webapp/WEB-INF/classes

    Appserver/lib

    JRE/lib

     

    快速上手

    HanLP 几乎所有的功能都可以通过工具类 HanLP 快捷调用,当你想不起来调用方法时,只需键入 HanLP. ,IDE应当会给出提示,并展示HanLP完善的文档。

    推荐用户始终通过工具类 HanLP 调用,这么做的好处是,将来 HanLP 升级后,用户无需修改调用代码。

    所有Demo都位于 com.hankcs.demo 下。

     

    第一个Demo:

    System.out.println(HanLP.segment("你好,欢迎使用HanLP!"));

  • 内存要求

    1.HanLP 对词典的数据结构进行了长期的优化,可以应对绝大多数场景。哪怕 HanLP 的词典上百兆也无需担心,因为在内存中被精心压缩过。

    2.如果内存非常有限,请使用小词典。 HanLP 默认使用大词典,同时提供小词典,请参考配置文件章节。

    3.在一些句法分析场景中,需要加载几百兆的模型。如果发生 java.lang.OutOfMemoryError ,则建议使用JVM option -Xms1g -Xmx1g -Xmn512m。

  • 写给正在编译 HanLP 的开发者

    1.如果你正在编译运行从Github检出的 HanLP 代码,并且没有下载data,那么首次加载词典/模型会发生一个 自动缓存 的过程。

    2.自动缓存 的目的是为了加速词典载入速度,在下次载入时,缓存的词典文件会带来毫秒级的加载速度。由于词典体积很大, 自动缓存 会耗费一些时间,请耐心等待。

    3.自动缓存 缓存的不是明文词典,而是双数组Trie树、DAWG、AhoCorasickDoubleArrayTrie等数据结构。

    如果一切正常,您会得到类似于如下的输出:

    [你好/vl, ,/w, 欢迎/v, 使用/v, HanLP/nx, !/w]

    如果出现了问题,一般是由路径配置不对而引发的,请根据控制台输出的警告调整。比如:

    核心词典

    /Users/hankcs/JavaProjects/HanLP/data/data/dictionary/CoreNatureDictionary.txt加载失败

    说明HanLP.properties中的root项配置不对,应当去掉后缀 data/,改为:

    root=/Users/hankcs/JavaProjects/HanLP/

 

  • 大小: 600.6 KB
  • 大小: 20.5 KB
分享到:
评论

相关推荐

    hanlp 自然语言处理入门

    在"hanlp 自然语言处理入门"的学习资料中,我们可以期待涵盖一系列基础到进阶的NLP概念和技术。这里我们将深入探讨其中的关键知识点。 首先,Python-3.8.10-amd64.exe是一个Python编程环境的安装程序,Python是NLP...

    hanlp-python_spiderpbl_ch11/11.5.py_自然语言处理入门_

    在本项目"hanlp-python_spiderpbl_ch11/11.5.py_自然语言处理入门_"中,我们将探讨使用Python进行NLP的实践应用。 `11.5.py`可能是一个章节练习或示例代码,对应何晗先生的书籍关于自然语言处理的部分。这个Python...

    自然语言处理入门随书代码

    HanLP,由北京大学计算机科学技术研究所开发,是一款高效的自然语言处理工具包,支持Java和Python两种语言。在Python版本的pyhanlp中,我们可以找到许多与NLP相关的功能,如分词、词性标注、命名实体识别、依存句法...

    《自然语言处理入门》第02章 词典分词.pptx

    《自然语言处理入门》第02章主要讲解了词典分词的相关知识,涉及词的定义、词典的构建和加载、以及各种切分算法。以下是详细的解释: 2.1 词的定义 在自然语言处理中,词是语言学上的基本单位,通常被视为能够独立...

    用Python进行自然语言处理 中文

    这本书《用Python进行自然语言处理(中文)》结合了Python的基础教程与NLP的应用实践,旨在帮助初学者快速入门并掌握这一技术。 1. Python基础知识:Python作为入门编程语言,其语法清晰,易于学习。`python简明...

    读书笔记2之中文分词流程HanLP

    中文分词是自然语言处理(NLP)中的基础任务,主要目标是将连续的汉字序列分割成具有独立语义的词语。在这个过程中,涉及到多个步骤和技术。以下是对中文分词流程以及汉语文本处理库HanLP的详细解析。 首先,**句子...

    Awesome-Chinese-NLP:精选的中文NLP资源列表中文自然语言处理相关资料

    自然语言处理(NLP,Natural Language Processing)是计算机科学领域的一个重要分支,它涉及人工智能、计算机科学、语言学等多个学科,旨在使计算机能够理解和生成人类自然语言,从而实现人机之间的有效沟通。...

    JAVA开源关键词提取框架

    关键词提取是自然语言处理(NLP)领域的一个重要组成部分,广泛应用于搜索引擎优化、文档摘要、情感分析等领域。 WordCount是一个典型的关键词计数程序,它最初在Hadoop MapReduce框架中被引入,作为分布式计算的...

    leetcode中文版-Awesome-NLP-DL-LeetCode:整理了我觉得不错的NLP、DL和LeetCode资源

    AI(机器学习->深度学习->自然语言处理) GitHub: 深度学习500问(对面试比较友好) 概率论、线性代数、机器学习、深度学习、CV GitHub: book链接1: book链接2: 动手学深度学习(沐神) v1 GitHub-pytorch链接:...

    易语言同义词替换-易语言

    这种技术广泛应用于自然语言处理、文本生成、机器翻译等领域。 在易语言中实现同义词替换,首先需要一个同义词库。同义词库通常包含了大量词汇及其对应的同义词列表,它是进行同义词替换的基础。开发者可以利用现有...

Global site tag (gtag.js) - Google Analytics