三种常用的python中文分词工具


本文摘自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中多态如何理解

如何打开Python3

Python运行快捷键是什么

Python的while如何使用

如何将字符串转成字典

Python字典的清单如何使用

Python怎么卸载不了

编程Python是什么

嵌入式软件和Python有关吗

如何检测一个变量是否存在

更多相关阅读请进入《Python》频道 >>




打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...