ความรู้เบื้องต้นแบบกว้าง ๆ เกี่ยวกับ Natural Language Processing (NLP)

Nuttapong Suptawepong
Super AI Engineer
Published in
2 min readJan 8, 2021

สวัสดีครับ ผมชื่อนายณัฐพงษ์ ทรัพย์ทวีพงศ์ เป็นผู้เข้าร่วมโครงการ Super AI Engineer รหัส 22p12c0765

สำหรับบทความแรก ผมมาแบ่งปันความรู้เบื้องต้นแบบกว้าง ๆ เกี่ยวกับ Natural Language Processing (NLP) ครับ

NLP เป็นศาสตร์หนึ่งของเทคโนโลยีปัญญาประดิษฐ์ (Artificial Intelligence: AI) ซึ่งจะเกี่ยวข้องกับศาสตร์อื่น ๆ ด้วย เช่น ภาษาศาสตร์ (Linguistics)

วัตถุประสงค์ของ NLP ก็คือ เพื่อทำให้ Machine สามารถเข้าใจภาษามนุษย์ได้ เริ่มตั้งแต่การรับข้อมูลในรูปแบบของข้อความ (เปรียบเสมือนการอ่าน) หรือรับข้อมูลในรูปแบบของเสียง (เปรียบเสมือนการฟัง) ตลอดจนสามารถตีความข้อมูลที่ได้รับเหล่านั้น จนกระทั่งสามารถตอบสนองออกมาได้อย่างถูกต้องสมเหตุสมผล ซึ่งการตอบสนองนี้ก็จะเป็นไปในลักษณะเดียวกันกับการรับข้อมูล นั่นก็คือการตอบสนองในรูปแบบของข้อความ (เปรียบเสมือนการเขียน) และการตอบสนองในรูปแบบของเสียง (เปรียบเสมือนการพูด)

โดยสรุปแล้ว NLP มีวัตถุประสงค์ ก็เพื่อทำให้ Machine สามารถสื่อสารทางภาษาได้เหมือนที่มนุษย์ทำได้นั่นเอง

ทั้งนี้การจะทำให้ Machine สามารถสื่อสารทางภาษาเหมือนที่มนุษย์ทำได้นั้น จะเกี่ยวข้องกับ Task มากมาย ยกตัวอย่างเช่น

  • Optical Character Recognition (OCR)
    คือ การแปลงไฟล์จำพวกรูปภาพ (scanned document หรือ photo of document) ให้กลายเป็นข้อความ (text data)
  • Speech Recognition (หรือ Speech-to-Text)
    คือ การแปลงข้อมูลเสียง (voice data) ให้กลายเป็นข้อความ (text data)
  • Text-to-Speech
    คือ การแปลงข้อความ (text data) ให้กลายเป็นข้อมูลเสียง (voice data)
  • Tokenization
    คือ การนำข้อความมาตัดออกให้เป็นคำ (word)
  • Lemmatization
    คือ การแปลงคำ (word) ต่าง ๆ ให้อยู่ในรูปพื้นฐานของคำนั้น ๆ ตัวอย่างเช่น คำว่า is, am, are เมื่อทำการ Lemmatization แล้วจะกลายเป็นคำว่า be
  • Named Entity Recognition (NER)
    คือ การระบุว่าในข้อความนั้น ๆ มีคำเฉพาะอะไรบ้าง โดยตัวอย่างของคำเฉพาะ เช่น ชื่อของคน ชื่อของสถานที่
  • Part of Speech Tagging (POS Tagging)
    คือ การระบุว่าคำแต่ละคำในประโยค เป็นส่วนประกอบใดของคำพูด เช่น เป็นคำนาม (Noun) เป็นคำกริยา (Verb) หรือเป็นคำขยาย (Adjective | Adverb)
  • Parsing
    คือ การวิเคราะห์โครงสร้างประโยค เพื่อดูว่าประโยคหนึ่ง ๆ มีโครงสร้างเป็นอย่างไร ตัวอย่างเช่น ประโยคหนึ่งมีโครงสร้างคือ Subject + Verb + Object. และอีกประโยคหนึ่งมีโครงสร้างคือ Subject + Verb + Adjective + Object.

ตัวอย่างของการนำ NLP ไปใช้จริง เช่น

  • Machine Translation
    คือ การแปลงจากภาษาหนึ่งไปเป็นอีกภาษาหนึ่ง
  • Sentiment Analysis
    คือ การวิเคราะห์ความรู้สึกหรือวิเคราะห์อารมณ์จากข้อความ การวิเคราะห์เพื่อประเมินว่าข้อความนั้นเป็นบวก เป็นลบ หรือเป็นกลาง
  • Topic Modeling
    คือ การหาหัวข้อจากเอกสารหรือบทความ
  • Document Summaryization
    คือ การสรุปเนื้อหาจากเอกสาร

สำหรับผู้สนใจจะลองฝึกเขียน NLP โดยใช้ภาษา Python ผมขอแนะนำ Library ที่ชื่อว่า NLTK (Natural Language Toolkit)

โดย Library NLTK จะมีคำสั่งเกี่ยวกับ NLP ให้เราสามารถใช้งานได้ง่าย ตัวอย่างเช่น POS Tagging, NER, Tokenization และ Lemmatization

ในบทความถัดไป ผมจะอธิบายถึงการใช้งาน Library NLTK ครับ

--

--

Nuttapong Suptawepong
Super AI Engineer

ผมคือ 22p12c0765 ชื่อนาย ณัฐพงษ์ ทรัพย์ทวีพงศ์ ครับ