Skip to content

Commit

Permalink
Merge pull request #3 from AmirMohamadBabaee/dev
Browse files Browse the repository at this point in the history
fix #1
  • Loading branch information
AmirMohamadBabaee committed Nov 23, 2022
2 parents ccd907a + 84683e6 commit 3d62125
Show file tree
Hide file tree
Showing 2 changed files with 23 additions and 3 deletions.
1 change: 1 addition & 0 deletions python/unit_testing_fa.py
Original file line number Diff line number Diff line change
Expand Up @@ -164,6 +164,7 @@ def test_positives_fa(self):
self.assertEqual(instance.text_to_num("سه هزار و چهارصد و پنجاه"), '3450')

# Testing Text_to_num method
self.assertEqual(instance.text_to_num('به ترتیب بیست و یک و سی و چهار نفر در این دو حادثه آسیب دیدند.', ignore_zero=False), 'به ترتیب 21 و 34 نفر در این 2 حادثه آسیب دیدند.')
self.assertEqual(instance.text_to_num('صفر نهصد و دوازده', ignore_zero=False), '0912')
self.assertEqual(instance.text_to_num('من دوستم را بیست و سه روز پیش دیدم', ignore_zero=False), 'من دوستم را 23 روز پیش دیدم')
self.assertEqual(instance.text_to_num('شماره همراه من صفر نهصد و سی و دو پانصد و چهل و هشت هفتاد هشتاد و پنج است', ignore_zero=False), 'شماره همراه من 09325487085 است')
Expand Down
25 changes: 22 additions & 3 deletions python/word2numberi18n/w2n.py
Original file line number Diff line number Diff line change
Expand Up @@ -355,11 +355,30 @@ def text_to_num(self, text: str, ignore_zero: bool=True):
normal_text = self.normalize(text)
temp_text = normal_text
safe_name = list(self.number_system.keys()) + ['و'] + [self.localizedPointName]
# clean_numbers = self.clean_str(text)
# clean_numbers = self.clean_str(text)

number_list = []
clean_number_state = [number in safe_name for number in normal_text.split()]
def clean_number_state_func(normal_text: str) -> List[bool]:
clean_state_list = []
normal_text_list = normal_text.split()

prev_number = None
for number in normal_text_list:
if number in safe_name:
if number == 'و' and prev_number in list(self.number_system.keys())[:20]:
clean_state_list.append(False)
else:
clean_state_list.append(True)
else:
clean_state_list.append(False)

prev_number = number

return clean_state_list

clean_number_state = clean_number_state_func(normal_text)


number_list = []
for k, g in groupby(enumerate(clean_number_state), key=lambda x: x[1]):
if k: # k is True
g = list(g) # for example: [(1, True), (2, True)]
Expand Down

0 comments on commit 3d62125

Please sign in to comment.