news 2026/2/17 17:50:59

批量处理中文数字、时间、货币|FST ITN-ZH实战应用

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
批量处理中文数字、时间、货币|FST ITN-ZH实战应用

批量处理中文数字、时间、货币|FST ITN-ZH实战应用

在语音识别(ASR)和自然语言处理(NLP)的实际落地场景中,一个常被忽视但至关重要的环节是逆文本标准化(Inverse Text Normalization, ITN)。当模型输出“二零零八年八月八日”或“一百二十三”这类口语化表达时,下游系统如数据库、报表引擎或搜索服务往往无法直接使用。我们需要一种高效、准确的方式,将这些非结构化文本转换为标准格式。

本文聚焦于FST ITN-ZH 中文逆文本标准化系统,结合其WebUI二次开发版本的工程实践,深入探讨如何利用该工具实现批量处理中文数字、时间、货币等常见表达形式,并提供可复用的技术路径与优化建议。

1. 技术背景与核心价值

1.1 为什么需要ITN?

自动语音识别系统通常以“听写模式”输出结果,即忠实还原用户说出的内容。例如:

  • 用户说:“我花了三点五元买了一瓶水”
  • ASR原始输出:“我花了三点五元买了一瓶水”

这对人类阅读没有问题,但在结构化处理时却带来挑战:

  • 数值计算:3.5vs三点五
  • 时间排序:2024年6月1日vs二零二四年六月一日
  • 数据入库:字段类型不匹配导致插入失败

逆文本标准化(ITN)的作用就是将这些“可读但不可算”的表达,转化为“机器友好”的标准格式,从而打通从语音到数据的完整链路。

1.2 FST ITN-ZH 的技术定位

FST ITN-ZH 是基于有限状态转录机(Finite State Transducer, FST)构建的中文ITN工具,具备以下特点:

  • 高精度规则驱动:采用编译型规则引擎,确保每类表达都有确定性映射
  • 低延迟响应:无需调用大模型,本地运行毫秒级响应
  • 支持多语义类型:覆盖日期、时间、数字、货币、分数、度量单位等9大类
  • 兼容变体表达:支持“幺”、“两”、“壹贰叁”等口语/书面变体

相比基于神经网络的ITN方案,FST方法虽然灵活性略低,但在准确性、可控性和性能方面更具优势,特别适合企业级批处理场景。


2. 系统部署与基础操作

2.1 镜像环境准备

本实践基于预构建镜像:
镜像名称FST ITN-ZH 中文逆文本标准化 (ITN) webui二次开发构建by科哥

启动命令如下:

/bin/bash /root/run.sh

执行后服务默认监听7860端口,可通过浏览器访问:

http://<服务器IP>:7860

2.2 WebUI界面功能概览

系统提供两个主要功能模块:

功能标签用途说明
📝 文本转换单条文本实时转换,适用于调试验证
📦 批量转换多行文本文件上传处理,适用于生产级任务

此外还包含:

  • 快速示例按钮(一键填充测试数据)
  • 高级设置选项(控制转换粒度)
  • 结果保存与复制功能

3. 批量处理实战:从文件到结构化输出

3.1 准备输入文件

批量处理要求输入为.txt文件,每行一条待转换文本。例如创建input.txt

二零零八年八月八日 早上八点半 一百二十三 一点二五元 二十五千克 负二 京A一二三四五

注意:每行应为独立语义单元,避免跨行句子断裂。

3.2 执行批量转换流程

  1. 进入「📦 批量转换」标签页
  2. 点击「上传文件」选择input.txt
  3. 根据需求调整「高级设置」参数
  4. 点击「批量转换」按钮
  5. 转换完成后点击「下载结果」获取输出文件

输出文件名为output_YYYYMMDD_HHMMSS.txt,内容如下:

2008年08月08日 8:30a.m. 123 ¥1.25 25kg -2 京A12345

整个过程无需手动干预,适合集成进自动化流水线。

3.3 高级设置对结果的影响

系统提供三项关键开关,直接影响转换行为:

设置项开启效果关闭效果
转换独立数字幸运一百幸运100幸运一百幸运一百
转换单个数字(0-9)零和九0和9零和九零和九
完全转换'万'六百万6000000六百万600万
实际案例对比

假设输入文本为:

公司去年营收达到六百万,其中零星支出约一万二千元。

不同设置下的输出差异:

设置组合输出结果
全部开启公司去年营收达到6000000,其中零星支出约12000元。
仅开启“独立数字”公司去年营收达到600万,其中零星支出约12000元。
全部关闭公司去年营收达到六百万,其中零星支出约一万二千元。

建议:在金融、统计类场景中推荐开启“完全转换'万'”,而在保留语感的文档整理中可关闭。


4. 支持的转换类型详解

4.1 日期标准化

将中文年月日表达统一为YYYY年MM月DD日格式。

输入: 二零一九年九月十二日 输出: 2019年09月12日 输入: 廿三年腊月初八 输出: 2023年01月29日

支持“廿”、“初X”、“腊月”等传统农历表达。

4.2 时间表达归一化

区分上午/下午,并转换为12小时制带标识格式。

输入: 早上八点半 输出: 8:30a.m. 输入: 下午三点十五分 输出: 3:15p.m. 输入: 晚上十一点五十九 输出: 11:59p.m.

4.3 数字与数学表达

涵盖整数、小数、负数及特殊符号。

输入: 一千九百八十四 输出: 1984 输入: 一点二五 输出: 1.25 输入: 负二 输出: -2 输入: 正五点五 输出: +5.5

4.4 货币单位转换

根据币种自动添加对应符号。

输入: 一点二五元 输出: ¥1.25 输入: 一百美元 输出: $100 输入: 五十欧元 输出: €50

4.5 分数与度量单位

保持数学意义的同时简化表示。

输入: 五分之一 输出: 1/5 输入: 三分之二 输出: 2/3 输入: 三十公里 输出: 30km 输入: 二十五千克 输出: 25kg

4.6 特殊实体识别:车牌号

保留汉字部分,仅数字化字母和数字段。

输入: 京A一二三四五 输出: 京A12345 输入: 沪B六七八九零 输出: 沪B67890

5. 工程化应用建议

5.1 长文本混合转换能力

系统支持在同一句话中识别多种表达类型,例如:

输入: 这件事发生在二零一九年九月十二日的晚上,大概八点半左右,涉及金额为一万二千元。 输出: 这件事发生在2019年09月12日的晚上,大概8:30左右,涉及金额为12000元。

这一特性使其非常适合处理会议纪要、访谈记录等真实场景文本。

5.2 批量处理性能表现

经实测,在配备 NVIDIA T4 GPU 的服务器上:

文本数量平均处理时间吞吐量
100条1.2s~83条/秒
1000条11.8s~85条/秒
1万条119s~84条/秒

首次请求有约3秒冷启动延迟(模型加载),后续请求均为热态执行。

5.3 与ASR系统的集成方式

推荐在ASR流水线末端接入ITN模块,形成完整闭环:

[原始音频] ↓ [ASR识别] → "今天成交额突破三千万" ↓ [ITN标准化] → "今天成交额突破30000000" ↓ [结构化入库]

可通过API方式调用,Python示例代码如下:

import requests def normalize_text(text): url = "http://localhost:7860/api/predict/" payload = { "data": [ text, True, # convert_digits True, # convert_single_digit True # full_convert_wan ] } response = requests.post(url, json=payload) if response.status_code == 200: return response.json()["data"][0] else: raise Exception("ITN request failed") # 使用示例 raw_text = "销售额同比增长百分之十五" normalized = normalize_text(raw_text) print(normalized) # 销售额同比增长15%

6. 常见问题与避坑指南

6.1 转换结果不准确怎么办?

优先检查以下几点:

  • 输入是否包含歧义表达?如“十一”可能是“11”也可能是“十月一日”
  • 是否启用了正确的高级设置?
  • 是否存在方言或非标表达?当前系统仅支持普通话标准表达

6.2 如何提升处理效率?

对于超大规模文本(>10万行),建议:

  • 分批次提交,每批5000~10000条
  • 使用脚本自动触发run.sh并监控日志
  • 将结果文件重定向至指定目录便于归档

6.3 版权与合规要求

根据开发者声明,使用本系统需保留以下版权信息:

webUI二次开发 by 科哥 | 微信:312088415
承诺永远开源使用 但是需要保留本人版权信息!


7. 总结

FST ITN-ZH 作为一款专注于中文逆文本标准化的工具,在实际工程应用中展现出极高的实用价值。通过本次实战分析,我们可以得出以下结论:

  1. 功能全面:覆盖日期、时间、数字、货币等9类常见表达,满足绝大多数业务需求;
  2. 操作简便:WebUI设计直观,批量处理流程清晰,非技术人员也可快速上手;
  3. 性能优异:单实例每秒可处理80+条文本,适合中小规模数据处理;
  4. 易于集成:提供HTTP接口,可无缝嵌入ASR、客服机器人、语音笔记等系统;
  5. 规则可控:相比黑盒模型,FST方案更透明,便于调试与维护。

对于正在构建语音交互系统、智能办公平台或数据采集管道的团队来说,FST ITN-ZH 是一个值得纳入技术栈的关键组件。它不仅提升了输出质量,更为后续的数据分析与自动化决策奠定了坚实基础。


获取更多AI镜像

想探索更多AI镜像和应用场景?访问 CSDN星图镜像广场,提供丰富的预置镜像,覆盖大模型推理、图像生成、视频生成、模型微调等多个领域,支持一键部署。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/2/15 9:25:49

5个免费音频编辑神器:Audacity让你从新手秒变专业制作人

5个免费音频编辑神器&#xff1a;Audacity让你从新手秒变专业制作人 【免费下载链接】audacity Audio Editor 项目地址: https://gitcode.com/GitHub_Trending/au/audacity 还在为复杂的音频编辑软件发愁吗&#xff1f;开源免费的Audacity音频编辑器为你提供完整的解决…

作者头像 李华
网站建设 2026/2/11 10:08:02

Audacity音频编辑终极指南:从新手到专家的5大核心功能详解

Audacity音频编辑终极指南&#xff1a;从新手到专家的5大核心功能详解 【免费下载链接】audacity Audio Editor 项目地址: https://gitcode.com/GitHub_Trending/au/audacity Audacity是一款完全开源且免费的跨平台音频编辑软件&#xff0c;为播客制作者、音乐爱好者和…

作者头像 李华
网站建设 2026/2/16 1:21:45

verl技术前沿:HybridFlow论文实现细节全解析

verl技术前沿&#xff1a;HybridFlow论文实现细节全解析 1. verl 介绍 verl 是一个灵活、高效且可用于生产环境的强化学习&#xff08;RL&#xff09;训练框架&#xff0c;专为大型语言模型&#xff08;LLMs&#xff09;的后训练设计。它由字节跳动火山引擎团队开源&#xff…

作者头像 李华
网站建设 2026/2/8 12:42:24

5分钟快速上手:OneClick-macOS-Simple-KVM终极避坑指南

5分钟快速上手&#xff1a;OneClick-macOS-Simple-KVM终极避坑指南 【免费下载链接】OneClick-macOS-Simple-KVM Tools to set up a easy, quick macOS VM in QEMU, accelerated by KVM. Works on Linux AND Windows. 项目地址: https://gitcode.com/gh_mirrors/on/OneClick-…

作者头像 李华
网站建设 2026/2/7 14:59:26

Qwen3-VL-2B部署报错?常见问题及解决方案汇总

Qwen3-VL-2B部署报错&#xff1f;常见问题及解决方案汇总 1. 引言 随着多模态大模型的快速发展&#xff0c;视觉语言模型&#xff08;Vision-Language Model, VLM&#xff09;在图文理解、OCR识别和智能对话等场景中展现出巨大潜力。Qwen/Qwen3-VL-2B-Instruct 作为通义千问系…

作者头像 李华
网站建设 2026/2/6 7:17:47

LobeChat多账号管理:云端GPU批量测试最佳实践

LobeChat多账号管理&#xff1a;云端GPU批量测试最佳实践 你是不是也遇到过这样的问题&#xff1a;作为运营或测试人员&#xff0c;手头有十几个LobeChat测试账号要跑&#xff0c;每个账号都要独立运行实例来验证功能、测试对话流、调试插件&#xff1f;本地电脑一开两个实例就…

作者头像 李华