You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Tensorflow Keras Tokenizer反向操作:如何从数值向量还原文本?

Keras Tokenizer: 从数字向量还原文本的便捷方法

你说得对,Keras的Tokenizer确实没有内置的、直接对应fit_on_sequences的反向操作方法来从数值向量还原文本。不过我们可以用比手动遍历更高效的方式来实现这个需求。

更便捷的实现方式:构建反向索引字典

与其每次需要还原时都遍历tokenizer.word_index,我们可以预先构建一个索引到词汇的反向字典,之后就能快速通过索引查找对应的词汇,不用重复循环:

# 从Tokenizer的word_index生成反向字典
index_to_word = {index: word for word, index in tokenizer.word_index.items()}
# 补充处理索引0(Tokenizer默认从1开始编码,0通常是填充值)
index_to_word[0] = ""  # 你也可以替换成'<PAD>'这类自定义填充标记

# 还原单个索引对应的词汇
out_word = index_to_word.get(yhat, "")  # 用get避免索引不存在时报错

# 还原整个序列(比如一个完整的编码向量)
def decode_sequence(sequence):
    return ' '.join([index_to_word.get(i, "") for i in sequence])

额外注意事项

  • 如果你在初始化Tokenizer时设置了filters、lower、split等参数,还原后的文本会和你编码前的文本处理逻辑保持一致(比如自动转小写、过滤特殊字符),不用额外处理。
  • 如果你的序列里包含OOV(未登录词)对应的索引(比如你设置了oov_token参数),记得在反向字典里也对应上这个OOV标记,比如:
    if tokenizer.oov_token is not None:
        index_to_word[tokenizer.word_index[tokenizer.oov_token]] = tokenizer.oov_token
    

内容的提问来源于stack exchange,提问作者kiriloff

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.30 16:19:05