使用python進行漢語分詞
目前我常用的分詞有結巴分詞、NLPIR分詞等等
最近是在使用結巴分詞,稍微做一下推薦,還是蠻好用的。
一、結巴分詞簡介
利用結巴分詞進行中文分詞,基本實現原理有三:
基於Trie樹結構實現高效的詞圖掃描,生成句子中漢字所有可能成詞情況所構成的有向無環圖(DAG)
採用了動態規劃查找最大機率路徑, 找出基於詞頻的最大切分組合
對於未登錄詞,採用了基於漢字成詞能力的HMM模型,使用了Viterbi演算法
二、安裝及使用(Linux)
1.下載工具包,解壓縮後進入目錄下,運行:python setup.py install
Hint:a.一個良好的習慣是,對於下載下來的軟體,先看readme ,再進行操作。 (沒有閱讀readme,直接嘗試+百度,會走很多彎路);
b.當時運行安裝命令時,出現錯誤:no permission! (有些人可能會遇見這種問題,這是因為權限不夠的。執行:sudo !! 其中「!!」表示上一條指令,這裡指的就是上面的安裝指令),使用sudo後便可正常運作。
2.在使用結巴做分詞的時候,一定會用的函數是:jieba.cut(arg1,arg2);這是用於分詞的函數,我們只需要了解以下三點,便可使用
a.cut方法接受兩個輸入參數:第一個參數(arg1)為需要進行分詞的字串,arg2參數用來控制分詞模式。
分詞模式分為兩類:預設模式,試圖將句子最精確地切開,適合文字分析;全模式,把句子中所有的可以成詞的詞語都掃描出來,適合搜尋引擎
b.待分詞的字串可以是gbk字串、utf-8字串或unicode
使用Python的人要注意編碼問題,Python是基於ASCII碼來處理字元的,當出現不屬於ASCII的字元時(例如在程式碼中使用漢字),會出現錯誤訊息:“ASCII codec can't encode character”,解決方案是在文件頂部加入語句: #! -*- coding:utf-8 -*- 來告訴Python的編譯器:“我這個檔案是用utf-8進行編碼的,你要進行解碼的時候,請用utf-8」。 (這裡記住,這個指令一定要加在檔案的最頂部,如果不在最頂部,編碼問題就依然存在,無法解決)關於編碼的轉換,可以參考部落格文章(ps:個人理解「import sys reload( sys) sys.setdefaultencoding('utf-8')」這幾句與「#! -*- coding:utf-8 -*- 」等價)
c.jieba.cut的generator,可以使用for循環來獲得分詞後得到的每一個詞語(unicode),也可以用list(jieba.cut(...))轉化為list
3.以下舉例jieba中提供的一個使用方法作為說明:
#! -*- coding:utf-8 -*- import jieba seg_list = jieba.cut("我来到北京清华大学", cut_all = True) print "Full Mode:", ' '.join(seg_list) seg_list = jieba.cut("我来到北京清华大学") print "Default Mode:", ' '.join(seg_list)
輸出結果為:
Full Mode: 我/ 来/ 来到/ 到/ 北/ 北京/ 京/ 清/ 清华/ 清华大学/ 华/ 华大/ 大/ 大学/ 学 Default Mode: 我/ 来到/ 北京/ 清华大学
三、結巴分義詞的其他功能在所有檔案txt,你可以不斷的完善dict.txt中的內容。
2、關鍵字抽取
透過計算分詞後的關鍵字的TF/IDF權重,來抽取重點關鍵字。

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

Linux終端中查看Python版本時遇到權限問題的解決方法當你在Linux終端中嘗試查看Python的版本時,輸入python...

使用FiddlerEverywhere進行中間人讀取時如何避免被檢測到當你使用FiddlerEverywhere...

在使用Python的pandas庫時,如何在兩個結構不同的DataFrame之間進行整列複製是一個常見的問題。假設我們有兩個Dat...

Uvicorn是如何持續監聽HTTP請求的? Uvicorn是一個基於ASGI的輕量級Web服務器,其核心功能之一便是監聽HTTP請求並進�...

如何在10小時內教計算機小白編程基礎?如果你只有10個小時來教計算機小白一些編程知識,你會選擇教些什麼�...

攻克Investing.com的反爬蟲策略許多人嘗試爬取Investing.com(https://cn.investing.com/news/latest-news)的新聞數據時,常常�...
