PyThaiNLP เป็นไลบารีภาษาไพทอนสำหรับประมวลผลภาษาธรรมชาติ โดยเน้นภาษาไทย
pip install pythainlp
คุณสามารถพูดคุยหรือแชทกับทีม PyThaiNLP หรือผู้สนับสนุนคนอื่น ๆ ได้ที่
รุ่น | คำอธิบาย | สถานะ |
---|---|---|
5.0.4 | Stable | Change Log |
dev |
Release Candidate for 5.1 | Change Log |
ติดตามพวกเราบน PyThaiNLP Facebook page เพื่อรับข่าวสารเพิ่มเติม
พวกเราได้จัดทำ PyThaiNLP Get Started Tutorial สำหรับสำรวจความสามารถของ PyThaiNLP; พวกเรามีเอกสารสอนใช้งาน สามารถศึกษาได้ที่ หน้า tutorial.
อ่านเอกสารล่าสุดได้ที่ https://pythainlp.org/docs.
พวกเราพยายามทำให้โมดูลใช้งานได้ง่ายที่สุดเท่าที่จะเป็นไปได้; ตัวอย่างเช่น บางชุดข้อมูล (เช่น รายการคำและตัวแบบภาษา) จะถูกดาวน์โหลดอัตโนมัติเมื่อมีการเรียกใช้งาน โดย PyThaiNLP จะจัดเก็บข้อมูลเหล่านั้นไว้ในโฟลเดอร์ ~/pythainlp-data
เป็นค่าเริ่มต้น แต่ผู้ใช้งานสามารถระบุตำแหน่งที่ต้องการได้เองผ่านค่า environment variable PYTHAINLP_DATA_DIR
อ่านรายละเอียดคลังข้อมูลเพิ่มเติมได้ที่ PyThaiNLP/pythainlp-corpus.
PyThaiNLP มีความสามารถพื้นฐานสำหรับการประมวลผลภาษาไทย ตัวอย่างเช่นการกำกับหน้าที่ของคำ (part-of-speech tagging) การแบ่งหน่วยของข้อความตามหลักภาษาศาสตร์ (พยางค์ คำ และประโยค) บางความสามารถสามารถใช้งานได้ผ่านทางคอมมานด์ไลน์
รายการความสามารถ
- ชุดตัวอักขระและคำภาษาไทยที่เรียกใช้ได้สะดวก เช่น พยัญชนะ (
pythainlp.thai_consonants
), สระ (pythainlp.thai_vowels
), ตัวเลข (pythainlp.thai_digits
), และคำหยุด (stop word) (pythainlp.corpus.thai_stopwords
) -- ซึ่งเทียบได้กับค่าคงที่มาตรฐานในไพทอนอย่างstring.letters
,string.digits
, และstring.punctuation
- Thai linguistic unit segmentation/tokenization, including sentence (
sent_tokenize
), word (word_tokenize
), and subword segmentations based on Thai Character Cluster (subword_tokenize
) - Thai part-of-speech taggers (
pos_tag
) - Thai spelling suggestion and correction (
spell
andcorrect
) - Thai transliteration (
transliterate
) - Thai soundex (
soundex
) with three engines (lk82
,udom83
,metasound
) - Thai collation (sort by dictionoary order) (
collate
) - Read out number to Thai words (
bahttext
,num_to_thaiword
) - Thai datetime formatting (
thai_strftime
) - Thai-English keyboard misswitched fix (
eng_to_thai
,thai_to_eng
) - Command-line interface for basic functions, like tokenization and pos tagging (run
thainlp
in your shell)
อ่านรายละเอียดได้ที่ tutorials
pip install --upgrade pythainlp
วิธีดังกล่าวเป็นการติดตั้งรุ่นเสถียรของ PyThaiNLP PyThaiNLP ใช้ pip สำหรับจัดการโมดูลและใช้ PyPI เป็นช่องทางหลักในการแจกจ่ายโมดูล อ่านรายละเอียดได้ที่ https://pypi.org/project/pythainlp/
ความแตกต่างในแต่ละรุ่น:
- รุ่นเสถียร:
pip install --upgrade pythainlp
- รุ่นก่อนเสถียร (near ready):
pip install --upgrade --pre pythainlp
- รุ่นที่กำลังพัฒนา (likely to break things):
pip install https://github.com/PyThaiNLP/pythainlp/archive/dev.zip
บางความสามารถ เช่น Thai WordNet ต้องการโมดูลภายนอกในการทำงานนอกจาก PyThaiNLP ซึ่งในตอนติดตั้ง คุณจะต้องติดตั้งส่วนขยายพิเศษที่จำเป็นหรือ "extras" โดยระบุชื่อลงใน [name]
ต่อท้าย pythainlp
:
pip install pythainlp[extra1,extra2,...]
รายการสำหรับติดตั้งผ่าน extras
full
(ติดตั้งทุกอย่าง)compact
(ติดตั้งไลบารีชุดเล็กที่ทดสอบแล้วว่าไม่ตีกันเองและติดตั้งได้ในทุกระบบปฏิบัติการ)attacut
(เพื่อสนับสนุน attacut ซึ่งเป็นตัวตัดคำที่ทำงานได้รวดเร็วและมีประสิทธิภาพ)benchmarks
(สำหรับ word tokenization benchmarking)icu
(สำหรับการรองรับ ICU หรือ International Components for Unicode ในการถอดเสียงเป็นอักษรและการตัดแบ่งคำ)ipa
(สำหรับการรองรับ IPA หรือ International Phonetic Alphabet ในการถอดเสียงเป็นอักษร)ml
(เพื่อให้สนับสนุนตัวแบบภาษา ULMFiT สำหรับการจำแนกข้อความ)thai2fit
(สำหรับ Thai word vector)thai2rom
(สำหรับการถอดอักษรไทยเป็นอักษรโรมัน)wordnet
(สำหรับ Thai WordNet API)
สำหรับโมดูลที่ต้องการ สามารถดูรายละเอียดได้ที่ตัวแปร extras
ใน setup.py
.
บางความสามารถของ PyThaiNLP สามารถใช้งานผ่าน command line ได้โดยใช้ thainlp
ตัวอย่าง, แสดงรายละเอียดของชุดข้อมูล:
thainlp data catalog
แสดงวิธีใช้งาน:
thainlp help
- PyThaiNLP สนับสนุน Python 3.7 ขึ้นไป บางความสามารถ สามารถใช้งานกับ Python 3 รุ่นก่อนหน้าได้ แต่ไม่ได้มีการทดสอบว่าใช้งานได้หรือไม่ อ่านเพิ่มเติม 1.7 -> 2.0 change log.
- ผู้ใช้งาน Python 2.7 สามารถใช้งาน PyThaiNLP 1.6
หากคุณใช้ซอฟต์แวร์ 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. http://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.",
}
- กรุณา fork แล้วพัฒนาต่อ จากนั้นสร้าง pull request กลับมา :)
- สำหรับเอกสารแนะนำและอื่น ๆ รวมถึงการอ้างอิงขั้นตอนที่เราใช้งาน สามารถเข้าไปศึกษาเพิ่มเติมได้ที่หน้า contributing
คุณสามารถอ่านได้ที่ INTHEWILD.md
สัญญาอนุญาต | |
---|---|
ต้นรหัสซอร์สโค้ดและโน๊ตบุ๊กของ PyThaiNLP | Apache Software License 2.0 |
ฐานข้อมูลภาษา ชุดข้อมูล และเอกสารที่สร้างโดยโครงการ PyThaiNLP | Creative Commons Zero 1.0 Universal Public Domain Dedication License (CC0) |
Language models created by PyThaiNLP | Creative Commons Attribution 4.0 International Public License (CC-by) |
สำหรับฐานข้อมูลภาษาและโมเดลอื่นที่อาจมาพร้อมกับซอฟต์แวร์ PyThaiNLP | ดู Corpus License |
สำหรับรายละเอียดทางเทคนิค ข้อควรระวัง และข้อคำนึงทางจริยธรรมของตัวแบบ (โมเดล) ที่ใช้ใน PyThaiNLP กรุณาดูที่ Model cards
ตั้งแต่ปี 2562 การสมทบพัฒนา PyThaiNLP โดย กรกฎ เชาวะวณิช และ ลลิตา โล่พันธุ์ศิริกุล สนับสนุนโดย VISTEC-depa Thailand Artificial Intelligence Research Institute