Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
14 changes: 2 additions & 12 deletions itn/main.py
Original file line number Diff line number Diff line change
Expand Up @@ -14,19 +14,9 @@

import argparse

# TODO(xcsong): multi-language support
from itn.chinese.inverse_normalizer import InverseNormalizer as ZhInverseNormalizer
from itn.japanese.inverse_normalizer import InverseNormalizer as JaInverseNormalizer


def str2bool(s, default=False):
s = s.lower()
if s == "true":
return True
elif s == "false":
return False
else:
return default
from tn.utils import str2bool


def main():
Expand Down Expand Up @@ -62,7 +52,7 @@ def main():
print(normalizer.tag(args.text))
print(normalizer.normalize(args.text))
elif args.file:
with open(args.file) as fin:
with open(args.file, encoding="utf-8") as fin:
for line in fin:
print(normalizer.tag(line.strip()))
print(normalizer.normalize(line.strip()))
Expand Down
29 changes: 29 additions & 0 deletions tn/chinese/data/cardinal/phone.tsv
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
110 幺幺零
111 幺幺幺
112 幺幺二
114 幺幺四
119 幺幺九
120 幺二零
122 幺二二
10086 幺零零八六
10010 幺零零幺零
10000 幺零零零零
12306 幺二三零六
12315 幺二三幺五
12345 幺二三四五
12110 幺二幺幺零
12320 幺二三二零
12366 幺二三六六
12333 幺二三三三
12328 幺二三二八
95110 九五幺幺零
95120 九五幺二零
95188 九五幺八八
95500 九五五零零
95511 九五五幺幺
95533 九五五三三
95555 九五五五五
95566 九五五六六
95588 九五五八八
95598 九五五九八
95599 九五五九九
5 changes: 3 additions & 2 deletions tn/chinese/rules/cardinal.py
Original file line number Diff line number Diff line change
Expand Up @@ -91,9 +91,10 @@ def build_tagger(self):
cardinal |= digits.plus + (delete("-") + digits.plus) ** 2
# xxx-xxxxxxxx
cardinal |= digits**3 + delete("-") + digits**8
# three or five or eleven phone numbers
# well-known short phone numbers (110, 12306, etc.) and 11-digit mobile
phone_digits = digits @ self.build_rule(cross("一", "幺"))
phone = phone_digits**3 | phone_digits**5 | phone_digits**11
phone = string_file(get_abs_path("chinese/data/cardinal/phone.tsv"))
phone |= phone_digits**11
phone |= accep("尾号") + (accep("是") | accep("为")).ques + phone_digits**4
cardinal |= add_weight(phone, -1.0)

Expand Down
4 changes: 2 additions & 2 deletions tn/main.py
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@

import argparse

from itn.main import str2bool
from tn.utils import str2bool

# TODO(pzd17 & sxc19): multi-language support
from tn.chinese.normalizer import Normalizer as ZhNormalizer
Expand Down Expand Up @@ -63,7 +63,7 @@ def main():
print(normalizer.tag(args.text))
print(normalizer.normalize(args.text))
elif args.file:
with open(args.file) as fin:
with open(args.file, encoding="utf-8") as fin:
for line in fin:
print(normalizer.tag(line.strip()))
print(normalizer.normalize(line.strip()))
Expand Down
10 changes: 10 additions & 0 deletions tn/utils.py
Original file line number Diff line number Diff line change
Expand Up @@ -82,3 +82,13 @@ def get_formats(input_f, input_case="cased", is_default=True):

multiple_formats = pynini.string_map(multiple_formats)
return multiple_formats


def str2bool(s, default=False):
s = s.lower()
if s == "true":
return True
elif s == "false":
return False
else:
return default
Loading