【发布时间】:2018-12-19 21:49:08
【问题描述】:
我有一个包含keywords 列的数据框:
keywords
election
countries
majestic
dollar
....
....
...
我还有自己的使用 gensim 预训练的 word2vec 模型,我可以使用 model['anyword'] 为每个单词获取 20 个维度向量。我的问题是
i) 我想将这 20 个维度向量分配为每个关键字对应的列名(V1 到 V20)。
ii)如果单词词汇表中不存在单词,那么我想将向量分配为对应于该单词的 [0,0,0,,,,,0] 数组,否则它将给出error:word not present in vocabulary。例如,如果单词majestic 不在词汇表中,那么df 应该喜欢
keyword V1 V2 V3 ............. V20
election 0.02 0.44 0.32.............0.12
countries 0.33 0.33 0.11............ 0.13
majestic 0 0 0 ............ 0
dollar 0.31 0.77 0.86............ 0.91
.......
.......
到目前为止我所做的:-
for i in df['keywords']:
vectors=model['i']
我得到了向量数组,但我不知道如何在df 中将其与列名称作为V1 V2 V3 V4....V20 以及如何将缺少的单词作为'0' 处理
【问题讨论】:
-
这是正确的方法吗?比如说,从 GloVe 或 word2vec 中获取嵌入,并使用它们来训练深度学习模型?这是表示那些嵌入数据框中的正确方法吗?
标签: python-3.x pandas gensim word2vec