🧤Thai Natural Language Processing with Python

circle-info

หลายคนคงเคยได้ยินการนำ Machine Learning มาใช้ในการทำ Text Analysis, Text Mining และ Text Analytics ซึ่งจะใช้ Natural Language Processing ( NLP ) ในการเรียนรู้ภาษาของมนุษย์ มาใช้กับงานประเภท Speech-to-Text, Text-to-Speech, Speech Recognition, Text Categorization, Text Generation, Machine Translation, Question Answering นอกจากนี้ยังสามารถนำมาใช้ในการวิเคราะห์อารมณ์ Text Sentiment ได้อีกด้วย

Thai NLP

chevron-rightCorpus ( corpus )hashtag

เป็นฐานข้อมูลภาษาไทยที่มีการแยกเป็นหมวดหมู่ไว้ โดยจะทำการดาวน์โหลด Corpusarrow-up-right ที่พร้อมใช้งานแล้ว ซึ่งเราสามารถทำการเรียกใช้งานพร้อมทั้ง Return ค่าในลักษณะของ frozenset

chevron-rightSoundex ( soundex )hashtag

เป็นวิธีการที่ใช้ในการทำ Word Similarity Matchingarrow-up-right สำหรับหาคำที่ออกเสียงคล้ายกันระหว่างคำ 2 คำด้วย Soundex Algorithm จากเสียงพูดของมนุษย์ Phonetic Type 6 แบบ ซึ่งเป็นส่วนหนึ่งของการทำ Text Analysis

chevron-rightSpelling ( spell )hashtag

เป็นวิธีการที่ใช้ในการทำ Spelling Correctionarrow-up-right สำหรับตรวจสอบคำสะกดในภาษาไทย โดยมีความแม่นยำ Accuracy อยู่ที่ 80-90 และมีความเร็วในการประมวลผลอยู่ที่ 10 Word / Second

chevron-rightSummarization ( summarize )hashtag

เป็นวิธีการที่ใช้ในการทำ Text Summarizationarrow-up-right สำหรับนับจำนวนคำ โดยทำการแปลงข้อความที่อยู่ในลักษณะ Paragraph ให้อยูในลักษณะ Sentence แล้วใช้วิธีการตัดคำ Word Tokenization เพื่อทำการหา Frequency ของ Word

chevron-rightPart-of-Speech ( tag )hashtag

เป็นวิธีการที่ใช้ในการทำ POS Taggingarrow-up-right สำหรับกำหนดประเภทของคำใน Sentence ในลักษณะของ Word Class หรือ Lexical Category โดยสามารถนำไปใช้ในการหา Custom Keyword ของ Sentence ซึ่งประกอบไปด้วย Engine ได้แก่ perceptron ( default ), unigram และ artagger

chevron-rightTokenization ( tokenize )hashtag

เป็นวิธีการที่ใช้ในการทำ Word Tokenizationarrow-up-right สำหรับการตัดคำจาก Sentence ซึ่งประกอบไปด้วย Engine ได้แก่ newmm ( default ), longest, multi_cut, pyicu, deepcut, tcc และ etcc

chevron-rightTransliteration ( transliterate )hashtag

เป็นวิธีการที่ใช้ในการทำ Romanization, Transliteration, and Transcriptionarrow-up-right ถอดเสียงภาษาไทยเป็นตัวอักษรละติน ซึ่งประกอบไปด้วย Engine ได้แก่ royin ( default ) และ thai2rom

chevron-rightULMFit ( ulmfit )hashtag

เป็นวิธีการที่ใช้ในการทำ Transfer Learningarrow-up-right สำหรับหาค่าเฉลี่ยของ Vocab ที่ไม่ได้อยู่ใน Pretrained Vocab ด้วยเทคนิค Universal Language Model Fine-tuning for Text Classification ซึ่งจะช่วยลดความผิดพลาดได้ถึง 18-24%

chevron-rightWord Vector ( word_vector )hashtag

เป็นวิธีการที่ใช้ในการทำ Word Embeddingarrow-up-right แปลงข้อความเป็นตัวเลขในลักษณะของ Vector สำหรับหาคำที่มีความสัมพันธ์คล้ายกันระหว่างคำ 2 คำด้วยการ Multiplication Combination Objective ซึ่งได้มาจากผลคูณด้วยวิธี Omer Levy & Yoav Goldberg ซึ่งจะได้ List of Word ที่แบ่ง Label ออกเป็น Positive และ Negative โดยสามารถนำไปประยุกต์ใช้ในการหาว่าคำใดไม่เข้าพวก

Tokenization Engine

circle-check

Get Started

  • ทำการสร้าง Virtual Environment

  • ทำการติดตั้ง Package

  • ทำการสร้างไฟล์ thai_nlp.py

  • ทำการรัน thai_nlp.py

  • จะแสดงผลลัพธ์ของการตัดคำ Word Tokenization

อ่านเพิ่มเติม : https://bit.ly/2mQIeouarrow-up-right, https://bit.ly/2nJyP2harrow-up-right, https://bit.ly/2pf9UnNarrow-up-right, https://bit.ly/2mQqr0yarrow-up-right

Last updated