下面這個(gè)程序是對(duì)一個(gè)文本文件里的內(nèi)容進(jìn)行分詞的程序:test.py
鄧州網(wǎng)站制作公司哪家好,找創(chuàng)新互聯(lián)!從網(wǎng)頁設(shè)計(jì)、網(wǎng)站建設(shè)、微信開發(fā)、APP開發(fā)、響應(yīng)式網(wǎng)站建設(shè)等網(wǎng)站項(xiàng)目制作,到程序開發(fā),運(yùn)營(yíng)維護(hù)。創(chuàng)新互聯(lián)自2013年起到現(xiàn)在10年的時(shí)間,我們擁有了豐富的建站經(jīng)驗(yàn)和運(yùn)維經(jīng)驗(yàn),來保證我們的工作的順利進(jìn)行。專注于網(wǎng)站建設(shè)就選創(chuàng)新互聯(lián)。
[python] view plain copy
#!/usr/bin/python
#-*-?encoding:utf-8?-*-
import?jieba????????????????????????????????????????????????????#導(dǎo)入jieba模塊
def?splitSentence(inputFile,?outputFile):
fin?=?open(inputFile,?'r')??????????????????????????????????#以讀的方式打開文件
fout?=?open(outputFile,?'w')????????????????????????????????#以寫得方式打開文件
for?eachLine?in?fin:
line?=?eachLine.strip().decode('utf-8',?'ignore')???????#去除每行首尾可能出現(xiàn)的空格,并轉(zhuǎn)為Unicode進(jìn)行處理
wordList?=?list(jieba.cut(line))????????????????????????#用結(jié)巴分詞,對(duì)每行內(nèi)容進(jìn)行分詞
outStr?=?''
for?word?in?wordList:
outStr?+=?word
outStr?+=?'/?'
fout.write(outStr.strip().encode('utf-8')?+?'\n')???????#將分詞好的結(jié)果寫入到輸出文件
fin.close()
fout.close()
splitSentence('myInput.txt',?'myOutput.txt')
寫完程序之后,在Linux重點(diǎn)輸入:python test.py即可運(yùn)行程序進(jìn)行分詞。
輸入的文件內(nèi)容如下所示:
經(jīng)過結(jié)巴分詞后,輸出結(jié)果如下所示:
注意:第11行的 jieba.cut()返回的結(jié)構(gòu)是一個(gè)可迭代的generator,可以用list(jieba.cut(...))轉(zhuǎn)化為list
1、全局變量在函數(shù)中使用時(shí)需要加入global聲明
2、獲取網(wǎng)頁內(nèi)容存入文件時(shí)的編碼為ascii進(jìn)行正則匹配時(shí)需要decode為GB2312,當(dāng)匹配到的中文寫入文件時(shí)需要encode成GB2312寫入文件。
3、中文字符匹配過濾正則表達(dá)式為ur'[\u4e00-\u9fa5]+',使用findall找到所有的中文字符存入分組
4、KEY,Value值可以使用dict存儲(chǔ),排序后可以使用list存儲(chǔ)
5、字符串處理使用split分割,然后使用index截取字符串,判斷哪些是名詞和動(dòng)詞
6、命令行使用需要導(dǎo)入os,os.system(cmd)
可以利用python的jieba分詞,得到文本中出現(xiàn)次數(shù)較多的詞。
首先pip安裝一下jieba,這個(gè)可以分詞
然后用計(jì)數(shù)器Counter()統(tǒng)計(jì)一下得到的分詞中各詞的數(shù)量
最后most_common(5),是打印出排名前五位的詞(包括特殊符號(hào))
#encoding:utf-8
import?sys
reload(sys)
sys.setdefaultencoding('utf-8')
import?jieba
from?collections?import?Counter
str1?=?open('tips.txt').read()
wordlist_after_jieba?=?jieba.cut(str1,?cut_all?=?True)
list_wl?=?Counter(wordlist_after_jieba)
for?i?in?list_wl.most_common(5):
print?i[0],i[1]
python做中文分詞處理主要有以下幾種:結(jié)巴分詞、NLTK、THULAC
1、fxsjy/jieba
結(jié)巴的標(biāo)語是:做最好的 Python 中文分詞組件,或許從現(xiàn)在來看它沒做到最好,但是已經(jīng)做到了使用的人最多。結(jié)巴分詞網(wǎng)上的學(xué)習(xí)資料和使用案例比較多,上手相對(duì)比較輕松,速度也比較快。
結(jié)巴的優(yōu)點(diǎn):
支持三種分詞模式
支持繁體分詞
支持自定義詞典
MIT 授權(quán)協(xié)議
2、THULAC:一個(gè)高效的中文詞法分析工具包
前兩天我在做有關(guān)于共享單車的用戶反饋分類,使用jieba分詞一直太過零散,分類分不好。后來江兄給我推薦了THULAC: 由清華大學(xué)自然語言處理與社會(huì)人文計(jì)算實(shí)驗(yàn)室研制推出的一套中文詞法分析工具包 。THULAC的接口文檔很詳細(xì),簡(jiǎn)單易上手。
THULAC分詞的優(yōu)點(diǎn):
能力強(qiáng)。利用規(guī)模最大的人工分詞和詞性標(biāo)注中文語料庫(約含5800萬字)訓(xùn)練而成,模型標(biāo)注能力強(qiáng)大。
準(zhǔn)確率高。該工具包在標(biāo)準(zhǔn)數(shù)據(jù)集Chinese Treebank(CTB5)上分詞的F1值可達(dá)97.3%,詞性標(biāo)注的F1值可達(dá)到92.9%
速度較快。同時(shí)進(jìn)行分詞和詞性標(biāo)注速度為300KB/s,每秒可處理約15萬字。只進(jìn)行分詞速度達(dá)到1.3MB/s,速度比jieba慢
Python 解決中文編碼問題基本可以用以下邏輯:
utf8(輸入) —— unicode(處理) —— (輸出)utf8
Python 里面處理的字符都是都是unicode 編碼,因此解決編碼問題的方法是把輸入的文本(無論是什么編碼)解碼為(decode)unicode編碼,然后輸出時(shí)再編碼(encode)成所需編碼。
由于處理的一般為txt 文檔,所以最簡(jiǎn)單的方法,是把txt 文檔另存為utf-8 編碼,然后使用Python 處理的時(shí)候解碼為unicode(sometexts.decode('utf8')),輸出結(jié)果回txt 的時(shí)候再編碼成utf8(直接用str() 函數(shù)就可以了)。
本文題目:python分詞函數(shù) python分詞方法
網(wǎng)頁路徑:http://muchs.cn/article16/dospsdg.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站改版、外貿(mào)建站、虛擬主機(jī)、網(wǎng)站設(shè)計(jì)公司、自適應(yīng)網(wǎng)站、App設(shè)計(jì)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)