📔
Blog
HOMEPORTFOLIOHIRE MEGITHUB
  • Home
  • 🙇Database
    • Oracle Database
      • 🍏LDOM Oracle VM for SPARC
      • 🍎Oracle Processor Core Factor Table
      • 🍐Check Oracle Error in Alert Log with SQL*Plus
      • 🍊Create Oracle Corrupt Data Block
      • 🍋RMAN Backup Tuning
      • 🍌Install NTP on Oracle Linux
      • 🍉Best Practice Check Tablespace Size on Oracle
      • 🍇Fix Password File Missing on Oracle
      • 🫐Check Oracle Error Message with OERR
      • 🍓Change and Restore Password on Oracle
      • 🍈Fix Oracle could not find Archive Log
      • 🍒Check Database Uptime on Oracle
      • 🍑Fix Oracle Date Format
      • 🥭Identity Column on Oracle
      • 🍍Fix Oracle Service handle not Initialized
      • 🥥GoldenGate Credential Store
      • 🥝Create Auto Increment on Oracle
      • 🍅Recompile Object Invalid on Oracle
      • 🍆Create Database Link on Oracle
      • 🥑Cluster vs Grid
      • 🫒Install DBSAT for Oracle Database 11gR2
      • 🥦Fix Oracle End-of-File on Communication Channel
      • 🥬Fix Oracle Database Out of Memory
      • 🫑Export and Import Oracle Database with Data Pump
      • 🥒Monitor Log Switch each Hour of Day on Oracle with SQL*Plus
      • 🌶️Change Column Format on Oracle with SQL*Plus
      • 🌽Check Version Component on Oracle with SQL*Plus
      • 🥕Check Database Size on Oracle with SQL*Plus
      • 🧄Migrate Oracle Database with RMAN
      • 🧅Fix Enterprise Manager Error OC4J Configuration issue
    • Microsoft SQL Server
      • 💊Backup SQL Server Database with SQL Backup and FTP
      • 💉Backup Full SQL Server with SQL Script
  • 🙇‍♀️INFRASTRUCTURE
    • DNS
      • 📦Fix Ldap Error Search Configuration Naming Context failed
      • 📦Join Domain to Active Directory on Ubuntu 22.04
      • 📦Sender Policy Framework Record
      • 📦Migrate User on Active Directory to Another Domain
      • 📦Fix can’t Delete Object on Active Directory
      • 📦Create Conditional Forwarder DNS on Windows Server 2012 R2
      • 📦Create Stub DNS Zone on Windows Server 2012 R2
      • 📦Domain Permission Admin
      • 📦Domain Model
      • 📦Active Directory ( AD ) 101
    • Network
      • 👥Local Area Network 101
      • 👥Export and Import Session on SecureCRT
      • 👥VPN Protocol
    • Security
      • 🎩Scam Mail
      • 🎩Disable Antivirus Protection on Windows 10
      • 🎩Fix Security Certificate is not Trusted
      • 🎩Best Practice Ransomware Protection
      • 🎩Digital Forensic
      • 🎩Check Installed Patch Compare Vulnerable on Windows 10
    • ISO 27001
      • 🐶Scenario-Based Risk
  • 🙇‍♂️Server
    • Windows Server
      • 👺Upgrade Windows Server 2003 SP2 to Windows Server 2008 R2
      • 👺Best Practice After Install Windows Server
      • 👺Windows Server Product Key
      • 👺How to convert PFX to CRT and KEY File on Windows Server
      • 👺Check Security Windows Application with Winchecksec
      • 👺Fix Internet Explorer Block Website on Windows Server 2019
      • 👺Install Windows Admin Center on Windows Server 2019
    • Linux Server
      • 👿Fix SSH Error: no matching key exchange method found
      • 👿Fix Ubuntu Package Manager Lock: Could not get lock /var/lib/dpkg/lock
      • 👿Install Kali Linux GUI on Windows Subsystem for Linux
      • 👿How to get DateTime History on Linux
      • 👿Change IP and Hostname on Ubuntu 18.04
      • 👿iSCSI Initiator on CentOS 7
      • 👿TMUX Command
      • 👿Create User on Linux
      • 👿Change Username and UID / GID on Linux
    • User
      • 👽OSQuery
      • 👽How to decompress GZIP, BZIP and TAR File on Windows 10
      • 👽Upgrade Windows 10 Version 1803 to 1903
      • 👽Join Windows Insider Program on Windows 10
      • 👽Fix RDP Error Exceeded the Maximum Number of Allowed Connections
      • 👽How to enable DNS over HTTPS on Firefox
  • 🧑‍🍼Software
    • VMware
      • 🌠Fix Deploy OVA Error no Support Hardware Versions on VMware ESXi 6.7
      • 🌠VMware Workstation and VMware ESXi Compatible
      • 🌠Promiscuous Mode and Forged Transmits on VMware vSphere 6.5
      • 🌠Update Patches on VMware ESXi 6.7 with ESXCLI
      • 🌠Fix Alert Hyperthreading Unmitigated on VMware ESXi 6.7
      • 🌠Fix VMware Error Client Session is no Longer Authenticated
      • 🌠Merge AVHDX and VHDX for Convert to VMDK
      • 🌠Convert VMDK to VHDX with Microsoft Virtual Machine Converter
      • 🌠Fix VMware Workstation Device / Credential Guard are not Compatible
      • 🌠Convert VMDK to VHDX with StarWind V2V Converter
    • Veeam Backup
      • 🧊Install Veeam Backup & Replication 11 on Windows
      • 🧊Backup Planning Matrix
      • 🧊Fix Veeam Backup Error Full Backup File Merge Failed
    • ESET
      • 🐕‍🦺Fix can’t Uninstall ESET Management Agent
  • 👩‍🍼Programming
    • Fundamental
      • 🔵ID Token vs Access Token
      • 🔴NULL vs NOT NULL
      • 🟣Microsoft Universal Data Access
      • 🟡Flow Graph Aptitude Test
      • 🟠C Pyramid – Part I
      • 🟤C Pyramid – Part II
      • ⚪JSON Web Token
      • 🟦Memory Architecture
    • Tools
      • AI Tools
        • ❤️Generative AI Tools
        • 💙Prompt Tools
        • 💚Dataset Tools
      • Extension Tools
        • ❄️Top Extension Microsoft Edge
        • ❄️Top Extension Visual Studio Code
      • Other Tools
        • 🚗Business Tools
        • 🚕CI/CD Tools
        • 🚙Design Tools
        • 🛻Freelance Tools
        • 🚌Hands-On Lab Tools
        • 🚎Productive Tools
        • 🏎️Programming Tools
        • 🚓SEO Tools
        • 🚑Mac Tools
      • Package Tools
        • 🧶Top NuGet Package .NET Core
      • Visual Studio Code
        • 🌑How to show Folder .git in Visual Studio Code
        • 🌑Fix CMake not Found Visual Studio
        • 🌑Backup Extension for Visual Studio Code
    • Python
      • Poetry
        • 🐍Poetry Virtual Environment Command
    • PHP
      • Laravel
        • 🍂Laravel Redis Key-Value Store
    • .NET Core
      • 🐹.NET Core Automatic Code Review with SonarQube
      • 🐹.NET Core Disable Authentication in Development Environment
      • 🐹Overview .NET Core
  • 👨‍🍼Other
    • Blog
      • 🎃Blog Dell
      • 🎃Blog Gitbook
      • 🎃Blog Network
    • Big Data
      • 🐱Big Data ของกระทรวงสาธารณสุข
    • Chat Bot
      • Chatfuel
        • 🍭Facebook Chatbot with Chatfuel
      • Dialogflow
        • ⛱️Dialogflow Connect Multiple Firebase Realtime Database
        • ⛱️Chatbot with Dialogflow and Firebase Realtime Database
    • Docker
      • 🐳How to Trust Sign Image on Docker
      • 🐳Upgrade Docker Compose
      • 🐳Install Nginx-RTMP and FSTV-Monitor on Docker
    • Machine Learning
      • 🧤PC SPEC for Deep Learning 2021
      • 🧤Install YOLO Object Detection on Windows 10
      • 🧤Thai Natural Language Processing with Python
      • 🧤Install Tensorflow with GPU on Windows 10
      • 🧤PC SPEC for Deep Learning 2019
      • 🧤Speech to Text with Google API
      • 🧤CUDA-Z
      • 🧤DVC Version Control for Machine Learning
    • Standard
      • 🧬Digital ID
      • 💻Computer Naming Convention
      • 🎁มาตรฐานข้อมูลกลาง
    • Policy
      • 🍔GDPR & PDPA
      • 🍟TDPG 2.0
      • 🍕Cookie Consent
    • WSL
      • 🧿How to move Distribution Data WSL to new Location
      • 🧿Export and Import Distro on Windows Subsystem for Linux
      • 🧿Install Docker on Windows Subsystem for Linux
  • 🧙‍♂️MICROSOFT 365
    • Outlook
      • 📩How to enable Forward Email on Microsoft Office 365 to Another Domain
      • 📩Fix Mailbox Storage Limit on Microsoft Office 365 with Compliance Search
      • 📩Fix can’t Search Thai Language on Microsoft Outlook
    • Power Automate
      • 🤖How to Rename all Files in Folder use UUID with Power Automate Desktop
      • 🤖How to get SharePoint List Comment with Power Automate
      • 🤖How to post Approve Comment to SharePoint List with Power Automate
      • 🤖Generate Unique ID when Submit Microsoft Form with Power Automate
      • 🤖Notification Maintenance when SharePoint List Create with Power Automate
      • 🤖Send Email and Share File Word Document with Power Automate
      • 🤖Generate Word Document when Submit Microsoft Form with Power Automate
Powered by GitBook
On this page
  • Thai NLP
  • Tokenization Engine
  • Get Started

Was this helpful?

  1. Other
  2. Machine Learning

Thai Natural Language Processing with Python

Last updated 1 year ago

Was this helpful?

หลายคนคงเคยได้ยินการนำ 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

Corpus ( corpus )

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

Soundex ( soundex )

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

Spelling ( spell )

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

Summarization ( summarize )

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

Part-of-Speech ( tag )

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

Tokenization ( tokenize )
Transliteration ( transliterate )
ULMFit ( ulmfit )
Word Vector ( word_vector )

Tokenization Engine

ในการตัดคำภาษาไทย Thai Word Segmentation จะต้องใช้ Dictionary-based ของภาษาไทยในการตัดคำ ซึ่งก็จะประกอบไปด้วย Tokenization Engine ที่ใช้ในการตัดคำ ได้แก่ newmm, longest, multi_cut, pyicu, deepcut, tcc และ etcc

Get Started

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

C:\>
mkvirtualenv thai-nlp
C:\>
workon thai-nlp
  • ทำการติดตั้ง Package

(thai-nlp) C:\>
pip install pythainlp[full]
  • ทำการสร้างไฟล์ thai_nlp.py

thai_nlp.py
from pythainlp.tokenize import word_tokenize

text = "สถาบันบัณฑิตพัฒนบริศาสตร์"
print(word_tokenize(text, engine="newmm")) #['สถาบันบัณฑิตพัฒนบริหารศาสตร์']
print(word_tokenize(text, engine="icu")) #['สถาบัน', 'บัณฑิต', 'พัฒนบริหารศาสตร์']
  • ทำการรัน thai_nlp.py

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

['สถาบันบัณฑิตพัฒนบริหารศาสตร์']
['สถาบัน', 'บัณฑิต', 'พัฒนบริหารศาสตร์']

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

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

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

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

อ่านเพิ่มเติม : , , ,

👨‍🍼
🧤
Corpus
Word Similarity Matching
Spelling Correction
Text Summarization
POS Tagging
Word Tokenization
Romanization, Transliteration, and Transcription
Transfer Learning
Word Embedding
https://bit.ly/2mQIeou
https://bit.ly/2nJyP2h
https://bit.ly/2pf9UnN
https://bit.ly/2mQqr0y