本文摘自php中文网,作者零到壹度,侵删。
本篇文章给大家分享的内容是三种常用的python中文分词工具,有着一定的参考价值,有需要的朋友可以参考一下这三种分词工具,在这里分享下~
1.jieba 分词:
1 2 3 4 5 6 7 8 9 10 11 12 | # -*- coding: UTF-8 -*-
import os
import codecs
import jieba
seg_list = jieba.cut( '邓超,1979年出生于江西南昌,中国内地男演员、电影导演、投资出品人、互联网投资人。' )
f1 = codecs.open( "d2w_ltp.txt" , "w" )
print "/" .join(seg_list)
for i in seg_list:
f1.write(i.encode( "utf-8" ))
f1.write(str( " " ))
|
效果:
1 | 邓超/,/1979/年出/生于/江西/南昌/,/中国/内地/男演员/、/电影/导演/、/投资/出品人/、/互联网/投资人/。
|
这里面包括了结巴的分词和写入文件的形式
值得注意的是结巴分词出来的字符编码是 'Unicode' 编码,我们需要把 unicode -> utf-8
2.张华平老师的 NLPIR
(https://github.com/NLPIR-team/NLPIR)
这里给出张华平老师的github 地址 ,需要用的朋友可以去到老师的git上面 拿到 licence
有两种: 十天的\ 一个月的
当然,详细的代码和安装包我也上传到了CSDN上面,有兴趣的朋友可以看下(还是需要去更新licence)
值得一提,国内多数论文都是用这个分词工具,比较权威
1 2 3 4 5 6 7 8 9 10 11 12 | r = open( 'text_no_seg.txt' , 'r' )
list_senten = []
sentence = '邓超,1979年出生于江西南昌,中国内地男演员、电影导演、投资出品人、互联网投资人。'
for i in seg(sentence):
list_senten.append(i[0])
print "/" .join(list_senten)
f1 = codecs.open( "d2w_ltp.txt" , "w" )
for i in seg(sentence):
f1.write(i[0])
f1.write(str( " " ))
|
效果:
1 | 邓超/,/1979年/出生/于/江西/南昌/,/中国/内地/男/演员/、/电影/导演/、/投资/出品/人/、/互联网/投资人/。
|
当然NLPIR在在命名实体识别上面也是有着很好的效果:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | 邓超 nr
, wd
1979年 t
出生 vi
于 p
江西 ns
南昌 ns
, wd
中国 ns
内地 s
男 b
演员 n
、 wn
电影 n
导演 n
、 wn
投资 n
出品 vi
人 n
、 wn
互联网 n
投资人 n
。 wj
|
3.哈工大LTP
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | # -*- coding: UTF-8 -*-
import os
import codecs
from pyltp import Segmentor
#分词
def segmentor(sentence):
segmentor = Segmentor() # 初始化实例
segmentor.load( 'ltp_data/cws.model' ) # 加载模型
words = segmentor.segment(sentence) # 分词
words_list = list(words)
segmentor.release() # 释放模型
return words_list
f1 = codecs.open( "d2w_ltp.txt" , "w" )
sentence = '邓超,1979年出生于江西南昌,中国内地男演员、电影导演、投资出品人、互联网投资人。'
print "/" .join(segmentor(sentence))
for i in segmentor(sentence):
f1.write(i)
f1.write(str( " " ))
|
效果:
1 | 邓/超/,/1979年/出生/于/江西/南昌/,/中国/内地/男/演员/、/电影/导演/、/投资/出品人/、/互联网/投资人/。
|
以上就是三种常用的python中文分词工具的详细内容,更多文章请关注木庄网络博客!!
相关阅读 >>
Python numpy 点数组去重
如何删除Python字典中的元素?如何清空字典?
Python中while循环打印星星的四种形状
Python通过什么实现映射
Python如何输入十个学生的成绩
Python中的列表与元组有什么区别?一文搞懂元组与列表的异同点
Python是面向对象还是面向过程的
Python的import是什么意思
Python中函数赋值给变量时的问题注意详解
怎样操作Python遍历numpy数组
更多相关阅读请进入《Python》频道 >>
人民邮电出版社
python入门书籍,非常畅销,超高好评,python官方公认好书。
转载请注明出处:木庄网络博客 » 三种常用的python中文分词工具