Skip to content

Commit 35093e4

Browse files
authored
Merge pull request #459 from cstorm125/dev
fix crfcut last segment not included if not predicted as end-of-sentence
2 parents 7b306ab + bce9d5b commit 35093e4

File tree

2 files changed

+21
-8
lines changed

2 files changed

+21
-8
lines changed

pythainlp/tokenize/crfcut.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -192,6 +192,7 @@ def segment(text: str) -> List[str]:
192192
toks = word_tokenize(text)
193193
feat = extract_features(toks)
194194
labs = _tagger.tag(feat)
195+
labs[-1] = "E" # make sure it cuts the last sentence
195196

196197
sentences = []
197198
sentence = ""

tests/test_tokenize.py

Lines changed: 20 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -371,32 +371,44 @@ def test_sent_tokenize(self):
371371
sent_1_toks = ["ฉันไปโรงเรียน ", "เธอไปโรงพยาบาล"]
372372
sent_2 = "วันนี้ฉันกินข้าว และโดดเรียน"
373373
sent_2_toks = ["วันนี้ฉันกินข้าว และโดดเรียน"]
374+
sent_3 = (
375+
"(1) บทความนี้ผู้เขียนสังเคราะห์ขึ้นมา"
376+
+ "จากผลงานวิจัยที่เคยทำมาในอดีต"
377+
+ " มิได้ทำการศึกษาค้นคว้าใหม่อย่างกว้างขวางแต่อย่างใด"
378+
+ " จึงใคร่ขออภัยในความบกพร่องทั้งปวงมา ณ ที่นี้"
379+
)
380+
sent_3_toks = [
381+
"(1) บทความนี้ผู้เขียนสังเคราะห์ขึ้นมา"
382+
+ "จากผลงานวิจัยที่เคยทำมาในอดีต ",
383+
"มิได้ทำการศึกษาค้นคว้าใหม่อย่างกว้างขวางแต่อย่างใด ",
384+
"จึงใคร่ขออภัยในความบกพร่องทั้งปวงมา ณ ที่นี้",
385+
]
374386

375387
self.assertEqual(
376388
sent_tokenize(sent_1, engine="crfcut"), sent_1_toks,
377389
)
378390
self.assertEqual(
379391
sent_tokenize(sent_2, engine="crfcut"), sent_2_toks,
380392
)
393+
self.assertEqual(
394+
sent_tokenize(sent_3, engine="crfcut"), sent_3_toks,
395+
)
381396
self.assertEqual(
382397
sent_tokenize(sent_1), sent_1_toks,
383398
)
384399
self.assertEqual(
385400
sent_tokenize(sent_2), sent_2_toks,
386401
)
402+
self.assertEqual(
403+
sent_tokenize(sent_3), sent_3_toks,
404+
)
387405
self.assertIsNotNone(
388-
sent_tokenize(
389-
sent_1,
390-
keep_whitespace=False,
391-
engine="whitespace",
392-
),
406+
sent_tokenize(sent_1, keep_whitespace=False, engine="whitespace",),
393407
)
394408
self.assertFalse(
395409
" "
396410
in sent_tokenize(
397-
sent_1,
398-
engine="whitespace",
399-
keep_whitespace=False,
411+
sent_1, engine="whitespace", keep_whitespace=False,
400412
)
401413
)
402414
with self.assertRaises(ValueError):

0 commit comments

Comments
 (0)