WeTextProcessing 1.0.0__py3-none-any.whl → 1.0.2__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: WeTextProcessing
3
- Version: 1.0.0
3
+ Version: 1.0.2
4
4
  Summary: WeTextProcessing, including TN & ITN
5
5
  Home-page: https://github.com/wenet-e2e/WeTextProcessing
6
6
  Author: Zhendong Peng, Xingchen Song
@@ -1,7 +1,7 @@
1
1
  itn/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
2
2
  itn/__main__.py,sha256=jFh8bEB_lC5y7ab9VMqAxWRaI8D-SpBSTiHfMJC1b10,65
3
3
  itn/main.py,sha256=NnT9Sh3VTEI0sX_DO9IGVsXCWtZyfRbzj9Sj_6cBxqM,2610
4
- itn/zh_itn_tagger.fst,sha256=CtbG9WnTvHZFwtKN4Y2-1IViI5NEWLDepbSVp91LNDU,1602718
4
+ itn/zh_itn_tagger.fst,sha256=32FSrQ6gcFYNTUYaHinnrdaMZUpAwuDmvu-EPnki8aI,1172366
5
5
  itn/zh_itn_verbalizer.fst,sha256=pHXRUfzls2UmWwTmHHhYmBWMusIfWpU3I7IwxeRjn28,119018
6
6
  itn/chinese/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
7
7
  itn/chinese/inverse_normalizer.py,sha256=9GpVP7_BCBoCIpoZkPa8aq-n7M56GhY9l4mp3jUGwpM,3563
@@ -26,7 +26,7 @@ itn/chinese/data/time/minute.tsv,sha256=R2HgErTDIq_rxxRwuEotdZFmDbBgZP2DE1Ejxp6A
26
26
  itn/chinese/data/time/noon.tsv,sha256=rWP0aMoTlQ7yEUcav_wXfGLBz2sHMwT37eLmDKZ16X0,72
27
27
  itn/chinese/data/time/second.tsv,sha256=fBb-Gt3U0ehbVnM51ngS8n_eEz2bqdpLJvMY7pdeLUg,849
28
28
  itn/chinese/rules/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
29
- itn/chinese/rules/cardinal.py,sha256=Y9T-qPfIxuiFU6UT_v8vwAMvNAtzv3ofpBd6OWEvcsg,8006
29
+ itn/chinese/rules/cardinal.py,sha256=pFhQ934IqZH4isx7I8el2xvHtr0padu57xsZMCor8YU,7977
30
30
  itn/chinese/rules/char.py,sha256=wWnTfzJqE5j7kvEao9rKSN29OVFGNnL25MxS7PcfWEM,965
31
31
  itn/chinese/rules/date.py,sha256=8pB_S9BFKYd5rXGxzfjAcas-ecLM4dUnhNIsp_vZgI0,2447
32
32
  itn/chinese/rules/fraction.py,sha256=jGhKx91TtscqPFwDtqaI0zeMCAsCFA68KPCWBXtT030,2030
@@ -42,21 +42,21 @@ itn/chinese/test/normalizer_test.py,sha256=a9nqt-is07zYOl3XDAhjUyNzBlwBe3qdaHtvT
42
42
  itn/chinese/test/utils.py,sha256=aCZH5BL0dghGjemhVwfISBUxLFMG_ceMzwzuOb5ht28,1094
43
43
  tn/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
44
44
  tn/__main__.py,sha256=OUMsgyp8SWb7raJY_py61uM29j023yE5po95O9yinzk,64
45
- tn/en_tn_tagger.fst,sha256=CBUjSibReC6Xgcu3Njrkxlp1HBC6Btne2yFze9Bv-Is,5248906
46
- tn/en_tn_verbalizer.fst,sha256=APbSGmx3ML5q5g-cSAW4mPVpOHloTqXvv015eVCVokg,1692102
45
+ tn/en_tn_tagger.fst,sha256=gqjt_9TO5osM29IWhLzHwcu-3z-NJHqkrCs04qfmANg,5418482
46
+ tn/en_tn_verbalizer.fst,sha256=54G4Z7G1_cIs20skJCCwq9DRPmexqExTtGYiCdnB2gw,1710934
47
47
  tn/main.py,sha256=Q45id3b2g71MPRLnaHpo8iWPc38MeyZKigNd5FinNvI,3578
48
- tn/processor.py,sha256=6Cdb1xqo-82BH1wxf1zMHoXnwi3Tmgo_5KvwEbP-6kM,4840
48
+ tn/processor.py,sha256=CUmJ7B0OyweByf7U0yi2TYqBbEhhWTcqs03_0XhTosg,5012
49
49
  tn/token_parser.py,sha256=nsTYzug-gq2HYnTJHja_HXntoRVX3gITQAlI9z8WvWU,4487
50
50
  tn/utils.py,sha256=lJLuW2jkobgXCyNYl29zhtyb3B80CS7Pqz7zqHRVr4c,2792
51
- tn/zh_tn_tagger.fst,sha256=zZ7zLr-Y774X3lb9bnmUv9Fs3Gv-LXa44X0rMFL6a9g,3477714
51
+ tn/zh_tn_tagger.fst,sha256=vIfJeXdWDvOSwLVmuNDeWktIq29UkcWUfbKjBnMY3cA,3479454
52
52
  tn/zh_tn_verbalizer.fst,sha256=VoZnjew7YiDRoDC6TgDHKXhrkcSGOz030Pnqad8JhcE,558366
53
53
  tn/chinese/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
54
54
  tn/chinese/normalizer.py,sha256=4FiYRyx_cfzTL77gonlcpSyGxFbZbVdupFRRLx-J2UQ,3851
55
55
  tn/chinese/data/char/charset_extension.tsv,sha256=kUxQXkh5k1jeYpkNplRBlIZ6vzCUjNn23RNku5XPGvk,24
56
56
  tn/chinese/data/char/charset_national_standard_2013_8105.tsv,sha256=7GLEH98Fh_T2L_UhgD8LOQzPps7XBbT3ZM0KKK1etAQ,32616
57
57
  tn/chinese/data/char/fullwidth_to_halfwidth.tsv,sha256=Xs9kwylqrJp-Ew5Z_31686L2elA8r24q0FYKqPfNRe4,570
58
- tn/chinese/data/char/punctuations_zh.tsv,sha256=TpC5Ncogj0uJ980VRkpYq3HsxqV_MENsY-eLTRkkMTU,288
59
- tn/chinese/data/char/traditional_to_simple.tsv,sha256=hqE4gU1wmdhhWBPDhmz5Oy-kJdJCxDnEYWefCkEezzQ,25160
58
+ tn/chinese/data/char/punctuations_zh.tsv,sha256=8X7rzt0P4AWyp9EWA_xkgwFf1dk8Z-ME6FTuVoSh9qw,292
59
+ tn/chinese/data/char/traditional_to_simple.tsv,sha256=0FXZVJjOtSpGpzkcc1KcQRxnBRtPcWVrqgzAYKGXLPw,25168
60
60
  tn/chinese/data/date/d.tsv,sha256=GrIfCvNeZho4jZssTbtzJoecE5HEt7PG4t_WdWfJvdc,394
61
61
  tn/chinese/data/date/dd.tsv,sha256=oPLQNhJ08cOUtqI_uM1aQ8by4kOv4zkmd-kux2kMb_Q,403
62
62
  tn/chinese/data/date/m.tsv,sha256=KELO_dRSedVfNfqsjhPJRrh8SofOYKcPcpi3a-DsZBc,117
@@ -110,7 +110,7 @@ tn/chinese/test/token_parser_test.py,sha256=8JcSqlvaYTZ46rZgMsfAVNmcYez6t0gonhnx
110
110
  tn/chinese/test/utils.py,sha256=aCZH5BL0dghGjemhVwfISBUxLFMG_ceMzwzuOb5ht28,1094
111
111
  tn/chinese/test/whitelist_test.py,sha256=oPB-7_g8l6zhAeH5fp7NlaRJYcDNz7VAOKwhCnebGdc,1003
112
112
  tn/english/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
113
- tn/english/normalizer.py,sha256=ABmm9a7mwmowXtj-ad4erT2VtpHVzkIlbwwBTCV7CEw,3940
113
+ tn/english/normalizer.py,sha256=YNd9PYib_3m9ExMmxd0SAq0CWpEHxpEi4S0ZpNrqyVs,3921
114
114
  tn/english/data/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
115
115
  tn/english/data/suppletive.tsv,sha256=iih47clDISe35FR-p4Usu_coR3oQy1miXd4VsBJSsyA,1843
116
116
  tn/english/data/address/__init__.py,sha256=EqFAHHjK7kJqR_FV8vBLddBJWhbVD8pREEfm8C5nSEE,623
@@ -121,6 +121,7 @@ tn/english/data/date/day.tsv,sha256=JxNevqMlx8dz3ogpFDbU3QUuHRHnfUJYx5ypBbZrKAc,
121
121
  tn/english/data/date/month_abbr.tsv,sha256=daz29xDyEiqRizcofy1b4Vbhn2OPNKADILnRLXX2sRs,423
122
122
  tn/english/data/date/month_name.tsv,sha256=7DOgcRmfKqDLPaggBaZeCKcF8X1W23Y2A0VLwzv3ggc,500
123
123
  tn/english/data/date/month_number.tsv,sha256=FNZPT3VwSFefhsOxLHzKrgKR4qWIytCgdhQ3PeVkwa8,234
124
+ tn/english/data/date/week.tsv,sha256=zJAjMh4qItucLFB7aesJJ7owJ8Vj2FfanYGX8rE0LVw,233
124
125
  tn/english/data/date/year_suffix.tsv,sha256=5Ph-HOHLY5p1vVJ2IEGMWnmO1zGWIPBbF9WCpzhZ9Zk,128
125
126
  tn/english/data/electronic/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
126
127
  tn/english/data/electronic/domain.tsv,sha256=BOe1iCXxqWc6F8rSpAdPB3k2ujV1g3jbEVFNCQVXAXQ,142
@@ -162,14 +163,14 @@ tn/english/data/time/__init__.py,sha256=TS5NMVLZXlTIgbt7grYmlxBfRKrWELPnT9DedX9k
162
163
  tn/english/data/time/suffix.tsv,sha256=VX7aFlrHb3NEaJpdpZseH6i1yb0CBorBTrO4roELk0g,84
163
164
  tn/english/data/time/zone.tsv,sha256=OEU5PU0XS3hQS9Vsgcn-ADv_0PMok6uyirIf9-SeL-I,116
164
165
  tn/english/data/whitelist/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
165
- tn/english/data/whitelist/alternatives.tsv,sha256=NQYfs_PDJo9WCSK5wtJoMkkxJpW2pOZTiHvTy475uFQ,306
166
+ tn/english/data/whitelist/alternatives.tsv,sha256=MGekzXHOfp8xfPH85agBlAvtBFZxYNDMaaGZE-QhrG4,318
166
167
  tn/english/data/whitelist/alternatives_all_format.tsv,sha256=VzUfxtM9-_dVcM6JMSl7tSGtSZsoljAsKzzTxPeEuBI,155
167
168
  tn/english/data/whitelist/asr.tsv,sha256=b3J6hOJifqH_DwwZ4BOOVEQ45Q43B3PW2fZEztfdjpo,175146
168
169
  tn/english/data/whitelist/asr_with_pc.tsv,sha256=wqeEeG4O742D2vroywzbstwmr-s6lGHVv5KAD_K-qiU,865
169
170
  tn/english/data/whitelist/ipa_symbols.tsv,sha256=ChsK_JiztbsqNnFYNQ0xZ9QCFUxeTqRzm8vCkydQvl8,2532
170
171
  tn/english/data/whitelist/lj_speech.tsv,sha256=-sZeHERreSBZGbLiJh0q_laYvXWG5mvMAUuXkYiHQdI,263
171
172
  tn/english/data/whitelist/symbol.tsv,sha256=rIyi-7u3X-DoBslNDaAQghNVWlD6yLAgYS2nuGKQUJ4,240
172
- tn/english/data/whitelist/tts.tsv,sha256=6tRaxMf2D4YspkWKde4Mdx1NdE3ZzQTk0Bh-nOWlsLA,33630
173
+ tn/english/data/whitelist/tts.tsv,sha256=JZzUz_qoLQbqkfLsluDklCIeqBHNh2nQgAWcAea03Y0,33073
173
174
  tn/english/rules/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
174
175
  tn/english/rules/cardinal.py,sha256=w3HvKbq86mZjb3MhXc96D_Ajaem1raCHs0pCGvhQaRs,8424
175
176
  tn/english/rules/date.py,sha256=QoUczkPwAeYanT41_8Qpi_FqvuSfvXX5LHdEgcsLkVA,13683
@@ -179,8 +180,8 @@ tn/english/rules/fraction.py,sha256=ltGhbd1Qeb-BsuVCPYq8cc__k0Xkkn4WBUiz6dFs8J8,
179
180
  tn/english/rules/measure.py,sha256=DjQnq_9UXL-pHdqaHkp3oUv4qEhiGB_764YmUEq9v6w,14025
180
181
  tn/english/rules/money.py,sha256=0hjQWUdI4wWsOVKkkBs5lvFsQaMIWOQcs6oOLBhQzDM,5457
181
182
  tn/english/rules/ordinal.py,sha256=xFUaNvPx2rKDJz3TMiE2RKje6gcvcVImr3sXixWfOKU,3989
182
- tn/english/rules/punctuation.py,sha256=KyypaQs7SsQC1RCv-h4NGu4Jm-PvuSGUyM3mtPbCMws,2979
183
- tn/english/rules/range.py,sha256=Ulq6Jpg_vHkcpmSDyhKZWHxVr5MXzEdeRChidlH4Rik,5443
183
+ tn/english/rules/punctuation.py,sha256=he6GQ-6CUf9lMzPDCU2PW_RqboQHwhb2V5M5mdBdFHo,3107
184
+ tn/english/rules/range.py,sha256=lEjLyFBJSCHnHlQBdrzhiUdNVIiwTQClPz4DNRqHnB4,5730
184
185
  tn/english/rules/roman.py,sha256=pQFuSIjzWnMN-jiSuVqv3AxJEA9kA8s0NUgGpCCVbiU,6051
185
186
  tn/english/rules/telephone.py,sha256=JkhHZU1O2h4a_W3QHVBY1lOQvq4Tys5JwAlL1Kkt8Pg,8275
186
187
  tn/english/rules/time.py,sha256=7quSQrLifeJ4WLwAyDkuvGe1-lNomN_MjvFAP3zHBas,7764
@@ -203,9 +204,9 @@ tn/english/test/time_test.py,sha256=4E_PS-D5caTUZgrI-UL7q0aoqmtD8np7yeXUkGyc1Qo,
203
204
  tn/english/test/utils.py,sha256=aCZH5BL0dghGjemhVwfISBUxLFMG_ceMzwzuOb5ht28,1094
204
205
  tn/english/test/whitelist_test.py,sha256=fnlpnwiDgQWsl5ONZklWXEyLQoUSuwhdowcV7a8fXvw,1023
205
206
  tn/english/test/word_test.py,sha256=ACguloXPl4Ttw8fj9F_wvr1coaQAoj_MLOJ74wyy-WY,954
206
- WeTextProcessing-1.0.0.dist-info/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
207
- WeTextProcessing-1.0.0.dist-info/METADATA,sha256=W2xwGzXAdYq7A-SD8NBsGPbjytUXUiNQNnXt5r2qCqA,5178
208
- WeTextProcessing-1.0.0.dist-info/WHEEL,sha256=GJ7t_kWBFywbagK5eo9IoUwLW6oyOeTKmQ-9iHFVNxQ,92
209
- WeTextProcessing-1.0.0.dist-info/entry_points.txt,sha256=iAd8tFSNA8AY5fUECPlk9KaDFC3ISvDjoKAZVsCWPjE,61
210
- WeTextProcessing-1.0.0.dist-info/top_level.txt,sha256=6NasE_UheQezX9_0V3MbiOSnTQpvM_funMjv4wpMGgA,7
211
- WeTextProcessing-1.0.0.dist-info/RECORD,,
207
+ WeTextProcessing-1.0.2.dist-info/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
208
+ WeTextProcessing-1.0.2.dist-info/METADATA,sha256=vINHY2ibaBLdN56EpTFgkk5Wn-jde8RfYy1gS6qnn7A,5178
209
+ WeTextProcessing-1.0.2.dist-info/WHEEL,sha256=GJ7t_kWBFywbagK5eo9IoUwLW6oyOeTKmQ-9iHFVNxQ,92
210
+ WeTextProcessing-1.0.2.dist-info/entry_points.txt,sha256=iAd8tFSNA8AY5fUECPlk9KaDFC3ISvDjoKAZVsCWPjE,61
211
+ WeTextProcessing-1.0.2.dist-info/top_level.txt,sha256=6NasE_UheQezX9_0V3MbiOSnTQpvM_funMjv4wpMGgA,7
212
+ WeTextProcessing-1.0.2.dist-info/RECORD,,
@@ -69,7 +69,7 @@ class Cardinal(Processor):
69
69
  | add_weight(addzero**2, 1.0)))
70
70
  # 一千一百一十一 => 1111, 一千零一十一 => 1011, 一千零一 => 1001
71
71
  # 一千一 => 1100, 一千 => 1000
72
- thousand = ((hundred | teen | tens | digits) + delete('千') +
72
+ thousand = (digit + delete('千') +
73
73
  (hundred
74
74
  | add_weight(zero + (tens | teen), 0.1)
75
75
  | add_weight(addzero + zero + digit, 0.5)
@@ -78,7 +78,7 @@ class Cardinal(Processor):
78
78
  # 10001111, 1001111, 101111, 11111, 10111, 10011, 10001, 10000
79
79
  if self.enable_million:
80
80
  ten_thousand = (
81
- (thousand | hundred | teen | tens | digits) + delete('万') +
81
+ (thousand | hundred | teen | tens | digit) + delete('万') +
82
82
  (thousand
83
83
  | add_weight(zero + hundred, 0.1)
84
84
  | add_weight(addzero + zero + (tens | teen), 0.5)
@@ -87,7 +87,7 @@ class Cardinal(Processor):
87
87
  | add_weight(addzero**4, 1.0)))
88
88
  else:
89
89
  ten_thousand = (
90
- (teen | tens | digits) + delete('万') +
90
+ (teen | tens | digit) + delete('万') +
91
91
  (thousand
92
92
  | add_weight(zero + hundred, 0.1)
93
93
  | add_weight(addzero + zero + (tens | teen), 0.5)
itn/zh_itn_tagger.fst CHANGED
Binary file
@@ -12,6 +12,7 @@
12
12
  、
13
13
  。
14
14
  〃
15
+ 《
15
16
  》
16
17
  「
17
18
  」
@@ -3143,3 +3143,4 @@
3143
3143
  龔 龚
3144
3144
  龕 龛
3145
3145
  龜 龟
3146
+ 後 后
tn/en_tn_tagger.fst CHANGED
Binary file
tn/en_tn_verbalizer.fst CHANGED
Binary file
@@ -0,0 +1,18 @@
1
+ Mon Monday
2
+ Mon. Monday
3
+ Tu Tuesday
4
+ Tu. Tuesday
5
+ Wed Wednesday
6
+ Wed. Wednesday
7
+ Th Thursday
8
+ Th. Thursday
9
+ Thur Thursday
10
+ Thur. Thursday
11
+ Thurs Thursday
12
+ Thurs. Thursday
13
+ Fri Friday
14
+ Fri. Friday
15
+ Sat Saturday
16
+ Sat. Saturday
17
+ Sun Sunday
18
+ Sun. Sunday
@@ -23,4 +23,5 @@ NO. number
23
23
  NO. number
24
24
  No. number
25
25
  VOL. Volume
26
+ Vol. Volume
26
27
  TV Television
@@ -3,24 +3,13 @@ Hon. honorable
3
3
  Mt. Mount
4
4
  Maj. Major
5
5
  Rev. Reverend
6
- w/o without
7
- a/c number account number
8
- c/o care of
9
6
  Gov. governor
10
- vs. versus
11
- dept. department
12
- prof. professor
13
- est. estimated
14
- vol. volume
15
- bldg. building
16
7
  Bldg. Building
17
- apt. apartment
18
8
  Apt. Apartment
19
9
  World War II. World War two
20
10
  World War II World War two
21
11
  World War I. World War one
22
12
  World War I World War one
23
- etc. etcetera.
24
13
  SnO2 tin four oxide
25
14
  HVAC H-vac
26
15
  SPDR spider
@@ -77,24 +66,14 @@ ZIP zip
77
66
  Ψ psi
78
67
  ζ zeta
79
68
  Ζ zeta
80
- ltd limited
81
- int'l international
82
69
  A. D AD
83
70
  A.D AD
84
- a. d AD
85
- a.d AD
86
- a. d. AD
87
- a.d. AD
88
71
  B. C BC
89
72
  B.C BC
90
- b. c BC
91
- b.c BC
92
73
  A. D. AD
93
74
  A.D. AD
94
75
  B. C. BC
95
76
  B.C. BC
96
- b. c. BC
97
- b.c. BC
98
77
  A. A. a a
99
78
  A.A. AA
100
79
  A&A A and A
@@ -222,8 +201,6 @@ Ajok AJOK
222
201
  Ajsa AJSA
223
202
  Aju AJU
224
203
  Akaa AKAA
225
- a.k.a. AKA
226
- aka. AKA
227
204
  Aka. AKA
228
205
  Aka AKA
229
206
  A&K A and K
@@ -240,8 +217,6 @@ Alh ALH
240
217
  ALUs ALU's
241
218
  A'ma AMA
242
219
  A&M A and M
243
- a.m. AM
244
- a.m AM
245
220
  A. M. AM
246
221
  A.M. AM
247
222
  AMAs AMA's
@@ -414,7 +389,6 @@ Ba'al BAAL
414
389
  Baal BAAL
415
390
  Baam BAAM
416
391
  Baap BAAP
417
- ba'as BAA's
418
392
  Baat BAAT
419
393
  Ba'ath BAATH
420
394
  B. A. BA
@@ -567,7 +541,6 @@ CBGBs CBGB's
567
541
  CbiXS CBIXS
568
542
  CB&Q CB and Q
569
543
  CBs CB's
570
- 'c C
571
544
  CcaA CCAA
572
545
  Cca CCA
573
546
  C&C C and C
@@ -595,7 +568,6 @@ CdTe CDTE
595
568
  CDTi CDTI
596
569
  CD&V CD and V
597
570
  Cec CEC
598
- c'e CE
599
571
  C'e CE
600
572
  Ce CE
601
573
  C. E. CE
@@ -721,7 +693,6 @@ Ctrip CTRIP
721
693
  C. U. CU
722
694
  Cuyp CUYP
723
695
  C&V C and V
724
- 'cv CV
725
696
  C. V. CV
726
697
  C.V. CV
727
698
  CVEs CVE's
@@ -875,7 +846,6 @@ DSGi DSGI
875
846
  DSi DSI
876
847
  DSMs DSM's
877
848
  D&SNGRR D and SNGRR
878
- dsu' DSU
879
849
  DTCs DTC's
880
850
  DTDs DTD's
881
851
  D. T. DT
@@ -949,8 +919,6 @@ eFS EFS
949
919
  Efs EF's
950
920
  Efu EFU
951
921
  Egba EGBA
952
- e.g. for example
953
- e. g. for example
954
922
  EG&G EG and G
955
923
  Egi EGI
956
924
  E&GR E and GR
@@ -1020,7 +988,6 @@ Eph EPH
1020
988
  Ephs EPH's
1021
989
  Epi EPI
1022
990
  ePO EPO
1023
- epos' EPO's
1024
991
  Epos EPO's
1025
992
  E.P.s EP's
1026
993
  Eq EQ
@@ -1455,7 +1422,6 @@ Idm IDM
1455
1422
  IDPs IDP's
1456
1423
  IDs ID's
1457
1424
  IDx IDX
1458
- i.e. that is
1459
1425
  Ifa IFA
1460
1426
  IfF IFF
1461
1427
  Ifft IFFT
@@ -1469,7 +1435,6 @@ IFRSs IFRS's
1469
1435
  Iga IGA
1470
1436
  IgA IGA
1471
1437
  IGFs IGF's
1472
- 'ig IG
1473
1438
  Ig IG
1474
1439
  I.G. IG
1475
1440
  IgM IGM
@@ -1535,7 +1500,6 @@ INTs INT's
1535
1500
  Intu INTU
1536
1501
  Ioba IOBA
1537
1502
  IODs IOD's
1538
- io. IO
1539
1503
  .I.o. IO
1540
1504
  Io. IO
1541
1505
  Io IO
@@ -1569,7 +1533,6 @@ I.Q. IQ
1569
1533
  Irgm IRGM
1570
1534
  Irig IRIG
1571
1535
  Iril IRIL
1572
- i'r IR
1573
1536
  Ir IR
1574
1537
  I. R. IR
1575
1538
  I.R. IR
@@ -1680,7 +1643,6 @@ J&R J and R
1680
1643
  J. R. JR
1681
1644
  J.R. JR
1682
1645
  Jr. junior
1683
- jr. junior
1684
1646
  Jr junior
1685
1647
  J.R.'s JR's
1686
1648
  Js J's
@@ -1747,7 +1709,6 @@ K.M. KM
1747
1709
  K&N K and N
1748
1710
  K. N. KN
1749
1711
  K.N. KN
1750
- k'o KO
1751
1712
  K. O. KO
1752
1713
  K.O. KO
1753
1714
  KPIs KPI's
@@ -2210,8 +2171,6 @@ PLCs PLC's
2210
2171
  P. L. PL
2211
2172
  P.L. PL
2212
2173
  PMMoV PMMOV
2213
- p.m. PM
2214
- p.m PM
2215
2174
  P. M. PM
2216
2175
  P.M. PM
2217
2176
  PMs PM's
@@ -2437,7 +2396,6 @@ S.E.S.'s SES's
2437
2396
  Seyh SEYH
2438
2397
  Sfax SFAX
2439
2398
  SFFCo SFFCO
2440
- 'sf SF
2441
2399
  S. F. SF
2442
2400
  S.F. SF
2443
2401
  S.F.'s SF's
@@ -2603,7 +2561,6 @@ Tiv TIV
2603
2561
  Tiy's TIY's
2604
2562
  T. J. TJ
2605
2563
  T.J. TJ
2606
- t'ju TJU
2607
2564
  Tko TKO
2608
2565
  T. K. TK
2609
2566
  T.K. TK
@@ -2746,7 +2703,6 @@ Ukoh UKOH
2746
2703
  Uko UKO
2747
2704
  Ukr UKR
2748
2705
  Ukui UKUI
2749
- u'k UK
2750
2706
  Uk UK
2751
2707
  U.K. UK
2752
2708
  Ukwu UKWU
@@ -2923,8 +2879,6 @@ VSANs VSAN's
2923
2879
  VSATs VSAT's
2924
2880
  Vsekh VSEKH
2925
2881
  VSPs VSP's
2926
- vs. versus
2927
- _vs._ versus
2928
2882
  VTE VT eL
2929
2883
  Vtic VTIC
2930
2884
  VTi VTI
@@ -2941,7 +2895,6 @@ V. Z. VZ
2941
2895
  Waay WAAY
2942
2896
  Wa'il WAIL
2943
2897
  Wakf WAKF
2944
- wa'l WAL
2945
2898
  Waqt WAQT
2946
2899
  Wasl WASL
2947
2900
  Watfa WATFA
tn/english/normalizer.py CHANGED
@@ -63,7 +63,6 @@ class Normalizer(Processor):
63
63
  | time | measure | money
64
64
  | telephone | electronic
65
65
  | whitelist
66
- | punct
67
66
  | rang).optimize() + (punct.plus | self.DELETE_SPACE)
68
67
  # delete the last space
69
68
  self.tagger = tagger.star @ self.build_rule(delete(' '), r='[EOS]')
@@ -92,6 +91,6 @@ class Normalizer(Processor):
92
91
  | electronic
93
92
  | whitelist
94
93
  | punct
95
- | rang).optimize() + punct.ques + self.INSERT_SPACE
94
+ | rang).optimize() + (punct.plus | self.INSERT_SPACE)
96
95
  self.verbalizer = verbalizer.star @ self.build_rule(delete(' '),
97
96
  r='[EOS]')
@@ -17,7 +17,7 @@ from unicodedata import category
17
17
 
18
18
  from pynini.examples import plurals
19
19
  from pynini import cross, union, closure, accep
20
- from pynini.lib.pynutil import delete, insert
20
+ from pynini.lib.pynutil import add_weight, delete, insert
21
21
 
22
22
  from tn.processor import Processor
23
23
  from tn.utils import get_abs_path, load_labels
@@ -71,11 +71,14 @@ class Punctuation(Processor):
71
71
  punct = plurals._priority_union(emphasis, punct, closure(self.VCHAR))
72
72
 
73
73
  self.graph = punct
74
- final_graph = insert("v: \"") + punct + insert("\"")
74
+ final_graph = insert("v: \"") + add_weight(
75
+ accep(" "), -1.0).star + punct + add_weight(
76
+ accep(" "), -1.0).star + insert("\"")
75
77
  self.tagger = self.add_tokens(final_graph)
76
78
 
77
79
  def build_verbalizer(self):
78
- punct = closure(self.punct | cross('\\\\\\', '\\') | cross('\\"', '"'),
79
- 1)
80
+ punct = closure(
81
+ self.punct | cross('\\\\\\', '\\') | cross('\\"', '"')
82
+ | accep(" "), 1)
80
83
  verbalizer = delete('v: "') + punct + delete('"')
81
84
  self.verbalizer = self.delete_tokens(verbalizer)
tn/english/rules/range.py CHANGED
@@ -17,6 +17,7 @@ import pynini
17
17
  from pynini.lib import pynutil
18
18
 
19
19
  from tn.processor import Processor
20
+ from tn.utils import get_abs_path
20
21
  from tn.english.rules.cardinal import Cardinal
21
22
  from tn.english.rules.time import Time
22
23
  from tn.english.rules.date import Date
@@ -45,14 +46,19 @@ class Range(Processor):
45
46
  time = time.tagger @ time.verbalizer
46
47
  date = Date(deterministic=self.deterministic)
47
48
  date = date.tagger @ date.verbalizer
49
+ week = pynini.string_file(get_abs_path("english/data/date/week.tsv"))
48
50
  delete_space = pynini.closure(pynutil.delete(" "), 0, 1)
49
51
 
50
52
  approx = pynini.cross("~", "approximately")
51
53
 
54
+ # WEEK
55
+ week_graph = week + delete_space + (pynini.cross("-", " to ")
56
+ | approx) + delete_space + week
57
+
52
58
  # TIME
53
59
  time_graph = time + delete_space + pynini.cross(
54
60
  "-", " to ") + delete_space + time
55
- self.graph = time_graph | (approx + time)
61
+ self.graph = time_graph | (approx + time) | week_graph
56
62
 
57
63
  # YEAR
58
64
  date_year_four_digit = (self.DIGIT**4 +
tn/processor.py CHANGED
@@ -23,9 +23,6 @@ from pynini import (cdrewrite, cross, difference, escape, Fst, shortestpath,
23
23
  from pynini.lib import byte, utf8
24
24
  from pynini.lib.pynutil import delete, insert
25
25
 
26
- logging.basicConfig(level=logging.DEBUG,
27
- format='%(asctime)s WETEXT %(levelname)s %(message)s')
28
-
29
26
 
30
27
  class Processor:
31
28
 
@@ -78,6 +75,13 @@ class Processor:
78
75
  self.verbalizer = self.delete_tokens(verbalizer)
79
76
 
80
77
  def build_fst(self, prefix, cache_dir, overwrite_cache):
78
+ logger = logging.getLogger('wetext-{}'.format(self.name))
79
+ logger.setLevel(logging.INFO)
80
+ handler = logging.StreamHandler()
81
+ fmt = logging.Formatter('%(asctime)s WETEXT %(levelname)s %(message)s')
82
+ handler.setFormatter(fmt)
83
+ logger.addHandler(handler)
84
+
81
85
  os.makedirs(cache_dir, exist_ok=True)
82
86
  tagger_name = '{}_tagger.fst'.format(prefix)
83
87
  verbalizer_name = '{}_verbalizer.fst'.format(prefix)
@@ -88,20 +92,20 @@ class Processor:
88
92
  exists = os.path.exists(tagger_path) and os.path.exists(
89
93
  verbalizer_path)
90
94
  if exists and not overwrite_cache:
91
- logging.info("found existing fst: {}".format(tagger_path))
92
- logging.info(" {}".format(verbalizer_path))
93
- logging.info("skip building fst for {} ...".format(self.name))
95
+ logger.info("found existing fst: {}".format(tagger_path))
96
+ logger.info(" {}".format(verbalizer_path))
97
+ logger.info("skip building fst for {} ...".format(self.name))
94
98
  self.tagger = Fst.read(tagger_path).optimize()
95
99
  self.verbalizer = Fst.read(verbalizer_path).optimize()
96
100
  else:
97
- logging.info("building fst for {} ...".format(self.name))
101
+ logger.info("building fst for {} ...".format(self.name))
98
102
  self.build_tagger()
99
103
  self.build_verbalizer()
100
104
  self.tagger.optimize().write(tagger_path)
101
105
  self.verbalizer.optimize().write(verbalizer_path)
102
- logging.info("done")
103
- logging.info("fst path: {}".format(tagger_path))
104
- logging.info(" {}".format(verbalizer_path))
106
+ logger.info("done")
107
+ logger.info("fst path: {}".format(tagger_path))
108
+ logger.info(" {}".format(verbalizer_path))
105
109
 
106
110
  def tag(self, input):
107
111
  if len(input) == 0:
tn/zh_tn_tagger.fst CHANGED
Binary file