在使用jieba分詞時發現分詞速度比較慢,由於一直預設使用的paddle模式,好奇是不是該模式拖慢了執行速度,因此想著對比一下paddle模式相比預設模式的分詞和執行速度上的差異。
# 準備了100條語料
# 不使用paddle分詞,設定use_paddle=false
start = time.time(
)not_use_paddle = jieba.lcut(corpus[0]
,use_paddle=
false
)end = time.time(
)time_false = end-start
# 使用paddle分詞,設定use_paddle=true
start = time.time(
)use_paddle = jieba.lcut(content[0]
,use_paddle=
true
)end = time.time(
)time_true = end-start
time_false
out[
157]
:0.005010128021240234
time_true
out[
158]
:0.37805891036987305
time_true/time_false
out[
159]
:75.45893214047777
單條語句分詞,paddle模式耗時是不使用paddle模式的75倍。
再來對比一下分詞的效果。
# 不使用paddle模式分詞效果
# 使用paddle模式分詞效果
我們再來對比一下100條語句的執行時間消耗:
# 不使用paddle分詞,設定use_paddle=false
start = time.time(
)not_use_paddle =
[' '
.join(jieba.lcut(sentence,use_paddle=
false))
for sentence in corpus]
end = time.time(
)time_false = end-start
# paddle分詞,設定use_paddle=true
start = time.time(
)use_paddle =
[' '
.join(jieba.lcut(sentence,use_paddle=
true))
for sentence in corpus]
end = time.time(
)time_true = end-start
time_false
out[
163]
:0.29122042655944824
time_true
out[
164]
:25.265052556991577
time_true/time_false
out[
165]
:86.75577072487427
100條語句分詞使用paddle模式相比不使用paddle模式耗時更是達到了86倍。
總結:通過有限的語料比較,使不使用paddle模式其實分詞效果差異並不大,而paddle模式非常耗時,感覺價效比不高,因此在檔案非常大的場景下不太建議使用paddle模式進行分詞。
jieba 利用jieba分詞
目錄 三種分詞模式 新增自定義詞典進行分詞 jieba提供了三種分詞模式,分別是全模式,精確模式和搜尋引擎模式。全模式下會將所有可能的詞語都進行分詞,精確模式下會盡可能的將句子精確切開,搜尋引擎模式實在精確模式的基礎上,對長詞再進行劃分,提高分詞的召回率。使用cut和cut for search即可...
jieba分詞原理
關於jieba分詞的原理,在平時做文字方面的演算法時沒有仔細研究過,昨晚在網上看了一篇部落格,寫的很全面很詳細,其中有些深入的部分還並沒有完全看懂。jieba分詞系統介紹 涉及演算法 基於字首詞典實現詞圖掃瞄,生成句子中漢字所有可能成詞情況所構成的有向無環圖 dag 採用動態規劃查詢最大概率路徑,找...
Jieba分詞簡介
jieba分詞官網 jieba提供了三種分詞模式 精確模式,試圖將句子最精確地切開,適合文字分析 全模式,把句子中所有的可以成詞的詞語都掃瞄出來,速度非常快,但是不能解決歧義 搜尋引擎模式,在精確模式的基礎上,對長詞再次切分,提高召回率,適合用於搜尋引擎分詞。import jieba sent 用刀...