NLP - 开放词汇词嵌入

时间:2015-09-17 22:13:01

标签: python nlp neural-network word2vec

如果我没有预先定义的单词词典,如何将单词转换为向量(Word嵌入)?大多数单词嵌入实现(如Word2vecGloVe)都有固定的单词词典。神经网络的输入是单热编码的,隐藏的图层大小也取决于词汇大小,这使得稍后添加新单词而不再重新训练所有向量是不可能的。我需要一个为任意字输入输出固定维度向量的网络。但是如何输入“'进网络?一个热门编码是不可能的,因为我没有固定的单词词典。

将单词转换为trigram向量或双字母向量是否有效? Trigram向量已被用于句子嵌入(Deep Sentence Embedding Using Long Short-Term Memory Networks),但我怀疑它是否也能用于字嵌入,因为网络体系结构都有变化(Word嵌入使用浅网络而句子嵌入使用RNNs )和辅助任务。请帮忙。

注意:

通过"转换为trigram vector"我的意思是:

  • 让输入字为" CAT"在开头和结尾添加#s: "##CAT"
  • 列出所有可能的三元组:#CA,CAT,AT#
  • 每个三元组被转换为一个维度为NxNxN的热编码向量 其中N是我的字符集大小。例如,E("#CA")= {0,0,0,0,0,...,0, 1 ,0,0,0}
  • 添加了单词的每个三元组的一个热编码向量 得到"三元组向量"这个词。 例如,trigram_vec(" CAT")= {0,0,0,0,... 0, 1 ,0,0,... 0,0, 1 下,0,... 0,0,的 1 下,0,0,0,0}

提前感谢您的帮助!

0 个答案:

没有答案