python分詞程序
㈠ 基於 python 的中文分詞方案那種比較好
我沒用過python語言寫的分詞程序。
分詞這種功能屬於計算密集型功能,需要大量計算,python不適合這種場合,可以考慮python調用c庫。
㈡ python3怎麼使用結巴分詞
下面這個程序是對一個文本文件里的內容進行分詞的程序:test.py
[python] view plain
#!/usr/bin/python
#-*-encoding:utf-8-*-
importjieba#導入jieba模塊
defsplitSentence(inputFile,outputFile):
fin=open(inputFile,'r')#以讀的方式打開文件
fout=open(outputFile,'w')#以寫得方式打開文件
foreachLineinfin:
line=eachLine.strip().decode('utf-8','ignore')#去除每行首尾可能出現的空格,並轉為Unicode進行處理
wordList=list(jieba.cut(line))#用結巴分詞,對每行內容進行分詞
outStr=''
forwordinwordList:
outStr+=word
outStr+='/'
fout.write(outStr.strip().encode('utf-8')+' ')#將分詞好的結果寫入到輸出文件
fin.close()
fout.close()
splitSentence('myInput.txt','myOutput.txt')
寫完程序之後,在Linux重點輸入:python test.py即可運行程序進行分詞。
輸入的文件內容如下所示:
注意:第11行的 jieba.cut()返回的結構是一個可迭代的generator,可以用list(jieba.cut(...))轉化為list
㈢ python打開txt文件 並且對這個txt文件中的內容進行ngram分詞 已有分詞代碼如下圖且運
fname='/d/filename.txt'
withopen(fname)asf:
s=f.read()
ng=NGram(s)
print(ng.table)
㈣ 如何用python進行中文分詞
安裝jieba
pipinstalljieba
然後
>>>importjieba
>>>seg_list=jieba.cut("我來到北京清華大學",cut_all=True)
>>>print("FullMode:"+"/".join(seg_list))
...
DumpingmodeltofilecacheC:.cache
Loadingmodelcost0.902seconds.
.
FullMode:我/來到/北京/清華/清華大學/華大/大學
>>>seg_list=jieba.cut("我來到北京清華大學",cut_all=False)
>>>print("PreciseMode:"+"/".join(seg_list))
PreciseMode:我/來到/北京/清華大學
還有更多的模式和細節,自己去網路吧
㈤ 如何用python和jieba分詞,統計詞頻
#!python3
#-*-coding:utf-8-*-
importos,codecs
importjieba
fromcollectionsimportCounter
defget_words(txt):
seg_list=jieba.cut(txt)
c=Counter()
forxinseg_list:
iflen(x)>1andx!=' ':
c[x]+=1
print('常用詞頻度統計結果')
for(k,v)inc.most_common(100):
print('%s%s%s%d'%(''*(5-len(k)),k,'*'*int(v/3),v))
if__name__=='__main__':
withcodecs.open('19d.txt','r','utf8')asf:
txt=f.read()
get_words(txt)
㈥ 如何用python進行海量中文分詞
1、全局變數在函數中使用時需要加入global聲明
2、獲取網頁內容存入文件時的編碼為ascii進行正則匹配時需要decode為GB2312,當匹配到的中文寫入文件時需要encode成GB2312寫入文件。
3、中文字元匹配過濾正則表達式為ur'[\u4e00-\u9fa5]+',使用findall找到所有的中文字元存入分組
4、KEY,Value值可以使用dict存儲,排序後可以使用list存儲
5、字元串處理使用split分割,然後使用index截取字元串,判斷哪些是名詞和動詞
6、命令行使用需要導入os,os.system(cmd)
㈦ 如何利用Python對中文進行分詞處理
python做中文分詞處理主要有以下幾種:結巴分詞、NLTK、THULAC
1、fxsjy/jieba
結巴的標語是:做最好的 Python 中文分片語件,或許從現在來看它沒做到最好,但是已經做到了使用的人最多。結巴分詞網上的學習資料和使用案例比較多,上手相對比較輕松,速度也比較快。
結巴的優點:
支持三種分詞模式
支持繁體分詞
支持自定義詞典
MIT 授權協議
2、THULAC:一個高效的中文詞法分析工具包
前兩天我在做有關於共享單車的用戶反饋分類,使用jieba分詞一直太過零散,分類分不好。後來江兄給我推薦了THULAC: 由清華大學自然語言處理與社會人文計算實驗室研製推出的一套中文詞法分析工具包 。THULAC的介面文檔很詳細,簡單易上手。
THULAC分詞的優點:
能力強。利用規模最大的人工分詞和詞性標注中文語料庫(約含5800萬字)訓練而成,模型標注能力強大。
准確率高。該工具包在標准數據集Chinese Treebank(CTB5)上分詞的F1值可達97.3%,詞性標注的F1值可達到92.9%
速度較快。同時進行分詞和詞性標注速度為300KB/s,每秒可處理約15萬字。只進行分詞速度達到1.3MB/s,速度比jieba慢
Python 解決中文編碼問題基本可以用以下邏輯:
utf8(輸入) ——> unicode(處理) ——> (輸出)utf8
Python 裡面處理的字元都是都是unicode 編碼,因此解決編碼問題的方法是把輸入的文本(無論是什麼編碼)解碼為(decode)unicode編碼,然後輸出時再編碼(encode)成所需編碼。
由於處理的一般為txt 文檔,所以最簡單的方法,是把txt 文檔另存為utf-8 編碼,然後使用Python 處理的時候解碼為unicode(sometexts.decode('utf8')),輸出結果回txt 的時候再編碼成utf8(直接用str() 函數就可以了)。
㈧ python3 進行結巴分詞時可以並行處理嗎
下面這個程序是對一個文本文件里的內容進行分詞的程序:test.py
[python] view plain
#!/usr/bin/python
#-*- encoding:utf-8 -*-
import jieba #導入jieba模塊
def splitSentence(inputFile, outputFile):
fin = open(inputFile, 'r') #以讀的方式打開文件
fout = open(outputFile, 'w') #以寫得方式打開文件
for eachLine in fin:
line = eachLine.strip().decode('utf-8', 'ignore') #去除每行首尾可能出現的空格,並轉為Unicode進行處理
wordList = list(jieba.cut(line)) #用結巴分詞,對每行內容進行分詞
outStr = ''
for word in wordList:
outStr += word
outStr += '/ '
fout.write(outStr.strip().encode('utf-8') + '\n') #將分詞好的結果寫入到輸出文件
fin.close()
fout.close()
splitSentence('myInput.txt', 'myOutput.txt')
寫完程序之後,在Linux重點輸入:python test.py即可運行程序進行分詞。
㈨ 如何用PYTHON做分詞處理
可以利用python的jieba分詞,得到文本中出現次數較多的詞。
首先pip安裝一下jieba,這個可以分詞
然後用計數器Counter()統計一下得到的分詞中各詞的數量
最後most_common(5),是列印出排名前五位的詞(包括特殊符號)
#encoding:utf-8
importsys
reload(sys)
sys.setdefaultencoding('utf-8')
importjieba
fromcollectionsimportCounter
str1=open('tips.txt').read()
wordlist_after_jieba=jieba.cut(str1,cut_all=True)
list_wl=Counter(wordlist_after_jieba)
foriinlist_wl.most_common(5):
printi[0],i[1]
㈩ 怎麼是用python 語言 使用結巴分詞 呢
Python代碼
#encoding=utf-8
importjieba
seg_list=jieba.cut("我來到北京清華大學",cut_all=True)
print"FullMode:","/".join(seg_list)#全模式
seg_list=jieba.cut("我來到北京清華大學",cut_all=False)
print"DefaultMode:","/".join(seg_list)#默認模式
seg_list=jieba.cut("他來到了網易杭研大廈")
print",".join(seg_list)
輸出:
FullMode:我/來/來到/到/北/北京/京/清/清華/清華大學/華/華大/大/大學/學
DefaultMode:我/來到/北京/清華大學
他,來到,了,網易,杭研,大廈(此處,「杭研」並沒有在詞典中,但是也被Viterbi演算法識別出來了)