首页 文章

使用已学习的单词嵌入从字符学习单词嵌入

提问于
浏览
1

我有一个文本语料库,我想找到从字符开始的单词嵌入 . 所以我有一系列字符作为输入,我想将它投影到一个多维空间 .

作为一个初始化,我想适合已经学过的单词嵌入(例如,谷歌嵌入) .

我有些疑惑:

  • 我是否需要为输入序列中的每个输入字符使用字符嵌入向量?如果我只使用ascii或utf-8编码会有问题吗?

  • 尽管输入矢量定义是什么(嵌入vec,ascii,..),选择合适的模型真的很困惑,有几个选项,但我不确定哪一个是更好的选择:seq2seq,auto-encoder,lstm,multi -regressor lstm?

  • 你可以通过keras或tensorflow给我任何示例代码吗?

1 回答

  • 1

    我回答每个问题:

    • 如果你想利用字符相似性(也就是语音相似性的远亲),你需要一个嵌入层 . 编码是符号输入,而嵌入是连续输入 . 有了符号知识,任何类型的泛化都是不可能的,因为你没有距离(或相似性)的概念,而对于嵌入,你可以用类似的输入表现出类似的行为(如此概括) . 但是,由于输入空间非常小,因此短嵌入就足够了 .

    • 该模型高度依赖于您想要捕获的现象类型 . 我在文献中经常看到并且在不同任务中运行良好的模型是在角色上的多层双向lstm,在顶部具有线性层 .

    • 该代码类似于Tensorflow的所有RNN实现 . 一个好的开始方法是Tensorflow教程https://www.tensorflow.org/tutorials/recurrent . 创建双向的功能是https://www.tensorflow.org/api_docs/python/tf/nn/static_bidirectional_rnn

    根据经验,我在使用角色模型进行基于单词的嵌入时遇到了问题 . 原因是如果没有语义相似性,基于单词的模型会将形态相似的单词放得很远 . 基于字符的模型不能这样做,因为形态相似的输入无法很好地区分(在嵌入空间中非常接近) .

    这就是为什么在文献中人们经常使用字符模型作为单词模型的加号而不是“本身”模型的原因之一 . 如果角色模型足以捕捉语义和形态相似性,那么这是一个开放的研究领域 .

相关问题