HanLP

配置Hanlp自然语言处理进阶

隐身守侯 提交于 2019-12-01 08:17:53
中文分词 中文分词中有众多分词工具,如结巴、hanlp、盘古分词器、庖丁解牛分词等;其中庖丁解牛分词仅仅支持java,分词是HanLP最基础的功能,HanLP实现了许多种分词算法,每个分词器都支持特定的配置。接下来我将介绍如何配置Hanlp来开启自然语言处理之旅,每个工具包都是一个非常强大的算法集合,所以小编以后将花一些时间去看看里面源码如何。 下载jar、property和data文件 下载jar文件,(下载hanlp压缩包)解压之后获得jar和property文件如下: 其中property问配置文件,jar文件为外部引用文件。 然后下载data文件: 【https://】pan.baidu.com/s/1o8Rri0y (前面的括号自行去掉) 解压压缩包之后就能获取data目录了。 一切就绪之后下面就是配置了。 配置hanlp 新建一个空项目,包括一个新建的java文件的test.java, 1.package com; 2.import com.hankcs.hanlp.HanLP; 3.public class Test { 4.public static void main(String[] args) { 5. System.out.println(HanLP.segment("你好,欢迎使用HanLP!")); 6. } 7.} 目录结构如下图:

如何在java中去除中文文本的停用词

不羁的心 提交于 2019-11-30 23:18:10
1. 整体思路 第一步:先将中文文本进行分词,这里使用的HanLP-汉语言处理包进行中文文本分词。 第二步:使用停用词表,去除分好的词中的停用词。 2. 中文文本分词环境配置 使用的HanLP-汉语言处理包进行中文文本分词。 ·HanLP-汉语言处理包下载,可以去github上下载 ·HanLP 的环境配置有两种方式:方式一、Maven;方式二、下载jar、data、hanlp.properties。 ·官方环境配置步骤也可以在github上查询到。 ·环境配置好后,java使用HanLP进行中文分词文档如下:hanlp.linrunsoft.com/doc.html 3. 下载停用词表 停用词表可以去百度或者其他搜索引擎检索一份,很容易就找到! 4. 去除停用词工具类 使用这个工具类的之前,请先完成中文文本分词环境配置,并测试一下。停用词 .txt 文件路径请修改为自己的本地路径。 图1 5. 工具类测试 5.1 测试代码 public class test { public static void main(String args[]) { try { System.out.println(FormatUtil.RemovalOfStopWords("床前明月光,疑是地上霜。举头望明月,低头思故乡。")); } catch (IOException e) { e

NLP自然语言处理中英文分词工具集锦与基本使用介绍

只谈情不闲聊 提交于 2019-11-30 22:21:21
一、中文分词工具 (1)Jieba (2)snowNLP分词工具 (3)thulac分词工具 (4)pynlpir 分词工具 (5)StanfordCoreNLP分词工具 1. from stanfordcorenlp import StanfordCoreNLP 2. with StanfordCoreNLP(r'E:\Users\Eternal Sun\PycharmProjects\1\venv\Lib\stanford-corenlp-full-2018-10-05', lang='zh') as nlp: 3. print("stanfordcorenlp分词:\n",nlp.word_tokenize(Chinese)) (6)Hanlp分词工具 分词结果如下: 二、英文分词工具 1. NLTK: 二者之间的区别在于,如果先分句再分词,那么将保留句子的独立性,即生成结果是一个二维列表,而对于直接分词来说,生成的是一个直接的一维列表,结果如下: 2. SpaCy: 3. StanfordCoreNLP: 分词结果 来源: oschina 链接: https://my.oschina.net/u/3793864/blog/3056365

hanlp在Python环境中的安装失败后的解决方法

爷,独闯天下 提交于 2019-11-30 03:17:39
Hanlp是由一系列模型与算法组成的javag工具包,目标是普及自然语言处理再生环境中的应用。有很多人在安装hanlp的时候会遇到安装失败的情况,下面就是某大神的分享的在python环境中安装失败的解决方法,大家可以借鉴学习以下! 由于要使用hanlp进行分词,而我们的环境是python环境所以得安装pyhanlp,但是安装过程总是出现这样的问题 看上去感觉是缺少了visual c++环境,于是安装visual c++,可查看这个博客www.hankcs.com/nlp/python-calls-hanlp.html 安装完后发现问题并没有解决,初步怀疑应该是 jpype1没有安装成功,于是使用pip install jpype1发现果然失败,最终手动安装pip install D:\soft\JPype1-0.6.2-cp36-cp36m-win_amd64.whl 安装成功。 安装包地址:www.lfd.uci.edu/~gohlke/pythonlibs/#jpype 注意如果出现 JPype1-0.6.3-cp36-cp36m-win_amd64.whl is not a supported wheel on this platform.可看如下搭配更换版本: cp27 → CPython 2.7 cp34 → CPython 3.4 cp35 → CPython 3.5

自然语言处理工具包 HanLP在 Spring Boot中的应用

丶灬走出姿态 提交于 2019-11-30 03:12:08
本文共 782字,阅读大约需要 2分钟 ! 概 述 HanLP 是基于 Java开发的 NLP工具包,由一系列模型与算法组成,目标是普及自然语言处理在生产环境中的应用。而且 HanLP具备功能完善、性能高效、架构清晰、语料时新、可自定义的特点,因此十分好上手,本文就结合 Spring Boot来将 HanLP用起来! 注: 本文首发于 My Personal Blog:CodeSheep·程序羊 ,欢迎光临 小站 本文内容脑图如下: 下载 HanLP数据和程序 由于 HanLP库将数据与代码分离,因此我们需要分别下载所需数据和 jar包: 所需 data数据包下载地址为 data.zip 所需 jar包下载地址为 hanlp-release.zip 工程搭建 创建一个普通的 Spring Boot工程,不赘述 引入 HanLP数据 和 配置 下载完成以后,首先解压 hanlp-release.zip 压缩包,然后将解压出的 HanLP的 jar包引入 Spring Boot工程,然后需要来放置 HanLP所需配置和数据: 将解压后 hanlp-release.zip 压缩包中的 hanlp.properties 配置文件置于项目的 resources 资源目录下 然后解压 data.zip 压缩包,将解压出的 data目录同样至于 resources 目录下( data

在Hanlp词典手动添加未登录词的方式介绍

微笑、不失礼 提交于 2019-11-30 03:11:58
在使用Hanlp词典进行分词的时候,会出现分词不准的情况,原因是内置词典中并没有收录当前这个词,也就是我们所说的未登录词,只要把这个词加入到内置词典中就可以解决类似问题,如何操作呢,下面我们来看一下: 一,在Hanlp词典中添加未登录词 1.找到hanlp内置词典目录 位于D:\hnlp\hanlp_code\hanlp\data\dictionary\custom 也就是Hanlp安装包中的data\dictionary\custom下目录 将未登录词以词名,词性,词频的格式添加到文件中(句首或者句尾都可以) 3.将字典的同名bin文件删除掉 执行文件时读取的是bin文件,必须删掉后等下次执行时重新生成,新字典才发挥作用 4.使用新字典重新执行文件 执行时会遇到没有相关bin文件的提示,不过放心,程序会自动生成一个新的bin文件,骚等片刻,就好了。 验证结果是否正确 来源: oschina 链接: https://my.oschina.net/u/3793864/blog/3005777

自然语言处理工具hanlp自定义词汇添加图解

落花浮王杯 提交于 2019-11-30 03:11:44
过程分析 1.添加新词需要确定无缓存文件,否则无法使用成功,因为词典会优先加载缓存文件 2.再确认缓存文件不在时,打开本地词典按照格式添加自定义词汇。 3.调用分词函数重新生成缓存文件,这时会报一个找不到缓存文件的异常,不用管,因为加载词典进入内存是会优先加载缓存,缓存不在当然会报异常,然后加载词典生成缓存文件,最后处理字符进行分词就会发现新添加的词汇可以进行分词了。 操作过程图解: 1、有缓存文件的情况下: 1 System.out.println(HanLP.segment("张三丰在一起我也不知道你好一个心眼儿啊,一半天欢迎使用HanLP汉语处理包!" +"接下来请从其他Demo中体验HanLP丰富的功能~")) 2 3 //首次编译运行时,HanLP会自动构建词典缓存,请稍候…… 4 //[张/q, 三丰/nz, 在/p, 一起/s, 我/rr, 也/d, 不/d, 知道/v, 你好/vl, 一个心眼儿/nz, 啊/y, ,/w, 一半天/nz, 欢迎/v, 使用/v, HanLP/nx, 汉语/gi, 处理/vn, 包/v, !/w, 接下来/vl, 请/v, 从/p, 其他/rzv, Demo/nx, 中/f, 体验/v, HanLP/nx, 丰富/a, 的/ude1, 功能/n, ~/nx] 5 6 打开用户词典–添加 ‘张三丰在一起’ 为一个 nz词性的新词 2.2

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

落花浮王杯 提交于 2019-11-30 03:11:29
此文整理的基础是建立在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 #停用词词典路径

hanlp和jieba等六大中文分工具的测试对比

二次信任 提交于 2019-11-30 03:11:16
本篇文章测试的哈工大LTP、中科院计算所NLPIR、清华大学THULAC和jieba、FoolNLTK、HanLP这六大中文分词工具是由 水...琥珀 完成的。相关测试的文章之前也看到过一些,但本篇阐述的可以说是比较详细的了。这里就分享一下给各位朋友! 安装调用 jieba“结巴”中文分词:做最好的 Python 中文分词组件 THULAC清华大学:一个高效的中文词法分析工具包 FoolNLTK可能不是最快的开源中文分词,但很可能是最准的开源中文分词 教程:FoolNLTK 及 HanLP使用 HanLP最高分词速度2,000万字/秒 **中科院 Ictclas 分词系统 - NLPIR汉语分词系统 哈工大 LTP LTP安装教程[python 哈工大NTP分词 安装pyltp 及配置模型(新)] 如下是测试代码及结果 下面测试的文本上是极易分词错误的文本,分词的效果在很大程度上就可以提现分词器的分词情况。接下来验证一下,分词器的宣传语是否得当吧。 jieba 中文分词 thulac 中文分词 fool 中文分词 HanLP 中文分词 中科院分词 nlpir 哈工大ltp 分词 以上可以看出分词的时间,为了方便比较进行如下操作: 分词效果对比 结果为: 总结: 1.时间上(不包括加载包的时间),对于相同的文本测试两次,四个分词器时间分别为: jieba: 0

pyhanlp 中文词性标注与分词简介

谁说我不能喝 提交于 2019-11-30 03:11:06
pyhanlp 中文词性 标注 与分词简介 pyhanlp实现的分词器有很多,同时pyhanlp获取hanlp中分词器也有两种方式 第一种是直接从封装好的hanlp类中获取,这种获取方式一共可以获取五种分词器,而现在默认的就是第一种维特比分词器 1. 维特比 (viterbi):效率和效果的最佳平衡。也是最短路分词,HanLP最短路求解采用Viterbi算法 2. 双数组trie树 (dat):极速词典分词,千万字符每秒(可能无法获取词性,此处取决于你的词典) 3. 条件随机场 (crf):分词、词性标注与命名实体识别精度都较高,适合要求较高的NLP任务 4. 感知机 (perceptron):分词、词性标注与命名实体识别,支持在线学习 5. N最短路 (nshort):命名实体识别稍微好一些,牺牲了速度 第二种方式是使用JClass直接获取java类,然后使用。这种方式除了获取上面的五种分词器以外还可以获得一些其他分词器,如NLP分词器,索引分词,快速词典分词等等 两种使用方式的对比 第一种是使用作者给的HanLP直接获取分词器,直接segment() 会获取 默认的标准分词器也就是维特比分词器,也**可以使用newSegment函数,传入上面的分词器英文名称来获取新的分词器,如使用HanLP.newSegment("crf")来获取CRF分词器。*