Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fix inconsistency in newmm-safe engine by copilot #1063

Merged
merged 1 commit into from
Jan 11, 2025

Conversation

wannaphong
Copy link
Member

Related to #755

Update the calculation of cut_pos in newmm-safe engine to ensure consistent tokenization results.

  • Modify pythainlp/tokenize/newmm.py to update the calculation of cut_pos at line 193 to cut_pos = space_idx + 1 + _TEXT_SCAN_BEGIN.

Related to #755

Update the calculation of `cut_pos` in `newmm-safe` engine to ensure consistent tokenization results.

* Modify `pythainlp/tokenize/newmm.py` to update the calculation of `cut_pos` at line 193 to `cut_pos = space_idx + 1 + _TEXT_SCAN_BEGIN`.
@wannaphong
Copy link
Member Author

I tested this pull request. @bact

from pythainlp.tokenize import word_tokenize
docs = '''ในฐานข้อมูลกฎหมายของเว็บไซต์ ทส. ข้อมูลและทรัพยากร ข้อมูลกฎหมายว่าด้วยป่าชุมชน CSV downloads กฎหมายแม่บท และกฎหมายลำดับรอง ของพระราชบัญญัติป่าชุมชน พ.ศ. 2562... สำรวจ'''
words = word_tokenize(docs, engine="newmm-safe", keep_whitespace=False)

print(words)

['ใน', 'ฐานข้อมูล', 'กฎหมาย', 'ของ', 'เว็บไซต์', 'ทส.', 'ข้อมูล', 'และ', 'ทรัพยากร', 'ข้อมูล', 'กฎหมาย', 'ว่าด้วย', 'ป่าชุมชน', 'CSV', 'downloads', 'กฎหมาย', 'แม่บท', 'และ', 'กฎหมาย', 'ลำดับ', 'รอง', 'ของ', 'พระราชบัญญัติ', 'ป่าชุมชน', 'พ.ศ.', '2562', '...', 'สำรวจ']

docs = "ในฐานข้อมูลกฎหมายของเว็บไซต์ ทส. ข้อมูลและทรัพยากร ข้อมูลกฎหมายว่าด้วยป่าชุมชน CSV downloads กฎหมายแม่บท และกฎหมายลำดับรอง ของพระราชบัญญัติป่าชุมชน พ.ศ. 2562..."
words = word_tokenize(docs, engine="newmm-safe", keep_whitespace=False)

print(words)

['ใน', 'ฐานข้อมูล', 'กฎหมาย', 'ของ', 'เว็บไซต์', 'ทส.', 'ข้อมูล', 'และ', 'ทรัพยากร', 'ข้อมูล', 'กฎหมาย', 'ว่าด้วย', 'ป่าชุมชน', 'CSV', 'downloads', 'กฎหมาย', 'แม่บท', 'และ', 'กฎหมาย', 'ลำดับ', 'รอง', 'ของ', 'พระราชบัญญัติ', 'ป่าชุมชน', 'พ.ศ.', '2562', '...']

It can correctly tokenize "ข้อมูลกฎหมายว่าด้วยป่าชุมชน" into ['ข้อมูล', 'กฎหมาย', 'ว่าด้วย', 'ป่าชุมชน']

I think i may lose a job from AI. 🥹

@coveralls
Copy link

Coverage Status

coverage: 52.753% (+0.08%) from 52.675%
when pulling aecdd66 on wannaphong/fix-newmm-safe
into 9a9d11f on dev.

@wannaphong wannaphong linked an issue Jan 10, 2025 that may be closed by this pull request
Copy link
Member

@bact bact left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nice catch. LGTM. Thank you.

@bact bact added the bug bugs in the library label Jan 11, 2025
@bact bact added this to the 5.1 milestone Jan 11, 2025
@bact
Copy link
Member

bact commented Jan 11, 2025

This solution was proposed by @tongplw (thanks!) a big while ago but it slipped through my attention.

@wannaphong wannaphong merged commit f56e7d9 into dev Jan 11, 2025
41 checks passed
@bact bact deleted the wannaphong/fix-newmm-safe branch January 11, 2025 05:54
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug bugs in the library
Projects
Status: Done
Development

Successfully merging this pull request may close these issues.

Newmm-safe is inconsistence
3 participants