首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >带中文的Word2Vec

带中文的Word2Vec
EN

Stack Overflow用户
提问于 2016-05-23 15:40:14
回答 4查看 3.6K关注 0票数 2

我一直在学习Word2Vec(Deeplearning4j),但我找不到任何支持中文的东西。我从各种渠道了解到,通过使用一些插件,它也可以在中文上工作。

所以请告诉我任何中文插件,以及它应该如何在word2vec中实现。

以及Deeplearning4j Word2Vec是否适合英文和中文(两者)的支持。如果没有,请建议一些更好的选择与它的链接。

语言:爪哇

EN

回答 4

Stack Overflow用户

发布于 2016-10-08 16:58:33

我不懂java,但我可以向你展示如何使用python来做这件事:

代码语言:javascript
复制
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库相同的工作,然后只需将正确格式的数据放入模型并对其进行训练。

票数 1
EN

Stack Overflow用户

发布于 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上的。在我的论文中:

Aicyber’s System for IALP 2016 Shared Task: Character-enhanced Word Vectors and Boosted Neural Networks

对于中文,我将最小字符n-gram设置为1。

3) Gensim (python)

@Howardyan向您展示了使用gensim的代码,包括tokenizer。请注意,gensim的默认训练方法是CBOW。Skip-gram可能会给你更好的结果,这取决于你的数据。下面是关于gensim and Fasttext.的比较

PS: 1) 2)都支持训练原始word2vec。

票数 1
EN

Stack Overflow用户

发布于 2020-11-02 16:48:32

正如在其他评论中提到的,word2vec是一组具有预先训练好的英语单词向量的单词。同样,您可以找到其他包含中文词向量的数据集。我正在使用python,但我认为编程语言并不重要,因为您正在寻找的是数据集,而不是模型或程序。

以下是由腾讯AI实验室训练的包含800多万个中文单词和短语的中文单词嵌入数据集:https://ai.tencent.com/ailab/nlp/en/embedding.html

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37385239

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档