HanLP

aws ec2 安装Elastic search 7.2.0 kibana 并配置 hanlp 分词插件

谁都会走 提交于 2019-12-12 10:16:47
文章大纲 Elastic search & kibana & 分词器 安装 版本控制 下载地址 Elastic search安装 kibana 安装 分词器配置 作者:season Elastic search & kibana & 分词器 安装 版本控制 ES版本:7.2.0 分词器版本: kibana 版本:7.2.0 下载地址 ES 下载地址: https://www.elastic.co/cn/downloads/past-releases/elasticsearch-7-2-0 kibana 下载地址: https://www.elastic.co/cn/downloads/past-releases/kibana-7-2-0 hanlp 分词器下载地址: https://github.com/KennFalcon/elasticsearch-analysis-hanlp Elastic search安装 0.添加es 用户,并新建目录 不能以root 方式运行elasticSearch groupadd elasticsearch useradd elasticsearch -g elasticsearch chown -R elasticsearch:elasticsearch /home/elasticsearch 1.修改 配置文件 elasticsearch

中文自然语言处理工具hanlp隐马角色标注详解

喜欢而已 提交于 2019-12-10 01:39:18
本文旨在介绍如何利用HanLP训练分词模型,包括语料格式、语料预处理、训练接口、输出格式等。 目前HanLP内置的训练接口是针对一阶HMM-NGram设计的,另外附带了通用的语料加载工具,可以通过少量代码导出供其他训练工具使用的特定格式(如CRF++)。 语料格式 输入语料格式为人民日报分词语料库格式。该格式并没有明确的规范,但总体满足以下几点: 1、单词与词性之间使用“/”分割,如华尔街/nsf,且任何单词都必须有词性,包括标点等。 2、单词与单词之间使用空格分割,如美国/nsf 华尔街/nsf 股市/n。 3、支持用[]将多个单词合并为一个复合词,如[纽约/nsf 时报/n]/nz,复合词也必须遵守1和2两点规范。 你可以参考OpenCorpus/pku98/199801.txt(作者并无版权,请勿询问)。 语料预处理 语料预处理指的是将语料加载到内存中,根据需要增删改其中部分词语的一个过程。 在HanLP中,这是通过CorpusLoader.walk实现的: CorpusLoader.walk("path/to/your/corpus", new CorpusLoader.Handler() { @Override public void handle(Document document) { System.out.println(document); } }); 其中

HanLP二元核心词典详细解析

瘦欲@ 提交于 2019-12-10 01:31:51
本文分析:HanLP版本1.5.3中二元核心词典的存储与查找。当词典文件没有被缓存时,会从文本文件CoreNatureDictionary.ngram.txt中解析出来存储到TreeMap中,然后构造start和pair数组,并基于这两个数组实现词共现频率的二分查找。当已经有缓存bin文件时,那直接读取构建start和pair数组,速度超快。 源码实现 二元核心词典的加载 二元核心词典在文件:CoreNatureDictionary.ngram.txt,约有46.3 MB。程序启动时先尝试加载CoreNatureDictionary.ngram.txt.table.bin 缓存文件,大约22.9 MB。这个缓存文件是序列化保存起来的。 ObjectInputStream in = new ObjectInputStream(IOUtil.newInputStream(path)); start = (int[]) in.readObject(); pair = (int[]) in.readObject(); 当缓存文件不存在时,抛出异常:警告: 尝试载入缓存文件E:/idea/hanlp/HanLP/data/dictionary/CoreNatureDictionary.ngram.txt.table.bin发生异常[java.io.FileNotFoundException:

Spark中分布式使用HanLP(1.7.0)分词示例

独自空忆成欢 提交于 2019-12-07 14:04:18
HanLP分词,如README中所说,如果没有特殊需求,可以通过maven配置,如果要添加自定义词典,需要下载“依赖jar包和用户字典". 分享某大神的示例经验: 是直接"java xf hanlp-1.6.8-sources.jar" 解压源码,把源码加入工程(依赖本地jar包,有些麻烦,有时候到服务器有找不到jar包的情况) 按照文档操作,在Spark中分词,默认找的是本地目录,所以如果是在driver中分词是没有问题的。但是如果要分布式分词,是要把词典目录放在HDFS上面,因为这样每台机器才可以访问到 【参考代码】 最好把新增词典放在首位(没有放在首位好像没有生效).第一次使用时,HanLP会把新增txt文件,生成bin文件,这个过程比较慢。但是只需要跑一次,它会把bin文件写到HDFS路径上面,第二次以后速度就快一些了。 注意到issue中说,只可以在mapPartition中使用 参考scala代码 class HadoopFileIoAdapter extends IIOAdapter { override def create(path: String): java.io.OutputStream = { val conf: Configuration = new Configuration() val fs: FileSystem = FileSystem.get

spark集群使用hanlp进行分布式分词操作说明

一个人想着一个人 提交于 2019-12-06 23:17:12
本篇分享一个使用hanlp分词的操作小案例,即在spark集群中使用hanlp完成分布式分词的操作,文章整理自【 qq_33872191 】的博客,感谢分享!以下为全文: 分两步: 第一步:实现hankcs.hanlp/corpus.io.IIOAdapter 1. public class HadoopFileIoAdapter implements IIOAdapter { 2. 3. @Override 4. public InputStream open(String path) throws IOException { 5. Configuration conf = new Configuration(); 6. FileSystem fs = FileSystem.get(URI.create(path), conf); 7. return fs.open(new Path(path)); 8. } 9. 10. @Override 11. public OutputStream create(String path) throws IOException { 12. Configuration conf = new Configuration(); 13. FileSystem fs = FileSystem.get(URI.create(path), conf);

Hanlp分词1.7版本在Spark中分布式使用记录

泪湿孤枕 提交于 2019-12-06 23:16:58
新发布1.7.0版本的hanlp自然语言处理工具包差不多已经有半年时间了,最近也是一直在整理这个新版本hanlp分词工具的相关内容。不过按照当前的整理进度,还需要一段时间再给大家详细分享整理的内容。昨天正好看到的这篇关于关于1.7.0版本hanlp分词在spark中的使用介绍的文章,顺便分享给大家一起学习一下! 以下为分享的文章内容: HanLP分词,如README中所说,如果没有特殊需求,可以通过maven配置,如果要添加自定义词典,需要下载“依赖jar包和用户字典". 直接"java xf hanlp-1.6.8-sources.jar" 解压源码,把源码加入工程(依赖本地jar包,有些麻烦,有时候到服务器有找不到jar包的情况) 按照文档操作,在Spark中分词,默认找的是本地目录,所以如果是在driver中分词是没有问题的。但是如果要分布式分词,是要把词典目录放在HDFS上面,因为这样每台机器才可以访问到 【参考代码】 最好把新增词典放在首位,第一次使用时,HanLP会把新增txt文件,生成bin文件,这个过程比较慢。但是只需要跑一次,它会把bin文件写到HDFS路径上面,第二次以后速度就快一些了。 注意到issue中说,只可以在mapPartition中使用。 参考scala代码 class HadoopFileIoAdapter extends IIOAdapter {

Spark应用HanLP对中文语料进行文本挖掘--聚类详解教程

蹲街弑〆低调 提交于 2019-12-06 08:19:54
软件:IDEA2014、Maven、HanLP、JDK; 用到的知识:HanLP、Spark TF-IDF、Spark kmeans、Spark mapPartition; 用到的数据集:http://www.threedweb.cn/thread-1288-1-1.html(不需要下载,已经包含在工程里面); 工程下载:https://github.com/fansy1990/hanlp-test 。 1、 问题描述 现在有一个中文文本数据集,这个数据集已经对其中的文本做了分类,如下: 其中每个文件夹中含有个数不等的文件,比如环境有200个,艺术有248个;同时,每个文件的内容基本上就是一些新闻报道或者中文描述,如下: 现在需要做的就是,把这些文档进行聚类,看其和原始给定的类别的重合度有多少,这样也可以反过来验证我们聚类算法的正确度。 2.、解决思路: 2.1 文本预处理: 1. 由于文件的编码是GBK的,读取到Spark中全部是乱码,所以先使用Java把代码转为UTF8编码; 2. 由于文本存在多个文件中(大概2k多),使用Spark的wholeTextFile读取速度太慢,所以考虑把这些文件全部合并为一个文件,这时又结合1.的转变编码,所以在转变编码的时候就直接把所有的数据存入同一个文件中; 其存储的格式为: 每行: 文件名.txt\t文件内容 如: 41.txt 【 日 期

pyhanlp 文本聚类详细介绍

半腔热情 提交于 2019-12-05 12:09:34
文本聚类 文本聚类简单点的来说就是将文本视作一个样本,在其上面进行聚类操作。但是与我们机器学习中常用的聚类操作不同之处在于。 我们的聚类对象不是直接的文本本身,而是文本提取出来的特征。因此如何提取特征因而是非常重要的一步。在HanLP中一共有三个文本聚类方法。前两种都基于词袋模式,第一个是最常见的聚类算法:k-means,但HanLP不光实现了k-means,还实现了速度更快效果更好的repeated bisection算法(重复二分法,还是翻译为累次平方法,好像是第一种)。笔者动笔前段时间刚刚添加了一个新的聚类分析器是,基于词向量的kmens聚类分析器。 基于词向量的kmeans聚类分析器,输入的需要时词向量化后的文件。虽然HanLP的词向量在Java实现中,还算可以,但在Python中使用不算太好用,同时Python也不推荐用HanLP做词向量,我们有更好的工具。所以这里我们也就不画蛇添足了。 而对于前两个聚类分析器而言,其聚类模块可以接受任意文本作为文档,而不需要用特殊分隔符隔开单词。另外,该模块还接受单词列表作为输入,用户可以将英文、日文等预先切分为单词列表后输入本模块。统计方法适用于所有语种,不必拘泥于中文。 分词器的性能问题 在repeated bisection算法无论性能还是速度都要优于kmens,但是在本人的测试中,前者速度基本原作者一致约为kmeans的三倍左右

hanlp笔记 - 篇章理解

匿名 (未验证) 提交于 2019-12-03 00:32:02
   HanLP . extractKeyword content , int num) ; //第一个参数文本内容,第二个参数提取关键词个数       HanLP . extractSummary content ); //第一个参数文本内容,第二个参数提取句子个数   HanLP . extractPhrase content 详细文档:http://hanlp.linrunsoft.com/doc/_build/html/extract.html#extract-summary 原文:https://www.cnblogs.com/sss-justdDoIt/p/9211428.html

python hanlp

匿名 (未验证) 提交于 2019-12-02 22:51:30
想要在python中调用hanlp进行中文实体识别,Ubuntu 16.04的系统环境 1. 安装jpype1,在cmd窗口输入 pip install jpype1 2. 下载hanlp的安装包 在 https://github.com/hankcs/HanLP/releases 注:如果你在 http://hanlp.linrunsoft.com/services.html 点击下载hanlp.jar,下载下来的是hanlp-1.2.8.jar。之后在使用过程中可能会出现“字符类型对应表加载失败”的错误,查看相应路径下也没有CharType.dat.yes文件。原因可能是hanlp-1.2.8版本过低,使用最新版本应该不会出现这个问题。 新建一个文件夹hanlp,放data-for-1.6.4.zip解压后的文件 配置hanlp.properties中的第一行的root为hanlp文件夹的位置,也就是data-for-1.6.4.zip解压后的文件放的位置。 4. 写py文件调用hanlp进行中文分析。 用法可参考 https://blog.csdn.net/u011961856/article/details/77167546 。 另,查看HanLP关于实体识别的文档 http://hanlp.linrunsoft.com/doc.html 里面介绍说中文人名标注为“nr”