Python 在字符级别编码文本以输入tensorflow模型的最有效方法是什么?

Python 在字符级别编码文本以输入tensorflow模型的最有效方法是什么?,python,tensorflow,machine-learning,nlp,deep-learning,Python,Tensorflow,Machine Learning,Nlp,Deep Learning,将字符级输入到Tensorflow模型中最有效的方法是什么(是的,字符级输入是必要的) 对于给定的字符串“hello”, 还有一个字符嵌入“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 ...],

将字符级输入到Tensorflow模型中最有效的方法是什么(是的,字符级输入是必要的)

对于给定的字符串“hello”, 还有一个字符嵌入“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)`

哪种方法最适合在大型文本输入(包含大量字符)上实现高效和有效的字符级编码,或者有更好的替代方案来替代我提出的上述解决方案?

由于字符词汇表(即字母表)相对较小,一种热编码是可行的解决方案。例如,这正是Andrew Karpath在中所做的(参见)

说到大型语料库应用程序,请看一个例子,它分析并生成类似莎士比亚的文本,一个字符接一个字符。您可以找到一个脚本:它在一个hot中对字符进行编码并将其馈送到RNN,并且工作得非常好


如果字符之间有语义上的相似性,比如单词之间的相似性,那么字符嵌入就更有用了。但是字符“a”与“b”和“z”同样相似,因此它们在这项任务中不是很有用。

我觉得一个热编码方法会占用大量内存和较大字符嵌入的训练时间,你也这么认为吗?如果是这样的话,你会建议如何解决这个问题?你是说字母表真的很大吗?因为即使对于单词嵌入
d=100
也是一个默认的维度(例如,在gensim中),并且它有点适用。我假设字母表的大小顺序相同。感谢您的回复,字符嵌入不一定限于字母字符,嵌入可能包括数字(0,1,2,3等)、符号(@#$%等)等字符,因此需要能够在字符嵌入中表示大量字符