日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

python结巴_python结巴(jieba)分词

發布時間:2023/12/10 python 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python结巴_python结巴(jieba)分词 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一、特點

1、支持三種分詞模式:

(1)精確模式:試圖將句子最精確的切開,適合文本分析。

(2)全模式:把句子中所有可以成詞的詞語都掃描出來,速度非常快,但是不能解決歧義。

(3)搜索引擎模式:在精確模式的基礎上,對長詞再次切分,提高召回率,適合用于搜索引擎分詞。

2、支持繁體分詞

3、支持自定義詞典

二、實現

結巴分詞的實現原理主要有一下三點:

(1)基于Trie樹結構實現高效的詞圖掃描,生成句子中漢字所有可能成詞情況所構成的有向無環圖(DAG)。

(2)采用了動態規劃查找最大概率路徑, 找出基于詞頻的最大切分組合。

(3)對于未登錄詞,采用了基于漢字成詞能力的HMM模型,使用了Viterbi算法。

三、應用

我們來演示一下結巴分詞的主要功能

1、分詞

1 #-*- coding:utf-8 -*-

2

3

4 import jieba

5

6

7

8 '''

9 cut方法有兩個參數

10 1)第一個參數是我們想分詞的字符串

11 2)第二個參數cut_all是用來控制是否采用全模式

12 '''

13

14 #全模式

15 word_list = jieba.cut("今天天氣真好。親愛的,我們去遠足吧!",cut_all=True)

16 print "全模式:","|".join(word_list)

17 #精確模式 , 默認就是精確模式

18 word_list = jieba.cut("今天天氣真好。親愛的,我們去遠足吧!",cut_all=False)

19 print "精確模式:","|".join(word_list)

20 #搜索引擎模式

21 word_list = jieba.cut_for_search("今天天氣真好。親愛的,我們去遠足吧!")

22 print "搜索引擎:","|".join(word_list)

2、添加自定義詞典

雖然jieba有新詞識別能力,但是自己添加新詞可以保證更高的正確率。

開發者可以根據自己的需要添加自定義詞典,以便包含jieba詞庫里沒有的詞。

例:小紅今天我們還去以前經常去的地方遠足嗎?要不咱們換個地方吧!園小園怎么樣?沒問題小豆芽

自定義詞典(cu.txt):

園小園 5

小豆芽 3 nr

一個詞占一行;每一行分三部分,一部分為詞語,另一部分為詞頻,最后為詞性(可省略),中間用空格隔開。

1 #-*- coding:utf-8 -*-

2 import jieba

3

4 jieba.load_userdict("./cu.txt")

5 word_list = jieba.cut("小紅今天我們還去以前經常去的地方遠足嗎?要不咱們換個地方吧!園小園怎么樣?沒問題小豆芽")

6 print "|".join(word_list)

3、關鍵詞提取

1)第一個參數(setence)為待提取的文本。

2)topK為返回幾個TF/IDF權重最大的關鍵詞,默認值為20,可以自己指定。

1 #-*- coding:utf-8 -*-

2 import jieba.analyse as al

3

4 content = open("./topk.txt","rb").read()

5 word_topk = al.extract_tags(content,topK=4)

6 print "|".join(word_topk)

4、詞性標注

標注句子分詞后每個詞的詞性,采用和ictclas兼容的標記法。

1 #-*- coding:utf-8 -*-

2 import jieba.posseg as pseg

3

4 words = pseg.cut("青島北京是不錯的地方")

5 for word in words:

6 print word.word,word.flag

運行結果:

青島 ns

北京 ns

是 v

不錯 a

的 uj

地方 n

5、并行分詞(只能在linux系統上運行)

將要進行分詞的文本按行分隔,把各行文本分配到多個python進程中去,然后歸并結果,從而使分詞速度提升。

基于python的multiprocessing模塊,目前不支持windows系統。

#-*- coding:utf-8 -*-

import jieba

#開啟并行分詞模式,參數為參與并行分詞的進程數

jieba.enable_parallel(2)

#關閉并行分詞

#jieba.disable_parallel()

content = open("./topk.txt","rb")

words = jieba.cut(content)

print "|".join(words)

6、模塊初始化機制的改變:lazy load (從0.28版本開始)

下載你所需要的詞典,然后覆蓋jieba/dict.txt或者用jieba.set_dictionary("")將其覆蓋。

1 #-*- coding:utf-8 -*-

2

3 import jieba

4 jieba.set_dictionary("./dict.txt")

5 content = open("./content.txt","rb").read()

6 words = jieba.cut(content)

7 print "|".join(words)

7、Tokenize:返回詞語在原文的起始位置

1)第一個參數為文本內容。

2)第二個參數mode可以不用默認模式,指定為“search”搜索引擎模式。

1 #-*- coding:utf-8 -*-

2 import jieba

3

4 result = jieba.tokenize(u'今天天氣真好。親愛的,我們去遠足吧!')

5 for token in result:

6 print "word %s\t\t start: %d \t\t end:%d" % (token[0],token[1],token[2])

創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎

總結

以上是生活随笔為你收集整理的python结巴_python结巴(jieba)分词的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。