以下分词工具均能在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
jiebainitialize()
text = '化妆和服装'
words = jiebacut(text)
words = list(words)
print(words)
2、HanLP(汉语言处理包)
HanLP是一系列模型与算法组成的NLP工具包,由大快搜索主导并完全开源,目标是普及自然语言处理在生产环境中的应用。HanLP具备功能完善、性能高效、架构清晰、语料时新、可自定义的特点。
项目Github地址:pyhanlp
安装:
pip install pyhanlp
使用 :
import pyhanlp
text = '化妆和服装'
words = []
for term in pyhanlpHanLPsegment(text):
wordsappend(termword)
print(words)
3、SnowNLP(中文的类库)
SnowNLP是一个python写的类库,可以方便的处理中文文本内容,是受到了TextBlob的启发而写的,由于现在大部分的自然语言处理库基本都是针对英文的,于是写了一个方便处理中文的类库,并且和TextBlob不同的是,这里没有用NLTK,所有的算法都是自己实现的,并且自带了一些训练好的字典。
项目Github地址:snownlp
安装:
pip install snownlp
使用:
import snownlp
text = '化妆和服装'
words = snownlpSnowNLP(text)words
print(words)
4、FoolNLTK(中文处理工具包)
可能不是最快的开源中文分词,但很可能是最准的开源中文分词。
项目Github地址:FoolNLTK
安装:
pip install foolnltk
使用:
import fool
text = '化妆和服装'
words = foolcut(text)
print(words)
5、Jiagu(甲骨NLP)
基于BiLSTM模型,使用大规模语料训练而成。将提供中文分词、词性标注、命名实体识别、关键词抽取、文本摘要、新词发现等常用自然语言处理功能。参考了各大工具优缺点制作,将Jiagu回馈给大家。
项目Github地址:jiagu
安装:
pip3 install jiagu
使用:
import jiagu
jiaguinit()
text = '化妆和服装'
words = jiaguseg(text)
print(words)
6、pyltp(哈工大语言云)
pyltp 是 LTP 的 Python 封装,提供了分词,词性标注,命名实体识别,依存句法分析,语义角色标注的功能。
项目Github地址:pyltp,34模型下载链接:网盘
安装:
pip install pyltp
使用:
import pyltp
segmentor = pyltpSegmentor()
segmentorload('model/ltp_data_v340/cwsmodel') # 模型放置的路径
text = '化妆和服装'
words = segmentorsegment(text)
words = list(words)
print(words)
7、THULAC(清华中文词法分析工具包)
THULAC(THU Lexical Analyzer for Chinese)由清华大学自然语言处理与 社会 人文计算实验室研制推出的一套中文词法分析工具包,具有中文分词和词性标注功能。
项目Github地址:THULAC-Python
安装:
pip install thulac
使用:
import thulac
thu = thulacthulac(seg_only=True)
text = '化妆和服装'
words = thucut(text, text=True)split()
print(words)
NLPIR(汉语分词系统)
主要功能包括中文分词;英文分词;词性标注;命名实体识别;新词识别;关键词提取;支持用户专业词典与微博分析。NLPIR系统支持多种编码、多种操作系统、多种开发语言与平台。
项目Github地址:pynlpir
安装:
pip install pynlpir
下载证书覆盖到安装目录,NLPIRuser 例如安装目录:/usr/lib64/python34/site-packages/pynlpir/Data
使用 :
import pynlpir
pynlpiropen()
text = '化妆和服装'
words = pynlpirsegment(text, pos_tagging=False)
print(words)
pynlpirclose()
python做中文分词处理主要有以下几种:结巴分词、NLTK、THULAC
1、fxsjy/jieba
结巴的标语是:做最好的 Python 中文分词组件,或许从现在来看它没做到最好,但是已经做到了使用的人最多。结巴分词网上的学习资料和使用案例比较多,上手相对比较轻松,速度也比较快。
结巴的优点:
支持三种分词模式
支持繁体分词
支持自定义词典
MIT 授权协议
2、THULAC:一个高效的中文词法分析工具包
前两天我在做有关于共享单车的用户反馈分类,使用jieba分词一直太过零散,分类分不好。后来江兄给我了THULAC: 由清华大学自然语言处理与社会人文计算实验室研制推出的一套中文词法分析工具包 。THULAC的接口文档很详细,简单易上手。
THULAC分词的优点:
能力强。利用规模最大的人工分词和词性标注中文语料库(约含5800万字)训练而成,模型标注能力强大。
准确率高。该工具包在标准数据集Chinese Treebank(CTB5)上分词的F1值可达973%,词性标注的F1值可达到929%
速度较快。同时进行分词和词性标注速度为300KB/s,每秒可处理约15万字。只进行分词速度达到13MB/s,速度比jieba慢
Python 解决中文编码问题基本可以用以下逻辑:
utf8(输入) ——> unicode(处理) ——> (输出)utf8
Python 里面处理的字符都是都是unicode 编码,因此解决编码问题的方法是把输入的文本(无论是什么编码)解码为(decode)unicode编码,然后输出时再编码(encode)成所需编码。
由于处理的一般为txt 文档,所以最简单的方法,是把txt 文档另存为utf-8 编码,然后使用Python 处理的时候解码为unicode(sometextsdecode('utf8')),输出结果回txt 的时候再编码成utf8(直接用str() 函数就可以了)。
中文主要有:NLTK,HanLP,Ansj,THULAC,结巴分词,FNLP,哈工大LTP,中科院ICTCLAS分词,GATE,SnowNLP,东北大学NiuTrans,NLPIR;英文主要有:NLTK,Genism,TextBlob,Stanford NLP,Spacy。英文的开源NLP工具主要参见StackoverFlow-java or python for nlp。HanLP:HanLP是由一系列模型与算法组成的Java工具包,目标是普及自然语言处理在生产环境中的应用。HanLP具备功能完善、性能高效、架构清晰、语料时新、可自定义的特点。开发语言:Java,网址:hankcs/HanLP,开发机构:大快公司,协议:Apache-20功能:非常多,主要有中文分词,词性标注,命名实体识别,关键词提取,自动摘要,短语提取,拼音转换,简繁转换,文本推荐,依存句法分析,文本分类:情感分析,word2vec,语料库工具。
python做中文分词处理主要有以下几种:结巴分词、NLTK、THULAC
1、fxsjy/jieba
结巴的标语是:做最好的 Python 中文分词组件,或许从现在来看它没做到最好,但是已经做到了使用的人最多。结巴分词网上的学习资料和使用案例比较多,上手相对比较轻松,速度也比较快。
结巴的优点:
支持三种分词模式
支持繁体分词
支持自定义词典
MIT 授权协议
2、THULAC:一个高效的中文词法分析工具包
前两天我在做有关于共享单车的用户反馈分类,使用jieba分词一直太过零散,分类分不好。后来江兄给我了THULAC: 由清华大学自然语言处理与社会人文计算实验室研制推出的一套中文词法分析工具包 。THULAC的接口文档很详细,简单易上手。
THULAC分词的优点:
能力强。利用规模最大的人工分词和词性标注中文语料库(约含5800万字)训练而成,模型标注能力强大。
准确率高。该工具包在标准数据集Chinese Treebank(CTB5)上分词的F1值可达973%,词性标注的F1值可达到929%
速度较快。同时进行分词和词性标注速度为300KB/s,每秒可处理约15万字。只进行分词速度达到13MB/s,速度比jieba慢
Python 解决中文编码问题基本可以用以下逻辑:
utf8(输入) ——> unicode(处理) ——> (输出)utf8
Python 里面处理的字符都是都是unicode 编码,因此解决编码问题的方法是把输入的文本(无论是什么编码)解码为(decode)unicode编码,然后输出时再编码(encode)成所需编码。
由于处理的一般为txt 文档,所以最简单的方法,是把txt 文档另存为utf-8 编码,然后使用Python 处理的时候解码为unicode(sometextsdecode('utf8')),输出结果回txt 的时候再编码成utf8(直接用str() 函数就可以了)。
欢迎分享,转载请注明来源:浪漫分享网
评论列表(0条)