在《聽不懂人話?stata分詞幫你搞定(一)》中,我們介紹了如何使用stata進(jìn)行簡單的分詞,但由于stata進(jìn)行的分詞不能顯示詞性也不能添加詞典,《聽不懂人話?stata分詞幫你搞定(二)》中我們又介紹了如何使用stata與Python交互調(diào)用pynlpir以及添加詞典進(jìn)行分詞。有粉絲留言說我們用的江南皮革廠的例子都可以跟著節(jié)奏念起來,看來分詞的效果還是不錯(cuò)的呢~那今天我們就繼續(xù)放大招:介紹stata與Python交互調(diào)用jieba進(jìn)行分詞,它能夠?qū)崿F(xiàn)不同精度模式下的分詞哦。 結(jié)巴(jieba)是國人推出的一個(gè)精品插件,可以對一段中文進(jìn)行分詞,目前已有Python、JAVA、C++和Nodejs版本,可以適應(yīng)不同需求。我們調(diào)用dos命令,運(yùn)行 !pip install jieba 安裝jieba jieba有三種分詞模式:全模式可以列出句子中所有能夠成詞的詞語,如輸入文本“皮革廠”,全模式下會將 “皮革”、“皮革廠”都列出,速度非???,但是不能解決歧義,如“武漢市/長江大橋”和“武漢/市長/江大橋”。精確模式試圖將句子最精確地切開,會列出不重復(fù)的所有詞,適合進(jìn)行文本分析。搜索引擎模式在精確模式的基礎(chǔ)上,對長詞再次切分,適合用于搜索引擎分詞。今天我們主要介紹全模式和精確模式。在Python中,調(diào)用jieba進(jìn)行分詞時(shí),cut_all = True表示全模式,cut_all = False表示精確模式。 全模式 我們用file命令編輯Python腳本,調(diào)用jieba使用全模式進(jìn)行分詞。 clear all cd E:/分詞與情感分析 tempname handle file open `handle' using 分詞.py, replace text write file write `handle' `'import jieba'' _n //導(dǎo)入jieba模塊 file write `handle' `'string = '浙江溫州,浙江溫州,'' file write `handle' `'最大皮革廠,江南皮革廠倒閉了!'' file write `handle' `'老板黃鶴吃喝嫖賭,欠下了3.5個(gè)億,'' file write `handle' `'帶著他的小姨子跑了。'' file write `handle' `'我們沒有辦法,拿著錢包抵工資。'' file write `handle' `'原價(jià)都是三百多、二百多、一百多的錢包,'' file write `handle' `'通通二十塊,通通二十塊!'' file write `handle' `'黃鶴你不是人,我們辛辛苦苦給你干了大半年,'' file write `handle' `'你不發(fā)工資,你還我血汗錢,還我血汗錢!''' _n file write `handle' `'seg_list = jieba.cut(string, cut_all = True)'' _n // jieba.cut方法接受兩個(gè)輸入?yún)?shù):第一個(gè)參數(shù)為需要分詞的字符串,第二個(gè)參數(shù)cut_all用來控制是否采用全模式,cut_all = True表示全模式 file write `handle' `'for word in seg_list:'' _n file write `handle' `' print(word)'' file close `handle' ! python 分詞.py > 分詞結(jié)果.txt shellout 分詞結(jié)果.txt 可以看出,全模式會把句子中所有可以成詞的詞語全部列出來。 精確模式 我們用file命令編輯Python腳本,調(diào)用jieba使用精確模式進(jìn)行分詞。 clear all cd E:/分詞與情感分析 tempname handle file open `handle' using 分詞1.py, replace text write file write `handle' `'import jieba'' _n file write `handle' `'string = '浙江溫州,浙江溫州,'' file write `handle' `'最大皮革廠,江南皮革廠倒閉了!'' file write `handle' `'老板黃鶴吃喝嫖賭,欠下了3.5個(gè)億,'' file write `handle' `'帶著他的小姨子跑了。'' file write `handle' `'我們沒有辦法,拿著錢包抵工資。'' file write `handle' `'原價(jià)都是三百多、二百多、一百多的錢包,'' file write `handle' `'通通二十塊,通通二十塊!'' file write `handle' `'黃鶴你不是人,我們辛辛苦苦給你干了大半年,'' file write `handle' `'你不發(fā)工資,你還我血汗錢,還我血汗錢!''' _n file write `handle' `'seg_list = jieba.cut(string, cut_all = False)'' _n //cut_all = False表示精確模式 file write `handle' `'for word in seg_list:'' _n file write `handle' `' print(word)'' file close `handle' ! python 分詞1.py > 分詞結(jié)果1.txt shellout 分詞結(jié)果1.txt 可以看出,精確模式能夠?qū)⒕渥幼罹_地切開,會列出不重復(fù)的所有詞,相對于全模式來說更加適合進(jìn)行文本分析。 有時(shí)候,根據(jù)不同的分詞需求,還要獲得詞性,我們在Python中調(diào)用jieba進(jìn)行分詞時(shí)可以通過import jieba.posseg加載jieba詞性標(biāo)注模塊。 clear all cd E:/分詞與情感分析 tempname handle file open `handle' using 分詞2.py, replace text write file write `handle' `'import jieba.posseg'' _n //加載jieba詞性標(biāo)注模塊 file write `handle' `'string = '浙江溫州,浙江溫州,'' file write `handle' `'最大皮革廠,江南皮革廠倒閉了!'' file write `handle' `'老板黃鶴吃喝嫖賭,欠下了3.5個(gè)億,'' file write `handle' `'帶著他的小姨子跑了。'' file write `handle' `'我們沒有辦法,拿著錢包抵工資。'' file write `handle' `'原價(jià)都是三百多、二百多、一百多的錢包,'' file write `handle' `'通通二十塊,通通二十塊!'' file write `handle' `'黃鶴你不是人,我們辛辛苦苦給你干了大半年,'' file write `handle' `'你不發(fā)工資,你還我血汗錢,還我血汗錢!''' _n file write `handle' `'seg_list = jieba.posseg.cut(string)'' _n //對文本切詞并顯示詞性 file write `handle' `'for word in seg_list:'' _n file write `handle' `' print(word.word, word.flag)'' //把切詞結(jié)果里的每一個(gè)詞及詞性打印出來 file close `handle' ! python 分詞2.py > 分詞結(jié)果2.txt shellout 分詞結(jié)果2.txt 可以看到,輸出結(jié)果列出了分詞后的每個(gè)詞和相應(yīng)的詞性,如ns表示地名,a表示形容詞,v表示動(dòng)詞,ul表示“了”“嘍”等。 看不懂的記得戳下方視頻哦~ 以上就是今天給大家分享的內(nèi)容了,說得好就賞個(gè)銅板唄!有錢的捧個(gè)錢場,有人的捧個(gè)人場~。另外,我們開通了蘋果手機(jī)打賞通道,只要掃描下方的二維碼,就可以打賞啦! 應(yīng)廣大粉絲要求,爬蟲俱樂部的推文公眾號打賞功能可以開發(fā)票啦,累計(jì)打賞超過1000元我們即可給您開具發(fā)票,發(fā)票類別為“咨詢費(fèi)”。用心做事,只為做您更貼心的小爬蟲。第一批發(fā)票已經(jīng)寄到各位小主的手中,大家快來給小爬蟲打賞呀~ 文字編輯:閆續(xù)文 技術(shù)總編:劉貝貝 |
|