美文网首页
Note - 训练中文词向量

Note - 训练中文词向量

作者: 汉江岳 | 来源:发表于2019-08-14 19:53 被阅读0次

    起因:

    想直接使用别人预训练好的中文词向量(比如:https://github.com/Embedding/Chinese-Word-Vectors),但下载下来之后,分析发现包含了大量数字、人名等“噪音词”(见下图),所以弃用。萌生自己训练中文词向量的想法。

    image.png

    闭环流程

    LM_frame.jpg

    算法

    算法是现成的经典算法

    word2vec

    参考: https://zhuanlan.zhihu.com/p/40016964
    gensim 把word2vec都封装好了, 直接调用接口就行。

    glove

    参考:http://www.linzehui.me/2018/08/05/%E7%A2%8E%E7%89%87%E7%9F%A5%E8%AF%86/%E5%A6%82%E4%BD%95%E8%AE%AD%E7%BB%83GloVe%E4%B8%AD%E6%96%87%E8%AF%8D%E5%90%91%E9%87%8F/

    elmo

    数据

    高质量的语料数据+良好的数据预处理 是保证后期学得高质量embedding表示的关键。
    wikipedia中文
    参考:1、https://github.com/mattzheng/ChineseWiki
    2、苏剑林 https://spaces.ac.cn/archives/4176
    清华大学提供sina_news分类数据集 74万篇新浪新闻 http://thuctc.thunlp.org/message

    存在如下问题:
    1、数据中的数字 1120万 数字是无穷多的,不可能为每个数字学一个表示,初步的想法是将所有数字替换成特殊符号<NUM>
    2、人名、地名、组织机构名:和数字同理,分别替换成<NAME> <PLACE> <ORG>
    但是也会有问题,比如 中国、USA等词需要学到一个表示
    总结:这是一个NER的问题,但需要做一个折衷,数字、人名

    补充预训练好的中文词向量资源

    腾讯AI: https://ai.tencent.com/ailab/nlp/embedding.html
    对应中文介绍: https://zhuanlan.zhihu.com/p/47133426

    Tips

    参考:https://www.cnblogs.com/DjangoBlog/p/9113090.html 总结的很详细
    自定义词典:由于百科数据有很多专属名词,很多比较长,如果直接分词,很大情况下会被切开,这不是我们想要的结果,比如:中国人民解放军,可能会被分成:中国 人民 解放军,jieba虽然有新词发现功能,为保证分词准确度,jieba的作者建议我们还是使用自定义词典。

    相关文章

      网友评论

          本文标题:Note - 训练中文词向量

          本文链接:https://www.haomeiwen.com/subject/wsgnjctx.html