
本文授權轉載自Python程式設計與實戰
禁止二次轉載
大家好,我是老表
閱讀文本大概需要 7 分鐘
上篇文章說了jieba分詞入門使用指南,大家都說北大有個分詞很厲害,于是,有了這篇文章分享,用完北大分詞,嗯,還是jieba香。
有做過搜尋的朋友知道,分詞的好壞直接影響我們最終的搜尋結果。
在分詞的領域,英文分詞要簡單很多,因為英文語句中都是通過一個個空格來劃分的,而我們的中文博大精深,同樣的詞在不同的語境中所代表的含義千差萬别,有時候必須聯系上下文才能知道它準确的表達意思,是以中文分詞一直是分詞領域的一大挑戰。
之前介紹過一款北大新開源的分詞器,根據作者的測試結果,這是一個準确率和速度都超過 jieba 等其他分詞的分詞器。
是以我就想來做個簡單的測試!于是我想用《三國演義》來做一個測試,提取其中著名人名出現的頻率。
首先搜尋下三國中的人物名單,
得到人名之後,做成一個人名的清單,之前設定成一個以人物名為鍵,值為 0 的字典。我隻取了曹魏和蜀漢的部分人名,代碼如下:
wei = ["許褚","荀攸","賈诩","郭嘉","程昱","戲志","劉晔","蔣濟","陳群","華歆","鐘繇","滿寵","董昭","王朗","崔琰","鄧艾","杜畿","田疇","王修","楊修","辛毗",
"楊阜",
"田豫","王粲","蒯越","張繼","于禁","棗祗","曹操","孟德","任峻","陳矯","郗慮","桓玠","丁儀","丁廙","司馬朗","韓暨","韋康","邴原","趙俨","婁圭","賈逵",
"陳琳",
"司馬懿","張遼","徐晃","夏侯惇","夏侯淵","龐德","張郃","李典","樂進","典韋","曹洪","曹仁","曹彰"]
wei_dict = dict.fromkeys(wei, 0)
shu_dict = dict.fromkeys(shu, 0)
接着去網上下載下傳一部三國的電子書,并讀取傳回
def read_txt():
with open("三國.txt", encoding="utf-8") as f:
content = f.read()
return content
pkuseg 測試結果
pkuseg 的用法很簡單,首先執行個體化 pkuseg 的對象,擷取人物名稱數量的思路是這樣的:循環我們分詞後的清單,如果檢測到有人物名稱字典中的人物名,就将該資料加 1,代碼如下:
def extract_pkuseg(content):
start = time.time()
seg = pkuseg.pkuseg()
text = seg.cut(content)
for name in text:
if name in wei:
wei_dict[name] = wei_dict.get(name) + 1
elif name in shu:
shu_dict[name] = shu_dict.get(name) + 1
print(f"pkuseg 用時:{time.time() - start}")
print(f"pkuseg 讀取人名總數:{sum(wei_dict.values()) + sum(shu_dict.values())}")
執行結果如下:
pkuseg 測試結果
jieba 測試結果
代碼基本差不多,隻是分詞器的用法有些不同。
def extract_jieba(content):
start = time.time()
seg_list = jieba.cut(content)
for name in seg_list:
if name in wei:
wei_dict[name] = wei_dict.get(name) + 1
elif name in shu:
shu_dict[name] = shu_dict.get(name) + 1
print(f"jieba 用時:{time.time() - start}")
print(f"jieba 讀取人名總數:{sum(wei_dict.values()) + sum(shu_dict.values())}")
執行結果如下:
jieba 測試結果
emmm 測試結果好像好像有點出乎意料,說好的 pkuseg 準确率更高呢???
pkuseg 用時将近 jieba 的三倍,而且提取效果也沒有 jieba 分詞好!于是我就去逼乎搜了一下 pkuseg ,結果是這樣的….
總體而言 pkuseg 吹的有點過了,并沒有作者說的那麼神奇,有點博眼球的成分,也許它更是一款更注重細分領域的分詞器!
大家好,我是老表
覺得本文不錯的話,轉發、留言、點贊,是對我最大的支援。

留言贈書
《Python網絡爬蟲開發》
從入門到精通
(1)沒有高深的理論,每一章都是以執行個體為主,讀者參考源碼,修改執行個體,就能得到自己想要的結果。目的是讓讀者看得懂、學得會、做得出。
(2)實訓與問答,10多章章節實訓與問答,目的是讓讀者看完之後,能做到舉一反三,學以緻用。
(3)内容系統,實戰性強。本書從零開始講解,然後逐漸深入相關爬蟲技能,進而達到從入門到精通的學習效果。
(4)配套資源豐富。案例源碼,Python 常見面試題精選(50 道),“微信高手技巧随身查”“QQ 高手技巧随身查”“手機辦公 10 招就夠”3 本電子書,“5 分鐘學會番茄工作法”視訊教程““10 招精通超級時間整理術”視訊教程。
每日留言
說說你讀完本文感受?
或者一句激勵自己的話?
(字數不少于15字)
怎麼加入刻意學習隊伍
點我,看文末彩蛋
留言有啥福利
點我就知道了
想進學習交流群
加微信:jjxksa888
備注:簡說Python
2小時快速掌握Python基礎知識要點。
完整Python基礎知識要點
Python小知識 | 這些技能你不會?(一) Python小知識 | 這些技能你不會?(二) Python小知識 | 這些技能你不會?(三) Python小知識 | 這些技能你不會?(四) 近期推薦閱讀: 【1】整理了我開始分享學習筆記到現在超過250篇優質文章,涵蓋資料分析、爬蟲、機器學習等方面,别再說不知道該從哪開始,實戰哪裡找了 【2】【終篇】Pandas中文官方文檔:基礎用法6(含1-5) 覺得不錯就點一下“在看”吧