在char级别编码文本以输入张量流模型的最有效和最有效的方法是什么?

时间:2018-01-06 16:46:03

标签: python tensorflow machine-learning nlp deep-learning

在Tensorflow模型中输入字符级别的最有效和最有效的方法是什么(是的,字符级输入是必要的)。

对于给定的字符串"你好", 和一个嵌入字母" abcdefghijklmnop ..." (为简洁省略了〜150个字符),我尝试了以下方法:

1)直接翻译示例:

[7,4,11,14] 
observation_space_shape = (max_length, char_embedding_length)

2)一个热门编码示例:

[`[0.0,0.0,0.0,0.0,0.0,1,0.0 ...], [...], ...] 

observation_space_shape = (max_length, char_embedding_length, 1)`

哪种方法最适合在大型文本输入(具有多个字符)上实现高效且有效的字符级别编码,或者是否有更好的替代方法来解释我提出的上述解决方案?

1 个答案:

答案 0 :(得分:1)

由于字符词汇(即字母表)相对较小,因此单热编码是可行的解决方案。例如,这正是Andrew Karpathy在min-char-rnn中所做的事情(见this post)。

说到大型语料库应用程序,请查看分析的CS 20SI示例,然后逐个字符地生成类似莎士比亚的文本。 Here你可以找到一个脚本:它在一个热点中编码字符并提供给RNN,它运行得很好。

如果字符之间存在语义相似性,那么字符嵌入会更有用,就像字之间一样。但是角色' a'同样类似于' b'并且对于这项任务非常有用。