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

如何使用Keras Tokenizer去除TXT文件中的标点符号与数字?

使用Keras Tokenizer去除文本中的标点与数字

方法一:自定义Tokenizer过滤规则(简洁高效)

Keras Tokenizer的filters参数可指定需要过滤的单个字符,默认已包含常见标点,只需把数字(0-9)加入过滤列表,就能自动移除标点和数字:

import os
from tensorflow.keras.preprocessing.text import Tokenizer

# 读取文件夹下所有TXT文件
def load_txt_files(folder_path):
    texts = []
    for filename in os.listdir(folder_path):
        if filename.endswith('.txt'):
            with open(os.path.join(folder_path, filename), 'r', encoding='utf-8') as f:
                texts.append(f.read())
    return texts

# 初始化Tokenizer,添加数字到过滤规则
tokenizer = Tokenizer(filters='!"#$%&()*+,-./:;<=>?@[\]^_`{|}~\t\n0123456789')

# 加载文本并拟合Tokenizer
texts = load_txt_files('你的TXT文件夹路径')
tokenizer.fit_on_texts(texts)

# 测试转换:将文本转为序列(已去除标点和数字)
sample_seq = tokenizer.texts_to_sequences([texts[0]])
print(sample_seq)

方法二:先手动预处理文本(更灵活)

如果需要对数字做特殊处理(比如保留特定格式的数字),可以先用正则表达式移除数字,再用Tokenizer过滤标点:

import os
import re
from tensorflow.keras.preprocessing.text import Tokenizer

def load_txt_files(folder_path):
    texts = []
    for filename in os.listdir(folder_path):
        if filename.endswith('.txt'):
            with open(os.path.join(folder_path, filename), 'r', encoding='utf-8') as f:
                texts.append(f.read())
    return texts

# 预处理:移除所有数字
def remove_numbers(text):
    return re.sub(r'\d+', '', text)

# 初始化Tokenizer(使用默认标点过滤规则)
tokenizer = Tokenizer()

# 加载并预处理文本
texts = load_txt_files('你的TXT文件夹路径')
processed_texts = [remove_numbers(text) for text in texts]

# 拟合Tokenizer并转换文本
tokenizer.fit_on_texts(processed_texts)
sample_seq = tokenizer.texts_to_sequences([processed_texts[0]])
print(sample_seq)

注意事项

  • 读取文件时请指定正确编码(如utf-8),避免乱码。
  • 如果需要过滤中文标点,可在filters参数中添加对应字符,例如:filters='!"#$%&()*+,-./:;<=>?@[\]^_{|}~\t\n0123456789,。!?;:”“‘’'`

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.26 00:15:37