摘要:下載數據方法使用官方的數據最新打包的中文文檔下載地址是。中文維基數據繁簡混雜大家都說存在這個問題,但的網站是將繁體中文和簡體中文分開處理的,所以一直覺得從數據庫到結構都應有方法將兩者區分開,暫罷,待有空研究其數據時再議。
照例,先講下環境,Mac OSX 10.11.2 ,Python 3.4.3。
下載數據方法1:使用官方dump的xml數據
最新打包的中文文檔下載地址是:https://dumps.wikimedia.org/zhwiki/latest/zhwiki-latest-pages-articles.xml.bz2 。
方法2:也是官方,結構化數據(json)
下載地址是:https://dumps.wikimedia.org/wikidatawiki/entities/ 。目前尚未測試使用此數據,不多作介紹。但數據模型和已有的工具都可以在wikidata的站點上找到。
解壓與轉存我使用方法1,下載后需要對該xml文件的壓縮包作處理,所幸gensim的WikiCorpus已經預置了部分處理。幾行關鍵的python代碼如下:
input_file = "zhwiki-latest-pages-articles.xml.bz2" wiki = WikiCorpus(input_file, lemmatize=False, dictionary={}) for text in wiki.get_texts(): str_line = bytes.join(b" ", text).decode() #以下可以存入文件或數據庫
更詳細的關于WikiCorpus的介紹可以看這里。
在上面的代碼中,補下自己的漏,python3里,str和bytes是兩個不同的東西,有點類似python2中的str和unicode。下面是str和bytes的相互轉換方法:
# str轉bytes data = "" #string data = "".encode() #bytes data = b"" #bytes # bytes轉str data = b"" #bytes data = b"".decode() #string data = str(b"") #string
除了用gensim,還有個哥們寫了一個wikiextractor工具來處理wiki的dump數據,若感興趣可拿來參考,詳見github地址。
根據我的數據,1.17G的原始數據處理所得的文本文件845M,246497篇文章(這個數字隨時間往后是越來越大)。
繁簡轉換這是個糟糕的話題,占這么大篇幅真得感嘆中華崛起之重要。中文維基數據繁簡混雜——大家都說存在這個問題,但wikipedia的網站是將繁體中文和簡體中文分開處理的,所以一直覺得從數據庫到dump結構都應有方法將兩者區分開,暫罷,待有空研究其數據時再議。關于繁簡轉換,來斯惟和52nlp的博文都用到了一個繁簡轉換工具——OpenCC,關于此,引官方介紹如下:
Open Chinese Convert(OpenCC)是一個中文簡繁轉換開源項目,提供高質量的簡繁轉換詞庫和可供調用的函數庫(libopencc)。還提供命令行簡繁轉換工具,人工校對工具,詞典生成程序,以及圖形用戶界面。
這里使用的是命令行工具。至于安裝方法,可以看Google Code上的項目頁面。如在Mac下,直接:
brew install opencc
將繁體轉為簡體的命令如下:
opencc -i wiki_zh.text -o wiki_zhs.text -c zht2zhs_config.json
那個json是什么鬼?OpenCC的配置文件,現在已支持json寫法,如下:
{ "name": "Traditional Chinese to Simplified Chinese", "segmentation": { "type": "mmseg", "dict": { "type": "ocd", "file": "TSPhrases.ocd" } }, "conversion_chain": [{ "dict": { "type": "group", "dicts": [{ "type": "ocd", "file": "TSPhrases.ocd" }, { "type": "ocd", "file": "TSCharacters.ocd" }] } }] }中文分詞
OK,這是個大話題,有很多選擇,網上有不少推薦結巴分詞,其實是挺不錯的。但這里使用哈工大的LTP,github地址,篇幅原因暫時不詳細介紹這個了,只講我認為的三點:
計算語言學的基本任務,解釋地比較透徹,無論是代碼還是文檔。
配套論文產量和質量都不錯。
良心的python封裝。
盡管,國內大學中不乏類似工作,清華、復旦等也做了不少。
LTP目前我使用release里的3.3.2,模型文件使用3.3.1,python封裝使用0.1.9。由于是Mac下使用源文件編譯,所以由于OSX編譯器類型變遷,pyltp 0.1.9的setup.py中一定要記得修改這行:
extra_compile_args += ["-std=c++11", "-Wno-c++11-narrowing","-mmacosx-version-min=10.8","-stdlib=libc++"]
其重點是-mmacosx-version-min這個參數。當然,根據issue記錄,25天前這個問題已修復且合并進mater分支。所以據拍腦袋估計,git源碼安裝也是可行:
$ git clone https://github.com/HIT-SCIR/pyltp $ git submodule init $ git submodule update $ python setup.py install
具體分詞的寫法就比較簡單了,例子如下:
# -*- coding: utf-8 -*- from pyltp import Segmentor segmentor = Segmentor() segmentor.load("/path/to/your/cws/model") words = segmentor.segment("這句句子要分詞") print "|".join(words) segmentor.release()
找一篇語料對比下分詞前后,分詞前:
巨蟹座 是一顆環繞巨蟹座 a運轉的系外行星 軌道周期為 地球日 它是距離其中央恒星第三近的行星 其質量接近于土星 該行星于 日被發現 發現
和大多數系外行星一樣 而之前 巨蟹座 該恒星仍然會出現視向速度位移 進一步的探測發現在距中央恒星 但是即使摒除了這兩顆行星的影響
中央恒星仍然存在周期為 地球日的擾動現象 由于該周期接近于巨蟹座 a的自轉周期 盡管如此 在同一份報告中 科學家宣布發現了巨蟹座 d和巨蟹座
對其中央恒星進行的長達 而且視向速度位移的幅度較大 無法為巨蟹座 a不大活躍的光球層活動所解釋 軌道和質量 在巨蟹座 行星系統中
迄今為止已經發現了 顆行星 顆行星中 巨蟹座 c的軌道屬于輕度偏心軌道 其遠拱點較之近拱點遠了 該行星的軌道周期要長于熱木星
但是其軌道與巨蟹座 模擬表明該行星與巨蟹座 的比值 由于視向速度法的局限性 如果此預測無誤 那么該行星的真實質量就為 倍木星質量 物理特性
由于科學家只能間接地探測該行星 所以至今還不知道其半徑 物質構成和表面溫度 該行星質量接近土星 所以它可能屬于類木行星 從而并不擁有固體表面
參考文獻 外部鏈接 extrasolar visions cancri
分詞后:
小結巨蟹座|是|一|顆|環繞|巨蟹座|a|運轉|的|系|外行星|軌道|周期|為|地球日|它|是|距離|其|中央|恒星|第三|近|的|行星|其|質量|接近|于|土星|該|行星|于|日|被|發現|發現|和|大多數|系外|行星|一樣|而|之前|巨蟹座|該|恒星|仍然|會|出現|視|向|速度|位移|進一步|的|探測|發現|在|距|中央|恒星|但是|即使|摒除|了|這|兩|顆|行星|的|影響|中央|恒星|仍然|存在|周期|為|地球日|的|擾動|現象|由于|該|周期|接近|于|巨蟹座|a|的|自轉|周期|盡管|如此|在|同一|份|報告|中|科學家|宣布|發現|了|巨蟹座|d|和|巨蟹座|對|其|中央|恒星|進行|的|長|達|而且|視|向|速度|位移|的|幅度|較|大|無法|為|巨蟹座|a|不|大|活躍|的|光球層|活動|所|解釋|軌道|和|質量|在|巨蟹座|行星|系統|中|迄今為止|已經|發現|了|顆|行星|顆|行星|中|巨蟹座|c|的|軌道|屬于|輕度|偏心|軌道|其|遠|拱點|較之|近|拱點|遠|了|該|行星|的|軌道|周期|要|長|于|熱|木星|但是|其|軌道|與|巨蟹座|模擬|表明|該行星|與|巨蟹座|的|比值|由于|視|向|速度|法|的|局限性|如果|此|預測|無誤|那么|該行星|的|真實|質量|就|為|倍|木星|質量|物理|特性|由于|科學家|只能|間接|地|探測|該行|星所|以至今|還|不|知道|其|半徑|物質|構成|和|表面|溫度|該行|星|質量|接近|土星|所以|它|可能|屬于|類|木行星|從而|并|不|擁有|固體|表面|參考|文獻|外部|鏈接|extrasolar|visions|cancri
這篇主要基于網絡上的資料,重走了一遍數據下載到中文分詞的技術點,并匯總了已知的工具鏈。上述結果對比維基的原網頁,明顯還存在不少問題,例如語料中的數字均丟失了,對于其中數量、年份等信息對于文本理解其實很重要。尚不確定是否是WikiCorpus造成的問題。
下一篇計劃嘗試用此語料做詞嵌入相關的部分實驗。
To be continued.
原文鏈接:http://qiancy.com/2016/05/08/wiki-text-analysis-prepare/
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/37907.html
摘要:年,和前端開發者與應用程序前端開發者之間產生了巨大的分歧。開發最常見的解決方案有手機和平板的原生應用程序桌面應用程序桌面應用程序原生技術最后,前端開發者可以從瀏覽器開發中學習到,編寫代碼不需要考慮瀏覽器引擎的限制。 前端開發者手冊2019 Cody Lindley 編著 原文地址 本手冊由Frontend Masters贊助,通過深入現代化的前端工程課程來提高你的技能。 下載:PDF ...
摘要:年,和前端開發者與應用程序前端開發者之間產生了巨大的分歧。開發最常見的解決方案有手機和平板的原生應用程序桌面應用程序桌面應用程序原生技術最后,前端開發者可以從瀏覽器開發中學習到,編寫代碼不需要考慮瀏覽器引擎的限制。 前端開發者手冊2019 Cody Lindley 編著 原文地址 本手冊由Frontend Masters贊助,通過深入現代化的前端工程課程來提高你的技能。 下載:PDF ...
摘要:年,和前端開發者與應用程序前端開發者之間產生了巨大的分歧。開發最常見的解決方案有手機和平板的原生應用程序桌面應用程序桌面應用程序原生技術最后,前端開發者可以從瀏覽器開發中學習到,編寫代碼不需要考慮瀏覽器引擎的限制。 前端開發者手冊2019 Cody Lindley 編著 原文地址 本手冊由Frontend Masters贊助,通過深入現代化的前端工程課程來提高你的技能。 下載:PDF ...
閱讀 3948·2021-09-24 10:24
閱讀 1386·2021-09-22 16:01
閱讀 2713·2021-09-06 15:02
閱讀 1014·2019-08-30 13:01
閱讀 1002·2019-08-30 10:52
閱讀 632·2019-08-29 16:36
閱讀 2232·2019-08-29 12:51
閱讀 2333·2019-08-28 18:29