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

如何让TensorFlow Keras Tokenizer仅按空格拆分生成令牌?

问题原因

你遇到的拆分异常是因为Tokenizer除了split参数外,还有两个默认参数会提前处理文本,优先级高于空格拆分规则:

  • 默认开启lower=True:会自动将所有文本转为小写,这也是你看到词索引里的ab、cdefghijklmnopqrstuvwxyz都是小写的原因
  • 默认配置了filters过滤规则:默认会把.等标点符号先替换为空格,相当于你原文本里的AB.CDEFGHIJKLMNOPQRSTUVWXYZ在拆分前已经被处理成了ab cdefghijklmnopqrstuvwxyz,自然会被拆成两个独立token
解决方法

初始化Tokenizer时,把filters设为空字符串关闭特殊字符过滤,同时可以根据需求决定是否关闭自动转小写的lower参数,修改后的代码如下:

from tensorflow.keras.preprocessing.text import Tokenizer
# 关闭过滤规则、仅按空格拆分,如果需要保留原大小写可以再加lower=False
tokenizer = Tokenizer(num_words=200, split=" ", filters="")
sample_text = ["This is a sample sentence1 created by sample person AB.CDEFGHIJKLMNOPQRSTUVWXYZ", 
               "This is another sample sentence1 created by another sample person AB.CDEFGHIJKLMNOPQRSTUVWXYZ"]

tokenizer.fit_on_texts(sample_text)

print(tokenizer.texts_to_sequences(["sample person AB.CDEFGHIJKLMNOPQRSTUVWXYZ"]))
# 验证词索引
print(tokenizer.index_word[8])

运行后会得到你期望的输出:

[[1, 7, 8]]
ab.cdefghijklmnopqrstuvwxyz

如果需要保留原文的大写格式,只需要在初始化时额外添加lower=False参数即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 04:30:00