PyThaiNLP เบื้องต้น

การติดตั้ง

ติดตั้งปกติได้เวอร์ชัน 2.0.7

python -m pip install pythainlp

ติดตั้งด้วย --upgrade ได้เวอร์ชันล่าสุด (2.3.2)

python -m pip install --upgrade pythainlp

ติดตั้ง epitran

python -m pip install epitran

ตรวจสอบการติดตั้ง

import pythainlp
print(pythainlp.__version__)
2.3.2

Thai Characters

ตัวอักษร

import pythainlp
print(pythainlp.thai_characters)
print(len(pythainlp.thai_characters))
กขฃคฅฆงจฉชซฌญฎฏฐฑฒณดตถทธนบปผฝพฟภมยรลวศษสหฬอฮฤฦะัาำิีึืุูเแโใไๅํ็่้๊๋ฯฺๆ์ํ๎๏๚๛๐๑๒๓๔๕๖๗๘๙฿
88

พยัญชนะ

import pythainlp
print(pythainlp.thai_consonants)
print(len(pythainlp.thai_consonants))
กขฃคฅฆงจฉชซฌญฎฏฐฑฒณดตถทธนบปผฝพฟภมยรลวศษสหฬอฮ
44

ตัวเลข

import pythainlp
print(pythainlp.thai_digits)
print(len(pythainlp.thai_digits))
๐๑๒๓๔๕๖๗๘๙
10

การตรวจสอบ

import pythainlp
print("๔" in pythainlp.thai_characters)
print("๔" in pythainlp.thai_consonants)
print("๔" in pythainlp.thai_digits)
True
False
True

ตรวจสอบ Thai character ด้วย pythainlp.util

ตรวจสอบว่าใช่ตัวอักษรภาษาไทยหรือไม่

import pythainlp.util
print(pythainlp.util.isthai("๔"))
print(pythainlp.util.isthai("ก"))
print(pythainlp.util.isthai("(ก.พ.)"))
print(pythainlp.util.isthai("(ก.พ.)", ignore_chars=".()"))
True
True
False
True

counthai() returns proportion of Thai characters in the text. It will ignore non-alphabets by default.

import pythainlp.util
print(pythainlp.util.countthai("วันอาทิตย์ที่ 24 มีนาคม 2562"))
print(pythainlp.util.countthai("วันอาทิตย์ที่ 24 มีนาคม 2562", ignore_chars=""))
print(pythainlp.util.countthai("วันอาทิตย์ที่ 24 มีนาคม 2562", ignore_chars=" "))
100.0
67.85714285714286   # ตัวอักษรทั้งหมด/ตัวอักษรไทย (28/19=67.857)
76.0                # ตัวอักษรทั้งหมดยกเว้นช่องว่าง/ตัวอักษรไทย (25/19=76)
import pythainlp.util
print(pythainlp.util.countthai("อาทิตย์ 24"))
print(pythainlp.util.countthai("อาทิตย์ 24", ignore_chars=""))
print(pythainlp.util.countthai("อาทิตย์ 24", ignore_chars=" "))
100.0
70.0                # 10/7=70
77.77777777777779   #  9/7=77.777

การเรียงลำดับ list ภาษาไทย

from pythainlp.util import collate
thai_words = ["ค้อน", "กระดาษ", "กรรไกร", "ไข่", "ผ้าไหม"]
print(collate(thai_words))
print(collate(thai_words, reverse=True))
['กรรไกร', 'กระดาษ', 'ไข่', 'ค้อน', 'ผ้าไหม']
['ผ้าไหม', 'ค้อน', 'ไข่', 'กระดาษ', 'กรรไกร']

ถ้ามีภาษาอังกฤษ ภาษาอังกฤษจะมาก่อนภาษาไทย

from pythainlp.util import collate
thai_words = ["ค้อน", "กระดาษ", "กรรไกร", "ไข่", "ผ้าไหม", "Dog", "Cat"]
print(collate(thai_words))
print(collate(thai_words, reverse=True))
['Cat', 'Dog', 'กรรไกร', 'กระดาษ', 'ไข่', 'ค้อน', 'ผ้าไหม']
['ผ้าไหม', 'ค้อน', 'ไข่', 'กระดาษ', 'กรรไกร', 'Dog', 'Cat']

Date/Time Format

import datetime
from pythainlp.util import thai_strftime

fmt = "%Aที่ %-d %B พ.ศ. %Y เวลา %H:%M น. (%a %d-%b-%y)"
date = datetime.datetime(1976, 10, 6, 1, 40)

print(thai_strftime(date, fmt))
print(thai_strftime(date, "%d %b %y"))
print(thai_strftime(date, "%d %b %Y"))
วันพุธที่ 6 ตุลาคม พ.ศ. 2519 เวลา 01:40 น. (พ 06-ต.ค.-19)
06 ต.ค. 19
06 ต.ค. 2519