首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用Word2Vec时对上下文的需求

使用Word2Vec时对上下文的需求
EN

Stack Overflow用户
提问于 2017-09-16 05:26:40
回答 4查看 2.1K关注 0票数 1

列表中有大量字符串:列表内容的一个小示例是:

“机器学习”、“苹果”、“金融”、“人工智能”、“资金”

我希望将它们转换为向量,并将它们用于聚类目的。在找出这些字符串各自的向量时,是否考虑到了这些字符串的上下文?

如果我只有这个包含字符串的列表,我应该如何获得这些字符串的向量?

到目前为止我已经完成了这个代码..。

代码语言:javascript
复制
 from gensim.models import Word2Vec 
    vec = Word2Vec(mylist)

另外,我能得到一个关于Word2Vec的好的参考/教程吗?

EN

回答 4

Stack Overflow用户

发布于 2017-09-16 09:10:09

要使用word2vec查找单词向量,您需要一个句子列表,而不是字符串列表。

word2vec所做的是,它尝试遍历一个句子中的每个单词,对于每个单词,它试图在一个指定的窗口中预测它周围的单词(大部分在5左右),并调整与该单词相关联的向量,以使错误最小化。

显然,这意味着在寻找单词向量时,单词的顺序很重要。如果您只是提供一个字符串列表,没有有意义的顺序,您将不会得到一个很好的嵌入。

我不确定,但我认为在这种情况下,您会发现LDA更适合,因为您的字符串列表中没有固有的顺序。

票数 1
EN

Stack Overflow用户

发布于 2017-09-16 10:27:16

你的两个问题的答案:

  1. 在找出这些字符串各自的向量时,是否考虑到了这些字符串的上下文? 是的,word2vec每个单词创建一个向量(或字符串,因为它可以将多个单词表达式看作是唯一的单词,例如纽约);这个向量通过上下文来描述这个单词。它假设相似的词会以相似的上下文出现。上下文是由周围的单词组成的(在窗口中,带有一袋袋单词或跳格假设)。
  2. 如果我只有这个包含字符串的列表,我应该如何获得这些字符串的向量? 你需要更多的话。Word2Vec输出质量取决于培训集的大小。对您的数据进行Word2Vec培训是没有意义的。

@Beta提供的链接是一个很好的介绍/解释。

票数 1
EN

Stack Overflow用户

发布于 2017-09-16 07:39:53

Word2Vec是一种人工神经网络方法。Word2Vec实际上创建了嵌入,这反映了单词之间的关系。下面的链接将帮助您获得实现Word2Vec的完整代码。

一些好的链接是。对于第二个链接,试试他的github回购的细节代码。他只是在解释博客中的主要部分。主要文章是

您可以使用以下代码将单词转换为相应的数字值。

代码语言:javascript
复制
word_counts = Counter(words)
sorted_vocab = sorted(word_counts, key=word_counts.get, reverse=True)
int_to_vocab = {ii: word for ii, word in enumerate(sorted_vocab)}
vocab_to_int = {word: ii for ii, word in int_to_vocab.items()}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46250396

复制
相关文章

相似问题

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