word2vec 是基於非監督式學習,訓練集一定一定要越大越好,語料涵蓋的越全面,訓練出來的結果也會越漂亮,本篇所採用的是維基百科的備份,
取得資料
維基百科備份下載
我這邊下載的是 zhwiki-20171001-pages-meta-current.xml.bz2
解壓縮後zhwiki-20171001-pages-meta-current.xml
處理XML
我是使用Ruby來處理XMLGithub
使用 $ wp2txt --input-file zhwiki-20171001-pages-meta.xml
這樣會將wiki xml
分割成許多的txt
像是這樣
如果你不想要訓練太多,想測試一下,可以將他分割的一部分給機器訓練就好了比較不會花太久時間訓練他
將分割的txt合併請輸入$ cat zhwiki-20171001-pages-meta-* | grep -v '^\s*$' > zhwiki-corpus.txt
跑完後應該會像這樣
內容會是這樣
自然語言分詞
簡體要轉繁體 「不然数学」與「數學」會被 word2vec 當成兩個不同的詞
簡轉繁可以使用 OpenCC 這速度很快
分詞我這邊是使用HanLP
也可以使用 StanfordNlp
就看個人喜好與實作效率來決定使用哪一個就好了
分詞完資料像這樣
DL4J訓練 訓練完畢保存
這邊訓練的文件使用剛剛分割完的001其中一個Txt
目前使用CPU學習的話學習整個wiki 我的電腦要學習兩天
|
|
輸出結果
訓練讀取
|
|
輸出結果