pythainlp.org | วิธีใช้งาน | ข้อมูลสัญญาอนุญาต | ใบข้อมูลโมเดล | ใครใช้ PyThaiNLP บ้าง | English README
PyThaiNLP ถูกออกแบบให้เป็นเครื่องมือมาตรฐานสำหรับการวิเคราะห์ภาษาศาสตร์ภาษาไทย ภายใต้สัญญาอนุญาต Apache-2.0 โดยข้อมูลและโมเดลอยู่ภายใต้ CC0-1.0 และ CC-BY-4.0
pip install pythainlp| รุ่น | รุ่นของ Python | มีอะไรเปลี่ยน | เอกสาร |
|---|---|---|---|
| 5.3.4 | 3.9+ | Log | pythainlp.org/docs |
dev |
3.9+ | Log | pythainlp.org/dev-docs |
-
วิเคราะห์หน่วยทางภาษา: การแบ่งประโยค คำ และหน่วยคำย่อย (
sent_tokenize,word_tokenize,subword_tokenize) -
กำกับหน้าที่ของคำ: part-of-speech tagging (
pos_tag) -
ถอดอักษร: การถ่ายเสียงเป็นอักษรโรมัน (
transliterate) และการแปลงเป็น IPA -
ตรวจตัวสะกด: การแนะนำและแก้ไขการสะกด (
spell,correct) -
เครื่องมือเสริม: soundex, การเรียงลำดับ, แปลงตัวเลขเป็นข้อความ (
bahttext), การจัดรูปแบบวันที่ (thai_strftime), และแก้ไขการสลับแป้นพิมพ์ -
คลังภาษา: ชุดตัวอักษรไทย, รายการคำ, และคำหยุด (stop words)
-
CLI: ใช้งานทาง command line ด้วย
thainlpthainlp data catalog # แสดงรายการชุดข้อมูล thainlp help # แสดงวิธีใช้งาน
การติดตั้งพร้อม extras เฉพาะ (เช่น translate, wordnet, full):
pip install "pythainlp[extra1,extra2,...]"extras ที่ใช้ได้:
รายการสำหรับติดตั้งผ่าน extras
compact— ติดตั้งชุดย่อยที่เสถียรและเล็ก (แนะนำ)full— ติดตั้ง dependencies ทั้งหมด (อาจเกิดความขัดแย้ง)abbreviation— เครื่องมือขยายคำย่อattacut— รองรับ AttaCut (ตัวตัดคำที่รวดเร็วและแม่นยำ)budoux— รองรับการแบ่งข้อความด้วย BudouXbenchmarks— รองรับการรันเบนช์มาร์กcoreference_resolution— รองรับการแก้ไขการอ้างอิงร่วมdependency_parsing— รองรับการวิเคราะห์โครงสร้างประโยคel— รองรับการเชื่อมโยงเอนทิตีesupar— รองรับ ESuPAR parsergenerate— รองรับการสร้างข้อความicu— รองรับ ICU (International Components for Unicode) ใช้ในการถอดอักษรและการตัดคำipa— รองรับ IPA (International Phonetic Alphabet) ในการถอดอักษรml— รองรับโมเดล ULMFiT ที่ใช้ในการจำแนกประเภทmt5— โมเดล mT5 สำหรับการสรุปข้อความภาษาไทยnlpo3— รองรับการตัดคำภาษาไทยด้วย nlpo3onnx— รองรับโมเดล ONNXoskut— รองรับ OSKUTsefr_cut— รองรับการตัดคำภาษาไทยด้วย SEFR CUTspacy_thai— รองรับภาษาไทยใน spaCyspell— รองรับตัวตรวจการสะกดเพิ่มเติม (phunspell & symspellpy)ssg— รองรับตัวตัดพยางค์ SSGtextaugment— เครื่องมือเสริมข้อความthai_nner— รองรับการจดจำเอนทิตีชื่อภาษาไทยthai2fit— เวกเตอร์คำภาษาไทย (thai2fit)thai2rom— การถอดอักษรด้วยแมชชีนเลิร์นนิงtransformers_ud— รองรับ Universal Dependencies ด้วย transformerstranslate— รองรับการแปลภาษาด้วยแมชชีนwangchanberta— โมเดล WangchanBERTawangchanglm— รองรับโมเดล WangchanGLMword_approximation— รองรับการประมาณคำwordnet— รองรับ WordNetwsd— รองรับการแก้ความกำกวมของความหมายคำ (pythainlp.wsd)wtp— รองรับการแบ่งข้อความด้วย Where's the Pointwunsen— รองรับตัวตรวจการสะกด Wunsen
สำหรับรายละเอียด dependencies
สามารถดูได้ที่ส่วน [project.optional-dependencies] ใน
pyproject.toml
| ตัวแปร | คำอธิบาย | สถานะ |
|---|---|---|
PYTHAINLP_DATA |
พาธของไดเรกทอรีข้อมูล (ค่าเริ่มต้น: ~/pythainlp-data) |
ปัจจุบัน |
PYTHAINLP_DATA_DIR |
ชื่อเดิมของ PYTHAINLP_DATA แสดง DeprecationWarning และหากตั้งค่าทั้งสองพร้อมกันจะเกิด ValueError |
เลิกใช้แล้ว; ใช้ PYTHAINLP_DATA แทน |
PYTHAINLP_OFFLINE |
ตั้งเป็น 1 เพื่อปิดการดาวน์โหลดคลังภาษาอัตโนมัติ การเรียก download() โดยตรงยังคงใช้งานได้ |
ปัจจุบัน |
PYTHAINLP_READ_ONLY |
ตั้งเป็น 1 เพื่อเปิดโหมดอ่านอย่างเดียว ป้องกันการเขียนในฉากหลังที่ผู้ใช้อาจไม่ทราบ (ดาวน์โหลดคลังภาษา, ปรับปรุงแค็ตตาล็อก, สร้างไดเรกทอรี) การบันทึกแฟ้มที่ผู้ใช้ระบุเองไม่ได้รับผลกระทบ |
ปัจจุบัน |
PYTHAINLP_READ_MODE |
ชื่อเดิมของ PYTHAINLP_READ_ONLY แสดง DeprecationWarning และหากตั้งค่าทั้งสองพร้อมกันจะเกิด ValueError |
เลิกใช้แล้ว; ใช้ PYTHAINLP_READ_ONLY แทน |
PyThaiNLP ดาวน์โหลดข้อมูล (ดูแค็ตตาล็อกข้อมูล db.json ที่
pythainlp-corpus)
ไปที่ ~/pythainlp-data ตามค่าเริ่มต้น
ตั้งค่า environment variable PYTHAINLP_DATA เพื่อเปลี่ยนตำแหน่งนี้
(PYTHAINLP_DATA_DIR ยังคงใช้ได้ แต่จะเลิกใช้ในอนาคต)
เมื่อใช้ PyThaiNLP ในสภาพแวดล้อมการคำนวณแบบกระจาย
(เช่น Apache Spark) ให้ตั้งค่า environment variable PYTHAINLP_DATA
ภายในฟังก์ชันที่จะถูกกระจายไปยัง worker nodes
ดูรายละเอียดในเอกสาร
ตั้งค่า PYTHAINLP_OFFLINE=1 เพื่อปิดการดาวน์โหลดคลังภาษาหรือโมเดลภาษา อัตโนมัติ
เมื่อตั้งค่าตัวแปรนี้และไม่มีแฟ้มในเครื่อง จะเกิด FileNotFoundError
แทนที่จะพยายามดาวน์โหลดจากเครือข่าย
การเรียก pythainlp.corpus.download() โดยตรงยังคงทำงานได้ตามปกติ
ใช้ pythainlp.is_offline_mode() เพื่อตรวจสอบสถานะปัจจุบันในโค้ด
import pythainlp
print(pythainlp.is_offline_mode()) # True ถ้า PYTHAINLP_OFFLINE=1ตั้งค่า PYTHAINLP_READ_ONLY=1 เพื่อป้องกันการเขียนในฉากหลังที่เกิดขึ้นโดยอัตโนมัติ
ในไดเรกทอรีข้อมูลภายในของ PyThaiNLP ได้แก่ การดาวน์โหลดคลังภาษา, การปรับปรุงแค็ตตาล็อก
และการสร้างไดเรกทอรีข้อมูล — การเขียนเหล่านี้เกิดขึ้นเป็นผลข้างเคียงที่ผู้ใช้อาจไม่ทราบ
การดำเนินการที่ผู้ใช้ระบุ path เอาไว้อย่างชัดเจนจะไม่ได้รับผลกระทบ
เช่น model.save("path"), tagger.train(..., save_loc="path"),
thainlp misspell --output myfile.txt
ใช้ pythainlp.is_read_only_mode() เพื่อตรวจสอบสถานะปัจจุบันในโค้ด
import pythainlp
print(pythainlp.is_read_only_mode()) # True ถ้า PYTHAINLP_READ_ONLY=1เราทดสอบฟังก์ชันหลักบน Python ทุกเวอร์ชันที่รองรับอย่างเป็นทางการ
ดู tests/README.md สำหรับ test matrix และรายละเอียดอื่น ๆ
กรุณา fork และสร้าง pull request ดู CONTRIBUTING.md สำหรับแนวทางและการอ้างอิงอัลกอริทึม
หากคุณใช้ซอฟต์แวร์ PyThaiNLP ในโครงงานหรืองานวิจัยของคุณ คุณสามารถอ้างอิงได้ตามนี้:
Phatthiyaphaibun, Wannaphong, Korakot Chaovavanich, Charin Polpanumas, Arthit Suriyawongkul, Lalita Lowphansirikul, and Pattarawat Chormai. “PyThaiNLP: Thai Natural Language Processing in Python”. Zenodo, 2 June 2024. https://doi.org/10.5281/zenodo.3519354.
โดยใช้รายการ BibTeX นี้:
@software{pythainlp,
title = "{P}y{T}hai{NLP}: {T}hai Natural Language Processing in {P}ython",
author = "Phatthiyaphaibun, Wannaphong and
Chaovavanich, Korakot and
Polpanumas, Charin and
Suriyawongkul, Arthit and
Lowphansirikul, Lalita and
Chormai, Pattarawat",
doi = {10.5281/zenodo.3519354},
license = {Apache-2.0},
month = jun,
url = {https://github.com/PyThaiNLP/pythainlp/},
version = {v5.0.4},
year = {2024},
}หากคุณอ้างอิงงานวิจัยของเราในงานประชุมวิชาการ NLP-OSS 2023 คุณสามารถอ้างอิงได้ตามนี้:
Wannaphong Phatthiyaphaibun, Korakot Chaovavanich, Charin Polpanumas, Arthit Suriyawongkul, Lalita Lowphansirikul, Pattarawat Chormai, Peerat Limkonchotiwat, Thanathip Suntorntip, and Can Udomcharoenchaikit. 2023. PyThaiNLP: Thai Natural Language Processing in Python. In Proceedings of the 3rd Workshop for Natural Language Processing Open Source Software (NLP-OSS 2023), pages 25–36, Singapore, Singapore. Empirical Methods in Natural Language Processing.
โดยใช้รายการ BibTeX นี้:
@inproceedings{phatthiyaphaibun-etal-2023-pythainlp,
title = "{P}y{T}hai{NLP}: {T}hai Natural Language Processing in Python",
author = "Phatthiyaphaibun, Wannaphong and
Chaovavanich, Korakot and
Polpanumas, Charin and
Suriyawongkul, Arthit and
Lowphansirikul, Lalita and
Chormai, Pattarawat and
Limkonchotiwat, Peerat and
Suntorntip, Thanathip and
Udomcharoenchaikit, Can",
editor = "Tan, Liling and
Milajevs, Dmitrijs and
Chauhan, Geeticka and
Gwinnup, Jeremy and
Rippeth, Elijah",
booktitle = "Proceedings of the 3rd Workshop for Natural Language Processing Open Source Software (NLP-OSS 2023)",
month = dec,
year = "2023",
address = "Singapore, Singapore",
publisher = "Empirical Methods in Natural Language Processing",
url = "https://aclanthology.org/2023.nlposs-1.4",
pages = "25--36",
abstract = "We present PyThaiNLP, a free and open-source natural language processing (NLP) library for Thai language implemented in Python. It provides a wide range of software, models, and datasets for Thai language. We first provide a brief historical context of tools for Thai language prior to the development of PyThaiNLP. We then outline the functionalities it provided as well as datasets and pre-trained language models. We later summarize its development milestones and discuss our experience during its development. We conclude by demonstrating how industrial and research communities utilize PyThaiNLP in their work. The library is freely available at https://github.com/pythainlp/pythainlp.",
}| เนื้อหา | สัญญาอนุญาต |
|---|---|
| ซอร์สโค้ดและโน๊ตบุ๊กของ PyThaiNLP | Apache Software License 2.0 |
| คลังข้อมูล ชุดข้อมูล และเอกสารที่สร้างโดยโครงการ PyThaiNLP | Creative Commons Zero 1.0 Universal Public Domain Dedication License (CC0) |
| โมเดลภาษาที่สร้างโดยโครงการ PyThaiNLP | Creative Commons Attribution 4.0 International Public License (CC-BY) |
| คลังข้อมูลและโมเดลอื่น ๆ ที่อาจมาพร้อมกับ PyThaiNLP | ดู Corpus License |
โครงการ PyThaiNLP ก่อตั้งโดย วรรณพงษ์ ภัททิยไพบูลย์ ในปี พ.ศ. 2559 การพัฒนาในโครงการ PyThaiNLP ของวรรณพงษ์ ตั้งแต่ปี พ.ศ. 2564 เกิดขึ้นระหว่างการสนับสนุนทุนการศึกษาระดับปริญญาเอกโดย สถาบันวิทยสิริเมธี (VISTEC)
การพัฒนาในโครงการ PyThaiNLP ของ อาทิตย์ สุริยะวงศ์กุล ตั้งแต่พฤศจิกายน พ.ศ. 2560 ถึงสิงหาคม พ.ศ. 2562 สนับสนุนโดยบริษัท Wisesight และตั้งแต่เดือนพฤศจิกายน พ.ศ. 2562 ถึงตุลาคม พ.ศ. 2566 เกิดขึ้นระหว่างการสนับสนุนทุนการศึกษาระดับปริญญาเอกโดย Taighde Éireann – Research Ireland ภายใต้เลขที่ทุน 18/CRT/6224 (Research Ireland Centre for Research Training in Digitally-Enhanced Reality (d-real))
การพัฒนาในโครงการ PyThaiNLP ของ ภัทรวัต ช่อไม้ ตั้งแต่ปี พ.ศ. 2561 ถึง พ.ศ. 2562 เกิดขึ้นระหว่างการเป็นนักวิจัย ณ ห้องปฏิบัติการประมวลผลภาษาธรรมชาติ ภาควิชาภาษาศาสตร์ คณะอักษรศาสตร์ จุฬาลงกรณ์มหาวิทยาลัย
การพัฒนาในโครงการ PyThaiNLP ของ กรกฎ เชาวะวณิช และ ลลิตา โล่พันธุ์ศิริกุล ตั้งแต่ปี พ.ศ. 2562 ถึง พ.ศ. 2565 สนับสนุนโดย สถาบันวิจัยปัญญาประดิษฐ์ประเทศไทย (VISTEC-depa Thailand AI Research Institute)
เครื่อง Mac Mini M1 ที่ใช้สำหรับการทดสอบระบบบน macOS บริจาคโดย MacStadium ฮาร์ดแวร์นี้ช่วยให้การทดสอบซอฟต์แวร์ของโครงการเป็นไปอย่างครบถ้วนมากขึ้น ระหว่างเดือนตุลาคม พ.ศ. 2565 ถึงตุลาคม พ.ศ. 2566 ซึ่งเป็นช่วงก่อนที่ GitHub Actions จะรองรับ Apple Silicon อย่างเป็นทางการ
เรามีที่เก็บข้อมูลอย่างเป็นทางการที่เดียวที่ https://github.com/PyThaiNLP/pythainlp และมีที่เก็บสำเนาอีกแห่งที่ https://gitlab.com/pythainlp/pythainlp.
โปรดระมัดระวังซอฟต์แวร์ประสงค์ร้ายหรือมัลแวร์ ถ้าคุณใช้โค้ดจากที่เก็บข้อมูลอื่นนอกเหนือจาก 2 แหล่งนี้
สร้างด้วย ❤️ | ทีม PyThaiNLP 💻 | "เราสร้างการประมวลผลภาษาไทย" 🇹🇭

