【问题标题】:Using word2vec on phrases在短语上使用 word2vec
【发布时间】:2017-08-14 15:53:13
【问题描述】:

我有一个文本文件,每行都有短语。如果我在这个文件上运行 word2vec,它会通过将文件标记为单词来给我一个数字向量。像这样,

the -0.464252 0.177642 -1.212928 0.737752 0.990782 1.530809 1.053639 
0.182065 0.753926 0.082467  
of -0.281145 0.060403 -0.877230 0.566957 0.748220 1.108621 0.711598 
0.135636 0.489113 0.059783  
to -0.352605 0.101068 -0.995506 0.600547 0.809564 1.360837 0.905638 
0.114751 0.596093 0.067007 

相反,我希望它假设每一行都是一个单词,并为每一行输出一个向量。像这样的,

Suspension of sitting -0.244289 0.111375 -0.722939 0.366711 0.590016 0.904601 0.622145 0.098230 0.431038 0.008134

这是我正在使用的包。 'https://github.com/danielfrg/word2vec'

我该如何做到这一点?

【问题讨论】:

  • 您的代码使用什么包?您能否提供一个最低限度的工作示例?

标签: python machine-learning nlp text-mining word2vec


【解决方案1】:

将行中的空格替换为下划线: cat corpus.txt | tr " " "_" > corpus_underscored.txt

现在,将为整个短语创建嵌入,例如: Suspension_of_sitting SOMENUM SOMENUM SOMENUM ...

请注意,我不确定您的嵌入应该是什么。 word2vec 现在将简单地将每个短语嵌入到每个短语之前和之后的短语窗口中(就像之前的单词一样)。 因此,如果您的目标短语之前和之后的短语相对于该目标短语没有意义,那么您的数字也将毫无意义。

【讨论】:

  • 我也开始按照您的建议做同样的事情!还没有看到结果:)
【解决方案2】:

拉玛!

你不能使用 word2vec,但可以使用 doc2vec

或者您可以接收短语中所有词向量的摘要统计信息:例如向量各分量的均值、向量各分量的中位数、最小值、最大值等

在论文中描述了使用这种技术https://arxiv.org/abs/1607.01759

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多