分類
蟒蛇 大數據

獲取 中文 維基百科語料

最近在做輸入法的詞庫,實現新的整句輸入模型,(回頭我會把之前的基於詞的整句輸入模型講講),新的整句輸入模型是基於 HMM (也就是隱馬爾可夫模型)來做的,當然了,由於我個人設備資金等有限,只做了二階矩陣。不過即使如此,模型還是需要訓練的。

當然,不是說用小說名著來訓練就不好,只不過很難找到各行各業的相關小說,畢竟,它們覆蓋的面積太單一了,這其實並不是高質量的語料庫。說起高質量,那自然是非維基百科莫屬,現在,我們就來獲取維基百科的所有中文資料,並把它們導出為語料庫,用以給模型訓練。

下載數據

不用寫爬蟲來爬了,維基百科是開放的,所以他們自己提供了打包下載的鏈接,真的是很貼心。下載地址是:HTTPS://dumps.wikimedia.org/zhwiki/latest/zhwiki-latest-pages-articles.xml.bz2 。

這是官方定期 dump 出來的 xml 格式數據,下載的話基本是 1GB 左右,中文的內容確實太少啊。如果你解壓縮,那麼是一個 6GB 多的 xml 文件,不過別去傻乎乎地解壓縮,維基百科自己給你提供了方便的工具來導出內容。

數據導出

這裡我們使用 蟒蛇 來執行導出,首先下載維基百科提供的工具 GENSIM

安裝成功後,大概這樣來寫蟒蛇腳本

⚠️這裡註意代碼僅適用於 Python 3

UserWarning: 模式 圖書館 安裝, 詞形還原 韓元ŧ 可用的. 對於這個警告,忽略即可,我們並不使用它。

在我 2015 年款的中配13寸rmbp上跑了大概十來分鐘就好了,很慢,要耐心等待一段時間,大概半個小時左右,導出的數據是 950中號 1.09G 文本,每篇文章一行。

直接導出的維基百科中文文檔
直接導出的維基百科中文文檔

文本整理

好吧,直接導出的文本太大已經難以用普通的文本編輯器打開了,但顯然,我們所謂的中文包含了簡體繁體……所以還是應該處理一下的,這裡我是將繁體轉換為簡體,當然反過來也行,我們使用 OpenCC 來完成這個工作。

安裝 OpenCC

當然了,我是 macOS 平台,直接使用命令一鍵安裝: 釀造 安裝 opencc

安裝好後,還需要給它寫一個配置文件,就寫在你的語料庫同目錄下即可:

將其保存為 zht2zhs_config.JSON 備用。

轉換

接下來在當前目錄下執行命令

這下就OK了。

轉換為簡體內容
轉換為簡體內容

結論

這樣一來,我們就得到了一個內容為簡體,沒有標點符號和數字的中文維基百科語料庫,把它扔到訓練機器中讀取吧~

延伸閱讀

中文維基百科文本數據分析之一(數據獲取與預處理)

中英文維基百科語料上的Word2Vec實驗

本文由 落格博客 原創撰寫:落格博客 » 獲取 中文 維基百科語料

轉載請保留出處和原文鏈接:https://www.logcg.com/archives/2240.html

通過 落格博客

如非聲明,本人所著文章均為原創手打,轉載請註明本頁面鏈接和我的名字。

6 在回答“獲取 中文 維基百科語料”

您好
我嘗試了您的程式
可是卻在第6行:
str_line = bytes.join(b’ ‘, text).decode()
發生了下列的錯誤
sequence item 0: expected a bytes-like object, str found

貌似是形態問題
上網找過相關的解答
但是稍做更改還是報出一樣的錯誤
請問該如何解決?

你好,我已經更正了代碼,他們api行為變更了,現在直接吧內容處理成文本了,這樣更方便,代價就是處理速度更慢了……
你現在應該能按照文中的代碼導出了。

發表評論

您的電子郵件地址不會被公開. 必填字段標 *