项目作者: liuhuanyong

项目描述 :
Chinese Embedding collection incling token ,postag ,pinyin,dependency,word embedding.中文自然语言处理向量合集,包括字向量,拼音向量,词向量,词性向量,依存关系向量.共5种类型的向量
高级语言: Python
项目地址: git://github.com/liuhuanyong/ChineseEmbedding.git
创建时间: 2018-11-01T11:57:27Z
项目社区:https://github.com/liuhuanyong/ChineseEmbedding

开源协议:

下载


ChineseEmbedding

Chinese Embedding collection incling token ,postag ,pinyin,dependency,word embedding.中文自然语言处理向量合集,包括字向量,拼音向量,词向量,词性向量,依存关系向量.共5种类型的向量.

项目简介

目前不同于one-hot表示的稠密向量在常见的NLP任务中运用的越来越广,而目前开源的向量资源还比较单一,只有中文和其他语言的词向量.本项目想弥补这一缺陷.

本项目认为

1,NLP中的各种语言单元形态都可以进行向量表示.
2,稠密低维的向量较one-hot这种sparse向量更具备语义信息.
3,中文信息处理中可以进行词向量表示的语言单位包括:
1) 字符(单个汉字)
2) 词语(词或词组)
3) 汉语拼音
4) 汉语词性
5) 汉语词语之间的依存关系

本项目要完成的任务

运用词向量建模方法,分别完成以上5种形态的词向量训练, 并检验效果.

训练语料

本项目将使用中文维基百科(zhiwiki)作为训练语料来源.

训练方法

1) 基于skigram的方法
对字向量,拼音向量,词向量,词性向量采用此类方法,,分别设定词向量的维度及其他超参数
2) 基于上下文共现与PCA降维的方法
对依存向量采用此类方法

测试方法

本测试较为简单,直接使用语义最近的语言单元作为检验

代码目录

train_vector.py: 向量训练脚本
test_vector.py: 向量测试脚本

结果展示

向量名称 向量含义 词数 维度 例子
de_vec_10 依存关系向量 13 10 SBV, ATT
pinyin_vec_300 汉语拼音向量 146242 300 ni, hao
postag_vec_30 汉语词性向量 59 300 n,v,a,d
token_vec_300 汉语字向量 20029 300 刘,焕,勇
word_vec_300 汉语词向量 673266 300 刘焕勇

向量测试

  1. ***********************字符向量************************
  2. token:刘
  3. ('李', 0.7306396961212158),('陈', 0.7201231122016907)
  4. ('赵', 0.6974461674690247),('杨', 0.6972213983535767)
  5. ('吴', 0.6851627230644226),('徐', 0.6516467332839966)
  6. ('郭', 0.6499480605125427),('蔡', 0.6175302267074585)
  7. ('郑', 0.6092196106910706),('孙', 0.5950524210929871)
  8. token:丑
  9. ('卯', 0.6074919700622559),('酉', 0.5910211801528931)
  10. ('巳', 0.5581363439559937),('戌', 0.43932047486305237)
  11. ('戊', 0.41449615359306335),('壬', 0.40456631779670715)
  12. ('謤', 0.367109090089798),('绯', 0.3643313944339752),
  13. ('寅', 0.36351141333580017),('旽', 0.3549465537071228)
  14. ***********************依存向量************************
  15. dependency rel:ATT
  16. ('COO', 0.14239487051963806),('ADV', -0.16987691819667816)
  17. ('RAD', -0.2357601821422577),('HED', -0.2401314228773117)
  18. ('SBV', -0.25625932216644287),('WP', -0.27165737748146057)
  19. ('LAD', -0.2902592420578003),('POB', -0.2990782558917999)
  20. ('VOB', -0.37553706765174866),('IOB', -0.6669262647628784)
  21. dependency rel:POB
  22. ('IOB', 0.16698899865150452),('DBL', 0.16678886115550995)
  23. ('FOB', 0.1657436639070511),('CMP', 0.14784857630729675)
  24. ('VOB', 0.1461176574230194),('SBV', 0.08011472970247269)
  25. ('LAD', -0.022307466715574265),('WP', -0.022942926734685898)
  26. ('HED', -0.037264980375766754),('RAD', -0.042251598089933395)
  27. ***********************拼音向量************************
  28. pinyin:wo
  29. ('shei', 0.6129732131958008)('ta', 0.6081706285476685)
  30. ('nin', 0.5819231867790222),('!', 0.5435523986816406)
  31. ('……', 0.48428624868392944),('ai', 0.47832390666007996)
  32. ('o', 0.4761071801185608),('。』', 0.4598163366317749)
  33. ('...', 0.45207729935646057),('ni', 0.44975683093070984)
  34. pinyin:guo
  35. ('dang', 0.3908974528312683),('yuan', 0.378823846578598)
  36. ('zu', 0.35387369990348816),('hua', 0.3405681848526001)
  37. ('zheng', 0.3355437219142914),('yi', 0.3333034813404083)
  38. ('ren', 0.3194104731082916),('jun', 0.3187354505062103)
  39. ('hui', 0.31342023611068726),('xin', 0.3096797466278076)
  40. ***********************词性向量************************
  41. word postag:a
  42. ('d', 0.7203904986381531),('c', 0.6124969720840454)
  43. ('v', 0.4963228106498718),('an', 0.4531499147415161)
  44. ('uz', 0.4459834396839142),('ud', 0.42059916257858276)
  45. ('r', 0.4090540111064911),('uj', 0.4061364233493805)
  46. ('i', 0.38707998394966125),('l', 0.3551557660102844)
  47. word postag:n
  48. ('b', 0.7030695676803589),('vn', 0.490166038274765)
  49. ('p', 0.4858315885066986),('v', 0.4499088227748871)
  50. ('nt', 0.44155171513557434),('f', 0.26609259843826294)
  51. ('s', 0.2639649212360382),('l', 0.24365971982479095)
  52. ('ns', 0.2278469204902649),('m', 0.202927365899086)
  53. ***********************词向量************************
  54. word:爱情
  55. ('爱恋', 0.6931096315383911),('真爱', 0.6897798776626587)
  56. ('婚姻', 0.6540514826774597),('浪漫爱情', 0.6535360813140869)
  57. ('情感', 0.6501022577285767),('感情', 0.6403399705886841)
  58. ('纯爱', 0.6394841074943542),('爱情故事', 0.6282097101211548)
  59. ('校园爱情', 0.6078493595123291),('情爱', 0.5976818799972534)
  60. word:创新
  61. ('技术创新', 0.7648976445198059),('不断创新', 0.7172579765319824)
  62. ('创新型', 0.6573833227157593),('创新能力', 0.6533682942390442)
  63. ('创新性', 0.6160774827003479),('革新', 0.6159394383430481)
  64. ('人才培养', 0.6093565821647644),('开拓创新', 0.6015594601631165)
  65. ('探索', 0.5987343788146973),('技术革新', 0.5949685573577881)

总结

1,本项目完成了中文五种语言单位的向量训练.
2,从以上可以看出,词和字向量的效果看起来还不错.
3,依存向量,依存向量中可以看出,ATT作为定中关系,在依存关系中属于定中结构,COO(联合),ADV(状中)的相似度要比主谓SBV,动宾VOB的相似度要高.另外,作为介宾的POB,相似的有IOB,DBL,FOB,这些关系均与宾语成分相关.
4,拼音向量,从wo,guo的拼音相似拼音来看,我们可以看到,这种相似的拼音更像是一种搭配,很有意思.(词性参照jieba分词词性对照表)
5,词性向量,从a,n的相似词性来看,也似乎更像是一种搭配现象,或许有更好的解释..
4,总之,向量性能的好坏,需要在实际的NLP任务中运用检验,这个是后续需要进行的工作.

contact

如有自然语言处理、知识图谱、事理图谱、社会计算、语言资源建设等问题或合作,请联系我:
邮箱:lhy_in_blcu@126.com
csdn:https://blog.csdn.net/lhy2014
我的自然语言处理项目: https://liuhuanyong.github.io/
刘焕勇,中国科学院软件研究所