使用word2vec嵌入句子

用户名

我想比较不同句子中提到的同一单词之间的差异,例如“旅行”。我想做的是:

  • 以提及“旅行”一词的句子为纯文本;
  • 在每个句子中,将travel替换为travel_sent_x。
  • 在这些句子上训练word2vec模型。
  • 计算travel_sent1,travel_sent2和其他重新标记的“ travel”提述之间的距离,因此每个句子的“ travel”都有自己的向量,用于比较。

我知道word2vec不仅需要几个句子来训练可靠的向量。官方页面推荐了包含数十亿个单词的数据集,但我的数据集中没有这么多的数字(我有数千个单词)。

我试图用以下几句话来测试模型:

    Sentences
    Hawaii makes a move to boost domestic travel and support local tourism
    Honolulu makes a move to boost travel and support local tourism
    Hawaii wants tourists to return so much it's offering to pay for half of their travel expenses

我构建向量的方法是:

from gensim.models import Word2Vec

vocab = df['Sentences']))
model = Word2Vec(sentences=vocab, size=100, window=10, min_count=3, workers=4, sg=0)
df['Sentences'].apply(model.vectorize)

但是,我不知道如何可视化结果以查看它们的相似性并获得一些有用的见解。任何帮助和建议都将受到欢迎。

更新:我将使用主成分分析算法来可视化3维空间中的嵌入。我知道每个单词的用法,但不知道句子的用法。

伊格里尼斯

如果您对比较句子感兴趣,则Word2Vec不是最佳选择。结果表明,使用它创建句子嵌入比使用专用的句子嵌入算法产生的效果差。如果数据集不大,则无法使用自己的数据创建(训练新的)嵌入空间。这迫使您对句子使用经过预训练的嵌入。幸运的是,如今有足够的这些了。我相信通用句子编码器(由Google提供)将最适合您的需求。

获得句子的矢量表示后,您可以采用2种方法:

  1. 创建成对比较矩阵并将其可视化为热图。当您对句子的接近程度有一些先验知识并且想要检查假设时,此表示很有用。您甚至可以在线尝试在此处输入图片说明
  2. 在向量表示上运行t-SNE。这将创建句子的2D投影,从而保留句子之间的相对距离。它提供的数据比PCA更好。比您可以轻松找到该句子的邻居:在此处输入图片说明

您可以了解更多从这个这个

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章