使用HanLP增强Elasticsearch分词功能

hanlp-ext 插件源码地址:http://git.oschina.net/hualongdata/hanlp-ext 或 https://github.com/hualongdata/hanlp-ext

Elasticsearch 默认对中文分词是按“字”进行分词的,这是肯定不能达到我们进行分词搜索的要求的。官方有一个SmartCN 中文分词插件,另外还有一个 IK 分词插件使用也比较广。但这里,我们采用 HanLP 这款 自然语言处理工具 来进行中文分词。

Elasticsearch

Elasticsearch 的默认分词效果是惨不忍睹的。

    GET /_analyze?pretty{"text" : ["重庆华龙网海数科技有限公司"]}

输出:

{"tokens": [{"token": "重","start_offset": 0, "end_offset": 1, "type": "<IDEOGRAPHIC>", "position": 0 }, { "token": "庆", "start_offset": 1, "end_offset": 2, "type": "<IDEOGRAPHIC>", "position": 1 }, { "token": "华", "start_offset": 2, "end_offset": 3, "type": "<IDEOGRAPHIC>", "position": 2 }, { "token": "龙", "start_offset": 3, "end_offset": 4, "type": "<IDEOGRAPHIC>", "position": 3 }, { "token": "网", "start_offset": 4, "end_offset": 5, "type": "<IDEOGRAPHIC>", "position": 4 }, { "token": "海", "start_offset": 5, "end_offset": 6, "type": "<IDEOGRAPHIC>", "position": 5 }, { "token": "数", "start_offset": 6, "end_offset": 7, "type": "<IDEOGRAPHIC>", "position": 6 }, { "token": "科", "start_offset": 7, "end_offset": 8, "type": "<IDEOGRAPHIC>", "position": 7 }, { "token": "技", "start_offset": 8, "end_offset": 9, "type": "<IDEOGRAPHIC>", "position": 8 }, { "token": "有", "start_offset": 9, "end_offset": 10, "type": "<IDEOGRAPHIC>", "position": 9 }, { "token": "限", "start_offset": 10, "end_offset": 11, "type": "<IDEOGRAPHIC>", "position": 10 }, { "token": "公", "start_offset": 11, "end_offset": 12, "type": "<IDEOGRAPHIC>", "position": 11 }, { "token": "司", "start_offset": 12, "end_offset": 13, "type": "<IDEOGRAPHIC>", "position": 12 } ] } 

可以看到,默认是按字进行分词的。

elasticsearch-hanlp

HanLP

HanLP 是一款使用 Java 实现的优秀的,具有如下功能:

  • 中文分词
  • 词性标注
  • 命名实体识别
  • 关键词提取
  • 自动摘要
  • 短语提取
  • 拼音转换
  • 简繁转换
  • 文本推荐
  • 依存句法分析
  • 语料库工具

安装 elasticsearch-hanlp(安装见:https://github.com/hualongdata/hanlp-ext/tree/master/es-plugin)插件以后,我们再来看看分词效果。

    GET /_analyze?pretty{"analyzer" : "hanlp","text" : ["重庆华龙网海数科技有限公司"]}

输出:

{"tokens": [{"token": "重庆","start_offset": 0, "end_offset": 2, "type": "ns", "position": 0 }, { "token": "华龙网", "start_offset": 2, "end_offset": 5, "type": "nr", "position": 1 }, { "token": "海数", "start_offset": 5, "end_offset": 7, "type": "nr", "position": 2 }, { "token": "科技", "start_offset": 7, "end_offset": 9, "type": "n", "position": 3 }, { "token": "有限公司", "start_offset": 9, "end_offset": 13, "type": "nis", "position": 4 } ] } 

HanLP 的功能不止简单的中文分词,有很多功能都可以集成到 Elasticsearch 中。

 

 

文章来源于网络

转载于:https://www.cnblogs.com/tiantiankong/p/10102841.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/463980.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

boost::function的用法(二)

boost function是一组类和模板组合&#xff0c;用于包装各种函数。从功能上&#xff0c;它类似于函数指针&#xff0c;但是比函数指针的功能更强大。 使用boost function&#xff0c;必须包含头文件 [cpp] view plaincopy #include <boost/function.hpp> 除了头文件外&…

一个女孩子居然做了十年硬件。​。。

本文转自面包板社区。--正文--2011年&#xff0c;一个三本大学的电子信息专业的大三女学生跟2个通信专业的大二男生组成了一组代表学校参加2011年“瑞萨杯”全国大学生电子设计大赛&#xff0c;很意外的获得了湖北赛区省三等奖&#xff0c;虽然很意外&#xff0c;但还是挺高兴的…

自动备份多个MOSS站点集的脚本

写了个自动备份多个站点集的脚本&#xff08;backupscript.bat&#xff09;可以生成文件名如"Site80_20080227.bak"的备份文件。 echo off echo echo Backup of MOSS site! echo Written by WangWei(shangmeizhaihotmail.com) echo set yyyy%Date:~0,4% set mm%Dat…

Chrome Version 19.0.1055.1 dev Flash Missing plug-in的修复

linux mint12 64位&#xff0c;以前一直用chrome好好的&#xff0c;直到更新到 Version 19.0.1055.1 dev版本&#xff0c;问题一大堆&#xff0c;最纠结的是flash不能用了&#xff0c;更新前是正常的&#xff0c;一直也没有找到原因&#xff0c;通过命令行启动google-chrome发现…

记录上一个项目踩过的坑

1、objecthtmldivelement对象 var avc document.getElementById("div1"); alert(avc ); 为objecthtmldivelement对象&#xff0c;objecthtmldivelement对象相当于document.getElementById("div1")。2、获取img的src function imgsrc(){var y document.g…

之前字符串反转的题目

之前发的字符串反转的题目这道字符串反转的题目&#xff0c;你能想到更好的方法吗&#xff1f;有很多人评论了&#xff0c;有的人还写了自己的解题思路&#xff0c;还有人写了自己的代码还有其中呼声很高的压栈解法我相信很多人在笔试的时候一定会遇到这类题目&#xff0c;给你…

C++ 多重继承之内存存储

C 之多重继承 1. C中class与struct。 在C里面&#xff0c;class与struct没有本质的区别&#xff0c;只是class的默认权限是private&#xff0c;而struct则是public。这个概念也揭示了一点&#xff1a;class和struct在内部存储结构上是一致的。所以我们可以利用这一点来探讨clas…

hdu 3488

可以作为KM 二分图最大权匹配模板 View Code #include <stdio.h>#include <iostream>#include <string.h>using namespace std;const int N210;const int inf0x2fffffff;const int Max20000;int match[N],n,m,lack,w[N][N],lx[N],ly[N];bool vx[N],vy[N];bo…

Find The Multiple POJ - 1426 (BFS)

题目大意 给定一个整数&#xff0c;寻找一个只有0,1构成的十进制数使得这个数能够整除这个整数 解法 直接bfs第一位放入1&#xff0c;之后每一位放入1或者0 代码 #include <iostream> #include <queue> using namespace std; int n; void bfs() {queue<long lon…

心情不好,我就这样写代码

在 GitHub 上有一个项目&#xff0c;它描述了「最佳垃圾代码」的十九条关键准则。从变量命名到注释编写&#xff0c;这些准则将指导你写出最亮眼的烂代码。为了保持与原 GitHub 项目一致的风格&#xff0c;下文没有进行转换。读者们可以以相反的角度来理解所有观点&#xff0c;…

C++中默认构造函数使用时的要点

最近写代码的时候发现一个奇怪的现象&#xff1a;当我声明一个无参构造函数时&#xff0c;如果后面加上括号&#xff0c;声明出的对象就不能显示。比如下面的代码&#xff1a; [cpp] view plaincopy #include <stdio.h> class Test { public: Test() { …

一个立即关闭显示器的小软件(Masm开发,只有3KB大小)

我们在用电脑听歌或者下载网络资源时&#xff0c;经常都是不需要开着显示器的&#xff0c;这样不仅可以省电&#xff0c;最重要的是可以延长显示器的使用寿命&#xff0c;当然&#xff0c;对于笔记本电脑的电池省电也是很重要的。另外&#xff0c;对于液晶显示器&#xff0c;由…

动态规划之91 decode ways

题目链接&#xff1a;https://leetcode-cn.com/problems/decode-ways/description/ 参考&#xff1a;https://www.jianshu.com/p/5a604070cd11 题目大意&#xff1a;将一串数字&#xff0c;编码成A-Z的字符串。因为12-->L&#xff0c;或者12-->AB。所有12转成字符串一共有…

SQL Server中的STUFF函数的使用

STUFF ( character_expression , start , length ,character_expression ) 参数 character_expression 一个字符数据表达式。character_expression 可以是常量、变量&#xff0c;也可以是字符列或二进制数据列。start 一个整数值&#xff0c;指定删除和插入的开始位置。如果 st…

递归是会更秀strtok

前几天发的字符串反转题目&#xff0c;后面有一个新同学用了递归的方法来实现&#xff0c;看了下&#xff0c;真的是很秀。之前字符串反转的题目代码如下#include "stdio.h" #include "string.h" char input[] {"the sky is blue cris 1212321 apple…

判断输入的IP地址是否合法

判断输入的IP地址是否合法&#xff0c;ip地址的值在0~255之间&#xff0c;先把输入的IP的地址转换为一个字符串。 #define LEN (sizeof(xx)/sizeof(xx[0])) const char *xx[] {"192.168.1.1", "10.0.0.1", "127.256.0.1", "iugerjiogjioe…

偶作无题词一首

偶作无题词一首 读史籍&#xff0c;捉摸当初元璋。谈兴衰&#xff0c;寻思后来泽东。展抱负&#xff0c;携智巧&#xff0c;弄权谋&#xff0c;兴武功&#xff0c;万邦惊诧。立业不立身&#xff0c;立言不立行&#xff0c;枭雄本色。搏四海&#xff0c;威肃九州&#xff0c;建基…

ios开发网络篇—HTTP协议 - 转

一.URL 1.基本介绍 URL的全称是Uniform Resource Locator(统一资源定位符) &#xff0c;通过1个URL&#xff0c;能找到互联网唯一的1个资源 &#xff0c;URL就是资源的地址&#xff0c;位置&#xff0c;互联网上的每个资源都有一个唯一的URL 2.URL中常见的协议 (1)HTTP&#…

总结的一些内存问题

前言之前在实习时&#xff0c;听了 OOM 的分享之后&#xff0c;就对 Linux 内核内存管理充满兴趣&#xff0c;但是这块知识非常庞大&#xff0c;没有一定积累&#xff0c;不敢写下&#xff0c;担心误人子弟&#xff0c;所以经过一个一段时间的积累&#xff0c;对内核内存有一定…

云计算-从基础到应用架构系列-云计算的演进

为什么80%的码农都做不了架构师&#xff1f;>>> 开篇 本篇是主要讲述云计算的发展历程&#xff0c;由于云计算本身提出来也不是太久&#xff0c;并且其实云计算也是经过前人的一些经验总结提出&#xff0c;所以我们对之前的一 些计算机的发展史有个一定的了解&…