由于课题任务需要一个繁体中文的word2vec, 折腾经过记录在此。希望以后少掉几个坑。
训练好的embedding放在网盘中, 密码:2um0
后来又按照这个方法训练了简体中文维度分别为50、100、200、300的embedding,一并放出来网盘链接 密码:751d
原文发布于个人博客(好望角),并在博客持续更新。
get wiki
最新的wiki datas下载地址,目前有1.6G大小。
里面的内容以XML格式保存。节点信息如下:
<page>
<title></title>
<id></id>
<timestamp></timestamp>
<username></username>
<comment></comment>
<text xml:space="preserve"></text>
</page>
初步处理
直接解压真的太蠢了。
为了节省时间,免去自己写代码处理Wiki的烦恼,Wikipedia Extractor先初步处理。(服务器非root用户,安装命令加上--user
)
git clone https://github.com/attardi/wikiextractor.git wikiextractor
cd wikiextractor
python setup.py install --user
python WikiExtractor.py -b 1024M -o extracted zhwiki-latest-pages-articles.xml.bz2
执行过程如下,可以看到一共处理了1012693篇文章,输出如下所示:
INFO: 6205533 手語新聞
INFO: 6205536 班傑明·古根海姆
INFO: 6205549 同意
INFO: 6205556 2018年荷蘭網路監控法公民投票
INFO: 6205594 李儒新
INFO: 6205610 深圳信息职业技术学院
INFO: 6205626 停下來等著你 (2018年電視劇)
INFO: 6205642 簡單矩陣的快速演算法設計
INFO: 6205644 斯義桂
INFO: 6205646 焦耳效应
INFO: 6205648 1925年世界大賽
INFO: 6205653 True (方力申專輯)
INFO: 6205657 华睿2号
INFO: 6205664 河內郡 (大阪府)
INFO: 6205691 京都寺町三条商店街的福爾摩斯
INFO: 6205675 莫莉·比什死亡事件
INFO: 6205703 都筑郡
INFO: 6205701 皇座法庭所屬分庭庭長
INFO: 6205709 冬瓜餅
INFO: 6205710 吸血鬼莫比亞斯
INFO: 6205712 淘綾郡
INFO: 6205714 明石香織
INFO: Finished 71-process extraction of 1012693 articles in 1114.1s (909.0 art/s)
通过以上抽取后得到两个文件wiki_00
和wiki_01
。里面的格式类似下面
<doc id="5323477" url="https://zh.wikipedia.org/wiki?curid=5323477" title="結構與能動性">
文章内容
</doc>
在上面的基础上,我们在去掉一些不需要的特殊符号。
import re
import sys
import codecs
def filte(input_file):
p5 = re.compile('<doc (.*)>')
p6 = re.compile('</doc>')
outfile = codecs.open('std_' + input_file, 'w', 'utf-8')
with codecs.open(input_file, 'r', 'utf-8') as myfile:
for line in myfile:
line = p5.sub('', line)
line = p6.sub('', line)
outfile.write(line)
outfile.close()
if __name__ == '__main__':
filte(input_file)
input_file = sys.argv[1]
繁体转简体
首先安装opencc-python
网上