Skip to content

Commit 3935971

Browse files
committed
feat: NeMo-style tokenization, 455/470 (97%)
Replace tagger.star with NeMo-style token + closure(delete_extra_space + token) pattern. This ensures explicit space consumption between tokens, resolving many segmentation ambiguities: - seven eleven stores => 7-eleven stores (whitelist now wins) - set alarm at ten to eleven pm => set alarm at 10:50 p.m.
1 parent 1d7b9ed commit 3935971

4 files changed

Lines changed: 8 additions & 2 deletions

File tree

itn/english/inverse_normalizer.py

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313
# limitations under the License.
1414

1515
from importlib_resources import files
16+
from pynini import closure
1617
from pynini.lib.pynutil import add_weight, delete
1718

1819
from itn.english.rules.cardinal import Cardinal
@@ -67,8 +68,9 @@ def build_tagger_and_verbalizer(self):
6768
| add_weight(char.tagger, 100)
6869
).optimize()
6970

70-
tagger = tagger.star
71-
self.tagger = tagger @ self.build_rule(delete(" "), "", "[EOS]")
71+
token = tagger
72+
graph = token + closure(self.DELETE_EXTRA_SPACE + token)
73+
self.tagger = delete(" ").star + graph + delete(" ").star
7274

7375
verbalizer = (
7476
cardinal.verbalizer

itn/english/test/data/en_telephone.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,3 +15,4 @@ a b nine => ab9
1515
a b c => a b c
1616
five w k r a three one => 5wkra31
1717
x three eighty six => x386
18+
r t x forty fifty t i => RTX 4050ti

itn/english/test/data/en_time.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,3 +25,4 @@ half past twelve => 12:30
2525
quarter past one => 01:15
2626
quarter to one => 12:45
2727
quarter to twelve => 11:45
28+
set alarm at ten to eleven pm => set alarm at 10:50 p.m.

itn/english/test/data/en_whitelist.txt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,8 @@ mister dao => mr. dao
44
saint george => st. george
55
i like for example ice cream => i like e.g. ice cream
66
s and p five hundred => S&P 500
7+
seven eleven stores => 7-eleven stores
78
r t x => RTX
89
cat five e => CAT5e
910
c u d n n => cuDNN
11+
p c i e x eight => PCIe x8

0 commit comments

Comments
 (0)