jieba是python中一个重要的标准函数库_python——Jieba库整理(基础知识+实例)
先上目錄,1.Jieba庫是什么
2.Jieba庫的使用(常見方法及函數(shù))
3.實(shí)例——英文文本解析和中文文本解析
1.Jieba庫是什么
Jieba庫是優(yōu)秀的中文分詞第三方庫,中文文本需要通過分詞獲得單個(gè)的詞語。
Jieba庫的分詞原理:利用一個(gè)中文詞庫,確定漢字之間的關(guān)聯(lián)概率,漢字間概率大的組成詞組,形成分詞結(jié)果。除了分詞,用戶還可以添加自定義的詞組。
2.Jieba庫的使用
Jieba庫分詞有3種模式
1)精確模式:就是把一段文本精確地切分成若干個(gè)中文單詞,若干個(gè)中文單詞之間經(jīng)過組合,就精確地還原為之前的文本。其中不存在冗余單詞。
2)全模式:將一段文本中所有可能的詞語都掃描出來,可能有一段文本它可以切分成不同的模式,或者有不同的角度來切分變成不同的詞語,在全模式下,Jieba庫會(huì)將各種不同的組合都挖掘出來。分詞后的信息再組合起來會(huì)有冗余,不再是原來的文本。
3)搜索引擎模式:在精確模式基礎(chǔ)上,對(duì)發(fā)現(xiàn)的那些長的詞語,我們會(huì)對(duì)它再次切分,進(jìn)而適合搜索引擎對(duì)短詞語的索引和搜索。也有冗余。
Jieba庫常用函數(shù):重點(diǎn)記輸入什么類型(字符串?列表?)、輸出什么類型(字符串?列表?);
搜索引擎模式:首先按照精確模式進(jìn)行分詞,分出來有“中華人民共和國”這個(gè)詞,搜索引擎模式覺得它太長,又對(duì)改詞進(jìn)行了切詞。
3.實(shí)例——要注意英文文本和中文文本解析的不同方法
1)英文文本解析
溫馨提示:這里有很多關(guān)于文本的使用,相關(guān)部分我會(huì)寫在另一篇文章中~~
def getext():
fname=input("請(qǐng)輸入要打開的文件路徑及名稱,以txt結(jié)尾:")
fo=open(fname) #打開該文件,默認(rèn)是文本文件,文本文件其實(shí)就是一個(gè)字符串
txt=fo.read() #<文件名>.read() 默認(rèn)是讀取文件全部內(nèi)容
txt=txt.lower() #將文本所有字母小寫
for ch in '!"#$%()*+<_>/:;<>=?@[\]\^_{}|~':
txt=txt.replace(ch,'') #將文本中含有的所有上述字符都變?yōu)榭崭?/p>
return txt
hamlettxt=getext()
words=hamlettxt.split() #默認(rèn)值,是將文本中單詞按照空格分成一個(gè)一個(gè)的單詞,并將結(jié)果保存成列表類型
counts={} #定義一個(gè)空字典類型,因?yàn)槲覀兿M麊卧~和該單詞出現(xiàn)的次數(shù)作為一個(gè)鍵值對(duì)
for word in words: #遍歷words列表的每一個(gè)值
counts[word]=counts.get(word,0)+1
items=list(counts.items()) #將該字典轉(zhuǎn)化成一個(gè)列表,其中的鍵值對(duì)是以元組的形式存在
items.sort(key=lambda x:x[1],reverse=True)
for i in range(10):
word,count=items[i] #items[i] 是個(gè)元組,元組可以帶括號(hào),可以不帶括號(hào);賦值
print("{:<10}{:>5}".format(word,count))
2)中文文本解析
溫馨提示:1.continue是結(jié)束當(dāng)次循環(huán),繼續(xù)執(zhí)行后續(xù)次數(shù)循環(huán)
<列表>.sort()函數(shù)是列表的排序方法,相關(guān)內(nèi)容有點(diǎn)多,后面我會(huì)另外放在一篇文章中
import jieba
fname=input("請(qǐng)輸入要打開的文件地址及文本名稱,以.txt結(jié)尾,路徑要使用/:")
fo=open(fname,encoding="utf-8")
txt=fo.read()
liebiao=jieba.lcut(txt) #分詞后形成的是列表形式
counts={}
for word in liebiao:
if len(word)==1:
continue
else:
counts[word] = counts.get(word, 0) + 1
items=list(counts.items())
items.sort(key=lambda x:x[1],reverse=True)
for i in range(15):
word,count=items[i]
print('{:<10}{:>5}'.format(word,count))
好啦,如果以后有新的發(fā)現(xiàn)會(huì)繼續(xù)補(bǔ)充~~
各位看到的小伙伴,如果覺得有用,可不可以點(diǎn)個(gè)贊,蟹蟹蟹蟹~你們的喜歡是我堅(jiān)持的動(dòng)力!!
總結(jié)
以上是生活随笔為你收集整理的jieba是python中一个重要的标准函数库_python——Jieba库整理(基础知识+实例)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java byte数组转string_J
- 下一篇: char添加一个字符_C语言动态接收多个