Inverse Text Normalization
$ python inverse_normalize.py --text " text to be denormalized"
There are 2 components in ITN pipeline:
pre-processing (before tagger)
non-standard word denormalization
Pre-Processing
Raw
Denormalized
Note
Blacklist (Removal)
呃这个呃啊我不知道
这个我不知道
via data/default/blacklist.tsv
2.2 Non-Standard-Words (NSW) Denormalization
NSW type
Raw
Denormalized
Note
Numbers
共四百六十五篇约三百一十五万字
共465篇约315万字
共计六点四二万人
共计6.42万人
幸运一百
幸运100
enable_standalone_number=True (default) (ref )
幸运一百
enable_standalone_number=False
Fraction
总量的五分之一以上
总量的1/5以上
相当于头发丝的十六分之一
相当于头发丝的1/16
Percentage
同比增长百分之六点三
同比增长6.3%
Date
二零零二年一月二十八日
2002/01/28
二零零二年一月
2002/01
Time
八月十六号十二点之前
08/16 12点之前
我是五点零二分开始的
我是5:02开始的
于五点三十五分三十六秒发射
于5:35:36发射
早上八点半准时开会
8:30a.m.准时开会
Math
比分定格在七十八比九十六
比分定格在78:96
计算负二的绝对值是二
计算-2的绝对值是2
enable_standalone_number=True (default)
计算负二的绝对值是二
enable_standalone_number=False
正负二的平方都是四
±2的平方都是4
enable_standalone_number=True (default)
正负二的平方都是四
enable_standalone_number=False
Money
价格是十三点五元
价格是¥13.5
价格是十三点五美元
价格是$13.5
Measure
重达二十五千克
重达25kg
最高气温三十八摄氏度
最高气温38°C
速度是每小时十公里
速度是10km/h
一年后
一年后
exclue_one=True (default) (ref )
1年后
exclue_one=False
Number series
可以拨打幺二三零六来咨询
可以拨打12306来咨询
Whitelist (Replacement)
三心二意
三心二意
Thank the authors of foundational libraries like OpenFst & Pynini .
Thank NeMo team & NeMo open-source community.
Thank Jiayu Du , and SpeechColab organization.
Referred Pynini for reading the FAR, and printing the shortest path of a lattice in the C++ runtime.
Referred ITN of chinese_text_normalization for the data to build the tagger graph.