我一直在学习Word2Vec(Deeplearning4j),但我找不到任何支持中文的东西。我从各种渠道了解到,通过使用一些插件,它也可以在中文上工作。
所以请告诉我任何中文插件,以及它应该如何在word2vec中实现。
以及Deeplearning4j Word2Vec是否适合英文和中文(两者)的支持。如果没有,请建议一些更好的选择与它的链接。
语言:爪哇
发布于 2016-10-08 16:58:33
我不懂java,但我可以向你展示如何使用python来做这件事:
import jieba
import gensim
q = [u'我到河北省来', u'好棒好棒哒']
z = [list(jieba.cut(i)) for i in q]
model = gensim.models.Word2Vec(z, min_count=1)
model.similar_by_word(u'我')结果并不好,因为训练数据非常非常少。如果增加更多的数据,结果会更好。对于您的情况,您可以使用Java编写的Tokenizer,并执行与jieba库相同的工作,然后只需将正确格式的数据放入模型并对其进行训练。
发布于 2016-10-21 15:15:42
word2vec只是一个单词向量的数据集,在大多数情况下,它是一个文本文件,每一行都包含一个“单词”及其由空格(或制表符)分隔的单词向量。
您可以用任何编程语言训练这个word2vec。加载一个文本文件对你来说应该不是问题。
在中文方面,我建议使用3个工具:
1) the Character-enhanced Word Embedding (c++)
陈新雄,徐雷,刘志远,孙茂松,欢博乱。字符和单词嵌入的联合学习。第25届国际人工智能联合会议(IJCAI 2015)。
请注意,CWE的输出用制表符(\t)分隔
2) Fast text by Facebook (c++)
Fasttext可以在中文上训练,它是建立在字符n-gram上的。在我的论文中:
对于中文,我将最小字符n-gram设置为1。
3) Gensim (python)
@Howardyan向您展示了使用gensim的代码,包括tokenizer。请注意,gensim的默认训练方法是CBOW。Skip-gram可能会给你更好的结果,这取决于你的数据。下面是关于gensim and Fasttext.的比较
PS: 1) 2)都支持训练原始word2vec。
发布于 2020-11-02 16:48:32
正如在其他评论中提到的,word2vec是一组具有预先训练好的英语单词向量的单词。同样,您可以找到其他包含中文词向量的数据集。我正在使用python,但我认为编程语言并不重要,因为您正在寻找的是数据集,而不是模型或程序。
以下是由腾讯AI实验室训练的包含800多万个中文单词和短语的中文单词嵌入数据集:https://ai.tencent.com/ailab/nlp/en/embedding.html
https://stackoverflow.com/questions/37385239
复制相似问题