PyThaiNLP: Thai Natural Language Processing in Python
PyThaiNLP is a Python package for text processing and linguistic analysis, similar to nltk but with focus on Thai language.
PyThaiNLP เป็นไลบารีภาษาไพทอนสำหรับประมวลผลภาษาธรรมชาติ โดยเน้นภาษาไทย ดูรายละเอียดภาษาไทยเพิ่มเติมด้านล่าง
News
We are conducting a 2-minute survey to know more about your experience using the library and your expectations regarding what the library should be able to do. Take part in this survey: https://forms.gle/aLdSHnvkNuK5CFyt9
- The latest stable release is 2.1.4. See 2.1 change log.
- For latest development, see
devbranch. See ongoing 2.2 development change log.
Using PyThaiNLP:
- PyThaiNLP Get Started
- More tutorials at https://www.thainlp.org/pythainlp/tutorials/
- See full documentation at https://thainlp.org/pythainlp/docs/2.1/
- Some additional data (like word lists and language models) maybe automatically downloaded by the library during runtime and it will be kept under the directory
~/pythainlp-databy default.- The data location can be changed, using
PYTHAINLP_DATA_DIRenvironment variable.
- The data location can be changed, using
- For PyThaiNLP tokenization performance and measurement methods, see tokenization benchmark
- ? follow our PyThaiNLP Facebook page
Capabilities
- Convenient character and word classes, like Thai consonants (
pythainlp.thai_consonants), vowels (pythainlp.thai_vowels), digits (pythainlp.thai_digits), and stop words (pythainlp.corpus.thai_stopwords) -- comparable to constants likestring.letters,string.digits, andstring.punctuation - Thai word segmentation (
word_tokenize), including subword segmentation based on Thai Character Cluster (subword_tokenize) - Thai transliteration (
transliterate) - Thai part-of-speech taggers (
pos_tag) - Read out number to Thai words (
bahttext,num_to_thaiword) - Thai collation (sort by dictionoary order) (
collate) - Thai-English keyboard misswitched fix (
eng_to_thai,thai_to_eng) - Thai spelling suggestion and correction (
spellandcorrect) - Thai soundex (
soundex) with three engines (lk82,udom83,metasound) - and much more - see examples in tutorials.
Installation
PyThaiNLP uses PyPI as its main distribution channel, see https://pypi.org/project/pythainlp/
Stable release
pip install pythainlp
Development pre-release
pip install --upgrade --pre pythainlp
Fresh from dev branch
pip install https://github.com/PyThaiNLP/pythainlp/archive/dev.zip
Install options
For some functionalities, like named-entity recognition, extra packages may be needed. Install them with these install options:
pip install pythainlp[extra1,extra2,...]
where extras can be
attacut(to support attacut, a fast and accurate tokenizer)benchmarks(for word tokenization benchmarking)icu(for ICU, International Components for Unicode, support in transliteration and tokenization)ipa(for IPA, International Phonetic Alphabet, support in transliteration)ml(to support ULMFiT models for classification)ner(for named-entity recognizer)thai2fit(for Thai word vector)thai2rom(for machine-learnt romanization)full(install everything)
For dependency details, look at extras variable in setup.py.
Python 2 Users
- PyThaiNLP 2 supports Python 3.6+. Some functions may work with older version of Python 3, but it is not well-tested and will not be supported. See 1.7 -> 2.0 change log.
- Python 2.7 users can use PyThaiNLP 1.6
Contribute to PyThaiNLP
- Please do fork and create a pull request :)
- For style guide and other information, including references to algorithms we use, please refer to our contributing page.
- PyThaiNLP code uses Apache Software License 2.0
- Corpus data created by PyThaiNLP project use Creative Commons Attribution-ShareAlike 4.0 International License
- For other corpus that may included with PyThaiNLP distribution, please refer to Corpus License.
Made with ❤️
PyThaiNLP Team
"We build Thai NLP"
ภาษาไทย
PyThaiNLP เป็นไลบารีภาษาไพทอนสำหรับประมวลผลภาษาธรรมชาติ โดยเน้นภาษาไทย แจกจ่ายฟรี (ตลอดไป) เพื่อคนไทยและชาวโลกทุกคน!
เพราะโลกขับเคลื่อนต่อไปด้วยการแบ่งปัน
ข่าวสาร
สวัสดีค่ะ ทีมพัฒนา PyThaiNLP ขอสอบถามความคิดเห็นของผู้ใช้งาน PyThaiNLP หรือผู้ที่ทำงานในด้านการประมวลผลภาษาไทย เพื่อนำข้อมูลไปปรับปรุงและพัฒนาฟีเจอร์ใหม่ๆ ให้ตรงกับความต้องการใช้งานมากขึ้น สามารถตอบแบบสอบถามได้ที่ https://forms.gle/aLdSHnvkNuK5CFyt9 (ใช้เวลาประมาณ 2-5 นาที)
- รุ่นเสถียรล่าสุดคือรุ่น 2.1.4
- PyThaiNLP 2 รองรับ Python 3.6 ขึ้นไป
- ผู้ใช้ Python 2.7+ ยังสามารถใช้ PyThaiNLP 1.6 ได้
- ? ติดตามข่าวสารได้ที่ Facebook PyThaiNLP
ใช้งาน PyThaiNLP:
- เริ่มต้นใช้งาน PyThaiNLP
- สอนการใช้งานเพิ่มเติม ในรูปแบบ notebook https://www.thainlp.org/pythainlp/tutorials/
- เอกสารตัวเต็ม https://thainlp.org/pythainlp/docs/2.1/
- ระหว่างการทำงาน PyThaiNLP อาจดาวน์โหลดข้อมูลเพิ่มเติม เช่น ตัวแบบภาษา และรายการคำ ข้อมูลเหล่านี้จะถูกเก็บไว้ที่ไดเรกทอรี
~/pythainlp-dataเป็นตำแหน่งมาตรฐาน- ตำแหน่งเก็บข้อมูลนี้สามารถกำหนดเองได้ โดยการเปลี่ยนแปลงตัวแปรสิ่งแวดล้อม
PYTHAINLP_DATA_DIRของระบบปฏิบัติการ
- ตำแหน่งเก็บข้อมูลนี้สามารถกำหนดเองได้ โดยการเปลี่ยนแปลงตัวแปรสิ่งแวดล้อม
ความสามารถ
- ชุดค่าคงที่ตัวอักษระและคำไทยที่เรียกใช้ได้สะดวก เช่น พยัญชนะ (
pythainlp.thai_consonants), สระ (pythainlp.thai_vowels), ตัวเลขไทย (pythainlp.thai_digits), และ stop word (pythainlp.corpus.thai_stopwords) -- เหมือนกับค่าคงที่อย่างstring.letters,string.digits, และstring.punctuation - ตัดคำภาษาไทย (
word_tokenize) และรองรับการตัดระดับต่ำกว่าคำโดยใช้ Thai Character Clusters (subword_tokenize) - ถอดเสียงภาษาไทยเป็นอักษรละตินและสัทอักษร (
transliterate) - ระบุชนิดคำ (part-of-speech) ภาษาไทย (
pos_tag) - อ่านตัวเลขเป็นข้อความภาษาไทย (
bahttext,num_to_thaiword) - เรียงลำดับคำตามพจนานุกรมไทย (
collate) - แก้ไขปัญหาการพิมพ์ลืมเปลี่ยนภาษา (
eng_to_thai,thai_to_eng) - ตรวจคำสะกดผิดในภาษาไทย (
spell,correct) - soundex ภาษาไทย (
soundex) 3 วิธีการ (lk82,udom83,metasound) - และอื่น ๆ ดูตัวอย่างได้ใน tutorials สอนวิธีใช้งาน
ติดตั้ง
รุ่นเสถียร
pip install pythainlp
รุ่นก่อนเผยแพร่ (pre-release)
pip install --upgrade --pre pythainlp
รุ่นกำลังพัฒนา (dev branch)
pip install https://github.com/PyThaiNLP/pythainlp/archive/dev.zip
การติดตั้งความสามารถเพิ่มเติม
สำหรับความสามารถบางอย่าง เช่น การชื่อเฉพาะ (named-entity) จำเป็นต้องติดตั้งแพคเกจเสริม ด้วยการระบุออปชันตอน pip install:
pip install pythainlp[extra1,extra2,...]
โดยที่ extras คือ
attacut(ตัวตัดคำที่แม่นกว่าnewmmเมื่อเทียบกับชุดข้อมูล BEST)benchmarks(สำหรับเครื่องมือวัดความแม่นยำของตัวตัดคำ)icu(สำหรับการถอดตัวสะกดเป็นสัทอักษรและการตัดคำด้วย ICU)ipa(สำหรับการถอดตัวสะกดเป็นสัทอักษรสากล (IPA))ml(สำหรับการรองรับโมเดล ULMFiT)ner(สำหรับการติดป้ายชื่อเฉพาะ (named-entity))thai2fit(สำหรับ word vector)thai2rom(สำหรับการถอดตัวสะกดเป็นอักษรละติน)full(ติดตั้งทุกอย่าง)
รายละเอียดของแพคเกจเสริมดูได้ในตัวแปรชื่อ extras ใน setup.py
สนับสนุนและร่วมพัฒนา
- คุณสามารถร่วมพัฒนาโครงการนี้ได้ โดยการ fork และส่ง pull request กลับมา
- โค้ด PyThaiNLP ใช้สัญญาอนุญาต Apache Software License 2.0
- คลังคำและข้อมูลที่สร้างโดยโครงการ PyThaiNLP ใช้สัญญาอนุญาตครีเอทีฟคอมมอนส์แบบแสดงที่มา-อนุญาตแบบเดียวกัน 4.0 Creative Commons Attribution-ShareAlike 4.0 International License
- คลังคำและข้อมูลอื่นๆ ที่แจกจ่ายไปพร้อมกับแพคเกจ PyThaiNLP อาจใช้สัญญาอนุญาตอื่น โปรดดูเอกสาร Corpus License
- ตราสัญลักษณ์ออกแบบโดยคุณ วรุตม์ พสุธาดล จากการประกวดที่ในกลุ่มเฟซบุ๊ก 1 2
สร้างด้วย ❤️
ทีม PyThaiNLP
"พวกเราสร้าง Thai NLP"