基于python3训练中文wiki词向量、字向量、拼音向量。
已处理好的文件:
阿里云链接:https://www.aliyundrive.com/s/p35V1WmiBJS
gensim
jieba
pypinyin
opencc-python-reimplemented
过滤掉原始文本中的html符号,并存储为txt文件
python convert_to_txt.py zhwiki-latest-pages-articles.xml.bz2 wiki.zh.txt
将繁体字转换为简体字,首先要安装以下包:
pip install opencc-python-reimplemented
然后在命令行执行:
python -m opencc -c t2s -i wiki.zh.txt -o wiki.zh.simp.txt
使用jieba进行分词,如果没安装该模块,则需要:
pip install jieba
然后运行以下命令:
python segment_by_jieba.py
最后执行:
python train_word2vec.py
先运行:
python segment_char.py
然后运行:
python train_word2vec_char.py
你需要先安装以下包:
pip install pypinyin
你可以使用以下命令测试:
python test_pinyin.py
然后运行:
python segment_by_pinyin.py
最后运行:
python segment_by_pinyin.py
python test_word2vec.py
结果:
==============================
求孙悟空的相似词:
悟空 0.8302149176597595
牛魔王 0.8158780336380005
唐僧 0.7910414934158325
猪八戒 0.7805720567703247
沙悟净 0.7804343104362488
沙僧 0.7628636956214905
铁扇公主 0.7468816637992859
哪吒 0.7401531338691711
唐三藏 0.7286755442619324
齐天大圣 0.728164553642273
==============================
==============================
皇上+国王=皇后+?
臣子 0.5882754325866699
侍臣 0.5720297694206238
三世 0.5707935690879822
教皇 0.5681069493293762
下臣 0.5630483031272888
新王 0.561499297618866
陛下 0.5612003207206726
叔向 0.5568481683731079
圣上 0.5560325384140015
皇帝 0.5549168586730957
==============================
==============================
找出“太后 妃子 贵人 贵妃 才人”不匹配的词语
妃子
==============================
==============================
找出“书籍和书本"的相似度
0.6888837
找出"逛街和书本"的相似度
0.15222512
python test_word2vec_char.py
结果:
==============================
求丑的相似词:
卯 0.5284875631332397
酉 0.5041337013244629
巳 0.4905036985874176
绯 0.4649895429611206
戌 0.43988290429115295
娇 0.42739951610565186
壬 0.40833044052124023
新 0.38065898418426514
猪 0.37993788719177246
戊 0.3759212791919708
==============================
==============================
求龚的相似词:
冯 0.836471676826477
廖 0.8297753930091858
郝 0.8270807266235352
杨 0.8269028067588806
陈 0.8242413997650146
吴 0.8150491714477539
姚 0.8111284375190735
郭 0.807446300983429
潘 0.8055393099784851
谭 0.7994782328605652
==============================
==============================
求美的相似词:
韩 0.6687709093093872
际 0.6437357664108276
英 0.5671981573104858
家 0.521937906742096
泰 0.5166231393814087
欧 0.43756103515625
中 0.35331031680107117
艺 0.35141149163246155
樔 0.3467445373535156
民 0.32968077063560486
==============================
python test_word2vec_pinyin.py
结果:
==============================
求chou3的相似词:
mao3 0.7094196677207947
yao3 0.45190462470054626
nong4 0.4128718078136444
man2 0.407620906829834
shuo1 0.3986712098121643
niang2 0.39512279629707336
dai3 0.382381796836853
xia1 0.3749469220638275
mao1 0.37324249744415283
dan3 0.37195447087287903
==============================
==============================
求gong1的相似词:
umpc 0.34139925241470337
tie3 0.3174058496952057
meng1 0.3167680501937866
guan3 0.3146922290325165
mcfly 0.30235010385513306
ホテル 0.29963892698287964
esp 0.2994944155216217
chuang4 0.2983870208263397
vertex 0.29366573691368103
のあたる 0.29353320598602295
==============================
==============================
求mei3的相似词:
ying1 0.45298585295677185
han2 0.4176357686519623
jia1 0.4083157479763031
ou1 0.3890629708766937
トメ 0.3689119815826416
ベロキス 0.3615325093269348
bash 0.34474748373031616
かず 0.3278074264526367
からみた 0.3273840844631195
あゆ 0.32595932483673096
==============================
你可以尝试以下:
- 在得到词向量训练语料的时候,可以使用jieba分词中加载停止词的用法,过滤掉停用词。
- 得到字训练语料的时候,可以过滤掉英文以及其它的一些非中文字符或者字符串。
- 得到拼音语料的时候,也可以去除掉英文及其它的一些非拼音的字符或字符串。
https://github.com/Embedding/Chinese-Word-Vectors:
获取大量中文预训练向量
https://github.com/AimeeLee77/wiki_zh_word2vec: 本项目基于该项目进行的修改,不同之处:
(1)修改支持为python3;
(2)修改繁体转简体使用的包,该项目里面的包不可用;
(3)修改新版gensim加载词向量的方式;
(4)增加字向量和拼音向量。