Nlp 如何将单词嵌入和词性嵌入结合起来构建分类器

Nlp 如何将单词嵌入和词性嵌入结合起来构建分类器,nlp,word2vec,word-embedding,pos,Nlp,Word2vec,Word Embedding,Pos,你知道POS就像NP,动词。如何将这些功能组合到word2vec 就像跟向量一样 keyword V1 V2 V3 V4 V5 V6 corruption 0.07397 0.290874 -0.170812 0.085428 'VERB' 'NP' people ................................................

你知道POS就像NP,动词。如何将这些功能组合到word2vec

就像跟向量一样

keyword    V1         V2          V3         V4            V5         V6   
corruption 0.07397  0.290874    -0.170812   0.085428     'VERB'    'NP' 
people      ..............................................................
budget      ...........................................................

如果要将POS标记作为特征添加到嵌入向量中,可以简单地表示单词向量。但是,我想,这样的技巧不应该起作用,因为单词向量的维数很高,而且单个添加的特征的影响很小

使用词性标记扩展词向量是一种很好的做法(例如,因为它可以处理多义词),但通常词性标记是以不同的方式添加的。首先,您应该使用POS标记对训练语料库进行注释,然后可以在此语料库上训练您的模型(存储库中的模型就是这样训练的)。因此,您应该获得如下内容:

keyword            V1       V2           V3         V4             
corruption_NOUN  0.07397  0.290874    -0.170812   0.085428    
people_NOUN      .........................................
budget_NOUN      .........................................

第一个简单的解决方案是将嵌入向量与表示POS标记的一个热编码向量连接起来

然而,如果你想做一些更有趣的事情,你应该找到一种适当的方法来加权这些不同的特性

例如,您可以使用XGboost:给定一组未规范化的特征(在您的情况下是嵌入+位置),根据特定任务为每个特征分配权重

作为替代方案,您可以使用神经网络将这些特征组合到一个独特的有意义的隐藏表示中

假设每个单词的上下文在任务中都很重要,您可以执行以下操作:

  • 计算单词嵌入(N维)
  • 计算位置(1个热编码向量)
  • 在pos上运行LSTM或类似的循环层
  • 对于每个单词,创建一个由单词嵌入和LSTM层相应输出连接而成的表示
  • 使用完全连接的图层创建一致的隐藏表示

请注意,使用重复层不是强制性的,您也可以尝试直接连接pos和嵌入,然后应用完全连接的层。

谢谢您的回答,您知道任何github回购笔记本吗?@Xiaoshi您可以使用spacy()获得pos标签,然后将它们添加到词典中的每个单词中