DEV Community

Paramee Sungrai
Paramee Sungrai

Posted on

การใช้Language Detection ด้วย Python

บทความนี้เราจะมาพูดถึง Language Detection with Machine Learning หรือการตรวจจับภาษาและจำแนกภาษา

Language Detection

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

นั่นคือ "Google Translate" นอกจากนี้ยังมี Machine Learning Model เพื่อตรวจจับภาษาที่คุณสามารถใช้ได้ หากไม่ทราบว่าต้องการแปลภาษาใด

ส่วนสำคัญที่สุดของการฝึกอบรมการตรวจจับภาษาให้มีประสิทธิภาพ คือ ข้อมูล ยิ่งมีข้อมูลเกี่ยวกับภาษาหลาย ๆ ภาษามาก การตรวจจับภาษาก็จะทำงานได้แม่นยำมากขึ้นในแบบ Real-time

ในชุดข้อมูลที่ใช้ถูกรวบรวมจาก Kaggle ซึ่งมีข้อมูลเกี่ยวกับภาษายอดนิยม 22 ภาษาและมี 1000 ประโยคในแต่ละภาษา ดังนั้นจะเป็นชุดข้อมูลที่เหมาะสมสำหรับการฝึกอบรมการตรวจจับภาษาด้วยการเรียนรู้ของเครื่อง

Language Detection using Python
ต่อมาเป็นวิธีการฝึก Machine Learning Model โดยใช้ Python

❤️ขั้นตอนที่ 1 นำเข้า Python Libraries และ Dataset

import pandas as pd
import numpy as np
from sklearn.feature_extraction.text import CountVectorizer
from sklearn.model_selection import train_test_split
from sklearn.naive_bayes import MultinomialNB

data = pd.read_csv(
    "https://raw.githubusercontent.com/amankharwal/Website-data/master/dataset.csv"
)
print(data.head())
Enter fullscreen mode Exit fullscreen mode

ผลที่ได้
Image description

▷ต่อมาให้ลองตรวจสอบว่าDatasetนี้มีค่าว่างหรือไม่ด้วยCodeคำสั่ง
data.isnull().sum()
จะแสดงผลดังนี้
Image description

▷ตรวจสอบภาษาในDataset ด้วยCodeคำสั่ง
data["language"].value_counts()
จะแสดงผลดังนี้
Image description

❤️ขั้นตอนที่ 2 แบ่งข้อมูลจำแนกคลาสออกเป็นชุดฝึกอบรมกับชุดทดสอบ

x = np.array(data["Text"])
y = np.array(data["language"])

cv = CountVectorizer()
X = cv.fit_transform(x)
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.33, random_state=42)
Enter fullscreen mode Exit fullscreen mode

เนื่องจากนี่เป็นปัญหาของการจำแนกหลายคลาส ดังนั้นจะใช้ Multinomial Naïve Bayes Algorithm เพื่อฝึก Language Detection Model เนื่องจาก Algorithm นี้ทำงานได้ดีมากในปัญหาการจำแนกประเภทหลายคลาส

model = MultinomialNB()
model.fit(X_train,y_train)
model.score(X_test,y_test)
Enter fullscreen mode Exit fullscreen mode

ผลลัพธ์ที่แสดงออกมา
Image description

❤️ขั้นตอนที่ 3 Codeที่ให้ผู้ใช้ป้อนข้อความเพื่อทำการตรวจจับภาษา

user = input("Enter a Text: ")
data = cv.transform([user]).toarray()
output = model.predict(data)
print(output)
Enter fullscreen mode Exit fullscreen mode

เมื่อทำการRun Codeแล้ว จะขึ้นกล่องให้เราใส่ข้อความลงไป👩🏻‍💻

Image description

ผลที่แสดงออกมาเมื่อเรากรอกข้อความลงไป ตัวอย่างเช่น พิมพ์คำว่า "สวัสดีชาวโลก"👽 ภาษาที่แสดงออกมาก็คือ 'Thai'🇹🇭

Image description

👉🏻สรุป
Language Detection Model โดยการเขียนด้วย Python เป็น Machine Learning ประเภท Supervised Learning คือมีการใช้Datasetในการสอนเพื่อให้สามารถตรวจจับภาษาได้ว่า ภาษาที่ผู้ใช้กรอกลงไปเป็นภาษาอะไร แต่ข้อจำกัดของโมเดลนี้คือจะสามารถตรวจจับภาษาได้แค่ 22 ภาษา หรือตามในDatasetนั่นเอง


🙏🏻ขอบคุณข้อมูลจากเว็บไซต์https://thecleverprogrammer.com/2021/10/30/language-detection-with-machine-learning/

Top comments (0)