一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

腳本之家,腳本語言編程技術及教程分享平臺!
分類導航

Python|VBS|Ruby|Lua|perl|VBA|Golang|PowerShell|Erlang|autoit|Dos|bat|

服務器之家 - 腳本之家 - Python - 淺談python jieba分詞模塊的基本用法

淺談python jieba分詞模塊的基本用法

2020-12-16 01:02AzureSky Python

本篇文章主要介紹了淺談python jieba分詞模塊的基本用法,小編覺得挺不錯的,現在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧

jieba(結巴)是一個強大的分詞庫,完美支持中文分詞,本文對其基本用法做一個簡要總結。

特點

  1. 支持三種分詞模式:
    1. 精確模式,試圖將句子最精確地切開,適合文本分析;
    2. 全模式,把句子中所有的可以成詞的詞語都掃描出來, 速度非常快,但是不能解決歧義;
    3. 搜索引擎模式,在精確模式的基礎上,對長詞再次切分,提高召回率,適合用于搜索引擎分詞。
  2. 支持繁體分詞
  3. 支持自定義詞典
  4. MIT 授權協議

安裝jieba

?
1
pip install jieba

簡單用法

結巴分詞分為三種模式:精確模式(默認)、全模式和搜索引擎模式,下面對這三種模式分別舉例介紹:

精確模式

?
1
2
import jieba
s = u'我想和女朋友一起去北京故宮博物院參觀和閑逛。'
?
1
2
3
4
5
cut = jieba.cut(s)
 
print '【Output】'
print cut
print ','.join(cut)
?
1
2
3
【Output】
<generator object cut at 0x7f8dbc0efc30>
我,想,和,女朋友,一起,去,北京故宮博物院,參觀,和,閑逛,。

可見分詞結果返回的是一個生成器(這對大數據量數據的分詞尤為重要)。

全模式

?
1
2
print '【Output】'
print ','.join(jieba.cut(s,cut_all = True))
?
1
2
【Output】
我,想,和,女朋友,朋友,一起,去,北京,北京故宮,北京故宮博物院,故宮,故宮博物院,博物,博物院,參觀,和,閑逛,,

可見全模式就是把文本分成盡可能多的詞。

搜索引擎模式

?
1
2
print '【Output】'
print ','.join(jieba.cut_for_search(s))
?
1
2
【Output】
我,想,和,朋友,女朋友,一起,去,北京,故宮,博物,博物院,北京故宮博物院,參觀,和,閑逛,。

獲取詞性

每個詞都有其詞性,比如名詞、動詞、代詞等,結巴分詞的結果也可以帶上每個詞的詞性,要用到jieba.posseg,舉例如下:

?
1
2
3
4
5
6
7
8
9
import jieba.posseg as psg
print '【Output】'
print [(x.word,x.flag) for x in psg.cut(s)]
 
# 輸出:
'''
[(u'我', u'r'), (u'想', u'v'), (u'和', u'c'), (u'女朋友', u'n'), (u'一起', u'm'),
(u'去', u'v'), (u'北京故宮博物院', u'ns'), (u'參觀', u'n'), (u'和', u'c'), (u'閑逛', u'v'), (u'。', u'x')]
'''

可以看到成功獲取到每個詞的詞性,這對于我們對分詞結果做進一步處理很有幫助,比如只想獲取分詞結果列表中的名詞,那么就可以這樣過濾:

?
1
2
3
4
5
6
print [(x.word,x.flag) for x in psg.cut(s) if x.flag.startswith('n')]
 
# 輸出:
'''
[(u'女朋友', u'n'), (u'北京故宮博物院', u'ns'), (u'參觀', u'n')]
'''

至于詞性的每個字母分別表示什么詞性,jieba分詞的結果可能有哪些詞性,就要去查閱詞性對照表了,本文結尾附了一份從網上搜到的詞性對照表,想了解更詳細的詞性分類信息,可以到網上搜索"結巴分詞詞性對照"。

并行分詞

在文本數據量非常大的時候,為了提高分詞效率,開啟并行分詞就很有必要了。jieba支持并行分詞,基于python自帶的multiprocessing模塊,但要注意的是在Windows環境下不支持。

用法:

?
1
2
3
4
5
# 開啟并行分詞模式,參數為并發執行的進程數
jieba.enable_parallel(5)
 
# 關閉并行分詞模式
jieba.disable_parallel()

舉例:開啟并行分詞模式對三體全集文本進行分詞

?
1
2
santi_text = open('./santi.txt').read()
print len(santi_text)

2681968

可以看到三體全集的數據量還是非常大的,有260多萬字節的長度。

?
1
2
3
jieba.enable_parallel(100)
santi_words = [x for x in jieba.cut(santi_text) if len(x) >= 2]
jieba.disable_parallel()

獲取出現頻率Top n的詞

還是以上面的三體全集文本為例,假如想要獲取分詞結果中出現頻率前20的詞列表,可以這樣獲取:

?
1
2
3
4
5
6
7
8
9
10
11
from collections import Counter
c = Counter(santi_words).most_common(20)
print c
 
# 輸出:
'''
[(u'\r\n', 21805), (u'一個', 3057), (u'沒有', 2128), (u'他們', 1690), (u'我們', 1550),
(u'這個', 1357), (u'自己', 1347), (u'程心', 1320), (u'現在', 1273), (u'已經', 1259),
(u'世界', 1243), (u'羅輯', 1189), (u'可能', 1177), (u'什么', 1176), (u'看到', 1114),
(u'知道', 1094), (u'地球', 951), (u'人類', 935), (u'太空', 930), (u'三體', 883)]
'''

可以看到結果中'\r\n'居然是出現頻率最高的詞,還有'一個'、'沒有'、'這個'等這種我們并不想要的無實際意義的詞,那么就可以根據前面說的詞性來進行過濾,這個以后細講。

使用用戶字典提高分詞準確性

不使用用戶字典的分詞結果:

?
1
2
txt = u'歐陽建國是創新辦主任也是歡聚時代公司云計算方面的專家'
print ','.join(jieba.cut(txt))

歐陽,建國,是,創新,辦,主任,也,是,歡聚,時代,公司,云,計算,方面,的,專家

使用用戶字典的分詞結果:

?
1
2
jieba.load_userdict('user_dict.txt')
print ','.join(jieba.cut(txt))

歐陽建國,是,創新辦,主任,也,是,歡聚時代,公司,云計算,方面,的,專家

可以看出使用用戶字典后分詞準確性大大提高。

注:其中user_dict.txt的內容如下:

歐陽建國 5

創新辦 5 i

歡聚時代 5

云計算 5

用戶字典每行一個詞,格式為:

詞語 詞頻 詞性

其中詞頻是一個數字,詞性為自定義的詞性,要注意的是詞頻數字和空格都要是半角的。

附:結巴分詞詞性對照表(按詞性英文首字母排序)

形容詞(1個一類,4個二類)

a 形容詞

ad 副形詞

an 名形詞

ag 形容詞性語素

al 形容詞性慣用語

區別詞(1個一類,2個二類)

b 區別詞

bl 區別詞性慣用語

連詞(1個一類,1個二類)

c 連詞

cc 并列連詞

副詞(1個一類)

d 副詞

嘆詞(1個一類)

e 嘆詞

方位詞(1個一類)

f 方位詞

前綴(1個一類)

h 前綴

后綴(1個一類)

k 后綴

數詞(1個一類,1個二類)

m 數詞

mq 數量詞

名詞 (1個一類,7個二類,5個三類)

名詞分為以下子類:

n 名詞

nr 人名

nr1 漢語姓氏

nr2 漢語名字

nrj 日語人名

nrf 音譯人名

ns 地名

nsf 音譯地名

nt 機構團體名

nz 其它專名

nl 名詞性慣用語

ng 名詞性語素

擬聲詞(1個一類)

o 擬聲詞

介詞(1個一類,2個二類)

p 介詞

pba 介詞“把”

pbei 介詞“被”

量詞(1個一類,2個二類)

q 量詞

qv 動量詞

qt 時量詞

代詞(1個一類,4個二類,6個三類)

r 代詞

rr 人稱代詞

rz 指示代詞

rzt 時間指示代詞

rzs 處所指示代詞

rzv 謂詞性指示代詞

ry 疑問代詞

ryt 時間疑問代詞

rys 處所疑問代詞

ryv 謂詞性疑問代詞

rg 代詞性語素

處所詞(1個一類)

s 處所詞

時間詞(1個一類,1個二類)

t 時間詞

tg 時間詞性語素

助詞(1個一類,15個二類)

u 助詞

uzhe 著

ule 了 嘍

uguo 過

ude1 的 底

ude2 地

ude3 得

usuo 所

udeng 等 等等 云云

uyy 一樣 一般 似的 般

udh 的話

uls 來講 來說 而言 說來

uzhi 之

ulian 連 (“連小學生都會”)

動詞(1個一類,9個二類)

v 動詞

vd 副動詞

vn 名動詞

vshi 動詞“是”

vyou 動詞“有”

vf 趨向動詞

vx 形式動詞

vi 不及物動詞(內動詞)

vl 動詞性慣用語

vg 動詞性語素

標點符號(1個一類,16個二類)

w 標點符號

wkz 左括號,全角:( 〔 [ { 《 【 〖 〈 半角:( [ { <

wky 右括號,全角:) 〕 ] } 》 】 〗 〉 半角: ) ] { >

wyz 左引號,全角:“ ‘ 『

wyy 右引號,全角:” ' 』

wj 句號,全角:。

ww 問號,全角:? 半角:?

wt 嘆號,全角:! 半角:!

wd 逗號,全角:, 半角:,

wf 分號,全角:; 半角: ;

wn 頓號,全角:、

wm 冒號,全角:: 半角: :

ws 省略號,全角:…… …

wp 破折號,全角:—— -- ——- 半角:--- ----

wb 百分號千分號,全角:% ‰ 半角:%

wh 單位符號,全角:¥ $ £ ° ℃ 半角:$

字符串(1個一類,2個二類)

x 字符串

xx 非語素字

xu 網址URL

語氣詞(1個一類)

y 語氣詞(delete yg)

狀態詞(1個一類)

z 狀態詞

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持服務器之家。

原文鏈接:http://www.cnblogs.com/jiayongji/p/7119065.html

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 草草视频在线观看 | 亚洲四虎永久在线播放 | 久久视频这有精品63在线国产 | 强插美女| 调教小龙女 | 免费一区二区 | 四虎影视永久在线精品免费 | 手机在线伦理片 | 国产午夜一区二区在线观看 | 国产精品亚洲精品日韩已方 | 91人成尤物在线 | 天天狠天天透 | 大奶老太| 亚洲狠狠网站色噜噜 | 污书屋| 亚飞与亚基国语1080p在线观看 | 九九精品视频在线播放 | 亚洲精品国产成人 | 91大神第九部红酒气质女 | 大学生按摩黄a级中文片 | 日本在线观看www鲁啊鲁视频 | s8sp加密路线和免费路线首页 | 亚洲卡一卡2卡三卡4麻豆 | 成人午夜影院在线观看 | 精品欧美一区二区三区四区 | 精品国产成人AV在线看 | a v在线男人的天堂观看免费 | 秋霞午夜伦午夜高清福利片 | 视频一区二区三区欧美日韩 | 欧美免赞性视频 | 亚洲美女爱爱 | 日本暖暖视频在线观看 | 性欧美xxxxxxx另类 | 久久精品WWW人人爽人人 | 97综合 | 国产良心大作白丝精厕 | 俄罗斯美女大逼 | 国产精品福利在线观看免费不卡 | 喜马拉雅听书免费版 | 亚洲成人免费看 | 亚洲高清在线精品一区 |