กาแยกนับคำภาษาไทย อังกฤษ และ ช่องว่าง ด้วย Python

แชร์ความรู้ภาษา Python ไพทอน การเขียนโปรแกรมภาษาไพทอน

Moderator: mindphp, ผู้ดูแลกระดาน

ภาพประจำตัวสมาชิก
wkid
PHP VIP Members
PHP VIP Members
โพสต์: 2158
ลงทะเบียนเมื่อ: 17/05/2022 10:37 am

กาแยกนับคำภาษาไทย อังกฤษ และ ช่องว่าง ด้วย Python

โพสต์ที่ยังไม่ได้อ่าน โดย wkid »

สำหรับวันนี้ผมก็จะมาพูดเกี่่ยวกับการแยกคำภาษาไทย อังกฤษและช่องว่างออกจากกันนะครับ สำหรับ วิธีการที่ผมเอามาวันนี้อาจจะเป็นวิธีการที่อาจจะไม่ได้มากนะแต่ว่าสามารถใช้งานได้ครับ ในกรณีที่เรารับข้อความมานั้น หากเราต้องการที่จะนับว่ามีคำไทยกี่คำ ช่องว่างกี่ช่อง คำภาษาอังกฤษกี่คำเรา




วันนี้ผมจึงมานำเสนอเกี่ยวกับ ตัวของวิธีที่ผมได้ทำารการคิดในการแยกคำภาษาไทย อังกฤษและช่องว่าง โดยวิธีการที่ผมคิดจะสามารถนับคำและตัวอักษรแยกกันทั้งภาษาไทย อังกฤษ รวมถึงนับจำนวนช่องว่างได้อีกด้วยครับ
pythainlpp.png
pythainlpp.png (2.67 KiB) Viewed 642 times
เราจะนำเอาตัวของ pythainlp เข้ามาช่วยไนการที่เราจะแยกคำทั้งภาษาไทยงและอังกฤษนะครับ ซึ่งคำในภาษาอังกฤษปกติลักษณะโดยการที่แบ่งคำให้อยู่แล้ว ดังนั้นตรงนี้มองผ่านไปได้เลยครับ เราจะมาดูตัวอย่างโค้ดกันนะครับ
ตัวอย่างโค้ดนะครับ

โค้ด: เลือกทั้งหมด

from pythainlp.tokenize import word_tokenize
output = word_tokenize(Text ที่เรารับเข้ามา, engine="newmm")
countTh = 0
countthai = 0
countE =0
counteng =0
countB =0
print(type(Data.word))
for i in output:
	print(i)
        countttt = 0
            
            
        for l in i:
            b=l
            print(b)
            break
        if i== " " :
            countB +=1
            print("ทำงาน")
        elif b == "a" or b == "A" or b == "b" or b == "B" or b == "c" or b == "C" or b == "d" or b == "D" or b == "e" or b == "E"or b == "F" or b == "f" or b == "h" or b == "H" or b == "g" or b == "G" or b == "i" or b == "I" or b == "j" or b == "J"or b == "k" or b == "K" or b == "l" or b == "L" or b == "m" or b == "M" or b == "n" or b == "N" or b == "o" or b == "O"or b == "p" or b == "P" or b == "q" or b == "Q" or b == "r" or b == "R" or b == "s" or b == "S" or b == "t" or b == "T"or b == "u" or b == "U" or b == "v" or b == "V" or b == "w" or b == "W" or b == "x" or b == "X" or b == "y" or b == "Y" or b == "z" or b == "Z" :

            if i != "\n" :
                countttt = len(i)
                countE = countttt + countE
                counteng = counteng + 1

        else :
            if i != "\n":
                countttt = len(i)
                countTh = countttt + countTh
                countthai = countthai + 1
จากตัวอย่างโค้ด เราจะมีการ Import word_tokenize from pythainlp.tokenize พอเราได้จาก output ที่ทำการเข้าฟังก์ชั่นแล้วเราก็จะมาหาตัวอักษรหน้าสุดของแต่ละคำครับ ง่ายสุดคือช่องว่าง เราได้ช่องว่างก็ถือเป็นช่องว่างเลยครับ ต่อมาถ้าหากเป็นอิ้งจะเช็คง่ายกว่า เพราะภาษาอังกฤษจะง่าย ไม่มีสระ ดังนั้น เราจะเอาอักษรตัวหน้ามาเทียบ ถ้าเป็นภาษาอังกฤษก็จะเป็นภาษาอังกฤษได้เลยนั่นเองครับ ถ้าไม่เข้าเงื่อนไขก่อนหน้าเราก็จะตีเป็นคำไทยนั้นเองครับผม


สรุป
ตัวอย่างโค้ดข้างต้นที่กล่าวมาก็สามารถที่จะนำไปประยุกต์ใช้ได้ในงานต่างๆครับ เพราะช่วยนับจำนวนคำได้เบื้องต้น นับจำนวนตัวอักษรได้ แถมยังนับว่ามีกี่ช่องว่างได้อีกด้วยอาจจะสามารถนำเอาไปตรวจการบ้านเด็กได้นั่นเองครับผม


อ้างอิง
https://www.bualabs.com/archives/3234/what-is-pythainlp-tutorial-teach-basic-how-to-use-pythainlp-library-nlp-in-python-pythainlp-ep-1/
https://th.wikipedia.org/wiki/%E0%B8%A0%E0%B8%B2%E0%B8%A9%E0%B8%B2%E0%B9%84%E0%B8%97%E0%B8%A2
https://th.wikipedia.org/wiki/%E0%B8%A0%E0%B8%B2%E0%B8%A9%E0%B8%B2%E0%B8%AD%E0%B8%B1%E0%B8%87%E0%B8%81%E0%B8%A4%E0%B8%A9
แก้ไขล่าสุดโดย wkid เมื่อ 24/09/2022 11:11 am, แก้ไขไปแล้ว 1 ครั้ง.
ทำไมสัตว์ที่น่ากลัวที่สุดถึงตัวเล็กๆที่เรียกว่า Bug ละนั่น );
ภาพประจำตัวสมาชิก
mindphp
ผู้ดูแลระบบ MindPHP
ผู้ดูแลระบบ MindPHP
โพสต์: 41232
ลงทะเบียนเมื่อ: 22/09/2008 6:18 pm
ติดต่อ:

Re: กาแยกนับคำภาษาไทย อังกฤษ และ ช่องว่าง ด้วย Python

โพสต์ที่ยังไม่ได้อ่าน โดย mindphp »

ย้ายกระทู้เข้าหมวด Python Knowledge แล้ว
viewforum.php?f=144
ติดตาม VDO: http://www.youtube.com/c/MindphpVideoman
ติดตาม FB: https://www.facebook.com/pages/MindphpC ... 9517401606
หมวดแชร์ความรู้: https://www.mindphp.com/forums/viewforum.php?f=29
รับอบรม และพัฒนาระบบ: https://www.mindphp.com/forums/viewtopic.php?f=6&t=2042
ตอบกลับโพส
  • Similar Topics
    ตอบกลับ
    แสดง
    โพสต์ล่าสุด

ผู้ใช้งานขณะนี้

สมาชิกกำลังดูบอร์ดนี้: ไม่มีสมาชิกใหม่ และบุคลทั่วไป 74