Elasticsearch安装以及配置hanlp中文分词插件

Elasticsearch安装以及配置hanlp中文分词插件,第1张

elasticsearch默认开启两个端口:9200,用于ES节点和外部通讯;9300,用于ES节点之间通讯

报错: org.elasticsearch.bootstrap.StartupException: java.lang.RuntimeException: can not run elasticsearch as root ,不能以root用户的身份运行elasticsearch

解决方法:新建用户组和用户,并赋予其elasticsearch文件夹的权限

再次运行

WARN: java.lang.UnsupportedOperationException: seccomp unavailable: CONFIG_SECCOMP not compiled into kernel, CONFIG_SECCOMP and CONFIG_SECCOMP_FILTER are needed ,使用新的linux版本即可,不影响使用

启动失败,出现上面四个错误,一一解决

ERROR[1]:无法创建本地文件问题,用户最大可创建文件数太小

解决方法:切换到root用户,编辑limits.conf配置文件

ERROR[2]:无法创建本地线程问题,用户最大可创建线程数太小

解决方法:切换到root用户,进入limits.d目录下,修改90-nproc.conf 配置文件

ERROR[3]:最大虚拟内存太小

解决方法:切换到root用户下,修改配置文件sysctl.conf

ERROR[4]:这是在因为Centos6不支持SecComp,而ES5.2.0默认bootstrap.system_call_filter为true进行检测,所以导致检测失败,失败后直接导致ES不能启动

解决方法:在elasticsearch.yml中配置bootstrap.system_call_filter为false

解决完成后,重新启动,启动成功

如果要在后台运行,使用 ./bin/elasticsearch -d 启动

访问 http://192.168.1.200:9200/,返回数据

现在启动elasticsearch,提示jar包冲突

现在启动elasticsearch,没有异常,我们测试一下hanlp分词插件有没有生效

访问: http://192.168.1.200:9200/_analyze?text=%E4%B8%AD%E5%9B%BD%E7%9A%84%E5%86%9B%E4%BA%8B%E5%AE%9E%E5%8A%9B%E4%B8%8E%E6%97%A5%E4%BF%B1%E5%A2%9E&analyzer=hanlp

elasticsearch报错并且退出运行

看上去是权限的问题,这就用到hanlp目录下的 plugin-security.policy 文件,修改 /elasticsearch/config/jvm.options 文件,在末尾添加

继续测试上面的链接,提示找不到hanlp.properties,hanlp无法加载词典,elasticsearch退出运行,解决方法:修改 /elasticsearch/bin/elasticsearch.in.sh 文件,将ES_CLASSPATH修改为:

继续测试上面的链接,访问成功,返回结果

可以看到分词效果比较好,而且停用词也被过滤了,大功告成!

以下分词工具均能在Python环境中直接调用(排名不分先后)。

1、jieba(结巴分词) 免费使用

2、HanLP(汉语言处理包) 免费使用

3、SnowNLP(中文的类库) 免费使用

4、FoolNLTK(中文处理工具包) 免费使用

5、Jiagu(甲骨NLP) 免费使用

6、pyltp(哈工大语言云) 商用需要付费

7、THULAC(清华中文词法分析工具包) 商用需要付费

8、NLPIR(汉语分词系统) 付费使用

1、jieba(结巴分词)

“结巴”中文分词:做最好的 Python 中文分词组件。

项目Github地址:jieba

安装

pip install jieba

使用

import jieba

jieba.initialize()

text = '化妆和服装'

words = jieba.cut(text)

words = list(words)

print(words)

2、HanLP(汉语言处理包)

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

项目Github地址:pyhanlp

安装:

pip install pyhanlp

使用

import pyhanlp

text = '化妆和服装'

words = []

for term in pyhanlp.HanLP.segment(text):

words.append(term.word)

print(words)

3、SnowNLP(中文的类库)

SnowNLP是一个python写的类库,可以方便的处理中文文本内容,是受到了TextBlob的启发而写的,由于现在大部分的自然语言处理库基本都是针对英文的,于是写了一个方便处理中文的类库,并且和TextBlob不同的是,这里没有用NLTK,所有的算法都是自己实现的,并且自带了一些训练好的字典。

项目Github地址:snownlp

安装:

pip install snownlp

使用:

import snownlp

text = '化妆和服装'

words = snownlp.SnowNLP(text).words

print(words)

4、FoolNLTK(中文处理工具包)

可能不是最快的开源中文分词,但很可能是最准的开源中文分词。

项目Github地址:FoolNLTK

安装:

pip install foolnltk

使用:

import fool

text = '化妆和服装'

words = fool.cut(text)

print(words)

5、Jiagu(甲骨NLP)

基于BiLSTM模型,使用大规模语料训练而成。将提供中文分词、词性标注、命名实体识别、关键词抽取、文本摘要、新词发现等常用自然语言处理功能。参考了各大工具优缺点制作,将Jiagu回馈给大家。

项目Github地址:jiagu

安装:

pip3 install jiagu

使用:

import jiagu

jiagu.init()

text = '化妆和服装'

words = jiagu.seg(text)

print(words)

6、pyltp(哈工大语言云)

pyltp 是 LTP 的 Python 封装,提供了分词,词性标注,命名实体识别,依存句法分析,语义角色标注的功能。

项目Github地址:pyltp,3.4模型下载链接:网盘

安装:

pip install pyltp

使用:

import pyltp

segmentor = pyltp.Segmentor()

segmentor.load('model/ltp_data_v3.4.0/cws.model') # 模型放置的路径

text = '化妆和服装'

words = segmentor.segment(text)

words = list(words)

print(words)

7、THULAC(清华中文词法分析工具包)

THULAC(THU Lexical Analyzer for Chinese)由清华大学自然语言处理与 社会 人文计算实验室研制推出的一套中文词法分析工具包,具有中文分词和词性标注功能。

项目Github地址:THULAC-Python

安装:

pip install thulac

使用:

import thulac

thu = thulac.thulac(seg_only=True)

text = '化妆和服装'

words = thu.cut(text, text=True).split()

print(words)

NLPIR(汉语分词系统)

主要功能包括中文分词;英文分词;词性标注;命名实体识别;新词识别;关键词提取;支持用户专业词典与微博分析。NLPIR系统支持多种编码、多种 *** 作系统、多种开发语言与平台。

项目Github地址:pynlpir

安装:

pip install pynlpir

下载证书覆盖到安装目录,NLPIR.user 例如安装目录:/usr/lib64/python3.4/site-packages/pynlpir/Data

使用

import pynlpir

pynlpir.open()

text = '化妆和服装'

words = pynlpir.segment(text, pos_tagging=False)

print(words)

pynlpir.close()


欢迎分享,转载请注明来源:内存溢出

原文地址: https://www.outofmemory.cn/bake/11457307.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-16
下一篇 2023-05-16

发表评论

登录后才能评论

评论列表(0条)

保存