diff --git a/tests/pipeline/word_tokenize/test_word_tokenize.py b/tests/pipeline/word_tokenize/test_word_tokenize.py index 19a999de..20fd1cea 100644 --- a/tests/pipeline/word_tokenize/test_word_tokenize.py +++ b/tests/pipeline/word_tokenize/test_word_tokenize.py @@ -57,3 +57,11 @@ def test_url_1(self): actual = word_tokenize(text, format='text') expected = u"https://www.facebook.com/photo.php?fbid=1627680357512432&set=a.1406713109609159.1073741826.100008114498358&type=1 mình muốn chia_sẻ bài viết của một bác nói về thực_trạng của bộ giáo_dục bây_giờ ! mọi người vào đọc và chia_sẻ để Phạm_Vũ_Luận BIẾT !" self.assertEqual(actual, expected) + + # from issue 528 + # link: https://github.com/undertheseanlp/underthesea/issues/528 + def test_exception(self): + text = "000 85 ." + actual = word_tokenize(text, format='text') + expected = "000 85 ." + self.assertEqual(actual, expected) diff --git a/underthesea/pipeline/word_tokenize/__init__.py b/underthesea/pipeline/word_tokenize/__init__.py index d8ed8ba7..b1ee735f 100644 --- a/underthesea/pipeline/word_tokenize/__init__.py +++ b/underthesea/pipeline/word_tokenize/__init__.py @@ -37,11 +37,13 @@ def word_tokenize(sentence, format=None): tokens = [token[0] for token in output] tags = [token[1] for token in output] output = [] + num_words = 0 for tag, token in zip(tags, tokens): - if tag == "I-W": + if tag == "I-W" and num_words > 0: output[-1] = output[-1] + u" " + token else: output.append(token) + num_words += 1 if format == "text": output = u" ".join([item.replace(" ", "_") for item in output]) return output