Group Blog
 
 
สิงหาคม 2548
 
 123456
78910111213
14151617181920
21222324252627
28293031 
 
26 สิงหาคม 2548
 
All Blogs
 
Thai Word Break ตัดคำภาษาไทย สไตล์ไฟลนก้น #4

ขอขอบคุณ link เหล่านี้ เกี่ยวกับความรู้ด้านภาษาไทย และการตัดคำครับ
ข้อมูลภาษาไทยที่ NECTEC
คุณครูภาทิพย์ ศรีสุทธิ์ ห้องเรียนสีชมพู
blog คุณฮุ้ย ที่เขียนตัดคำไทย ใน Firefox
---------

ขั้นตอนการทำโปรแกรมนั้นซับซ้อนกว่ากฎเกณฑ์ของการตัดคำอยู่มากพอดูเลย เพราะจากที่ผมพูดมาทั้งหมดก่อนหน้านี้ ผมต้องเขียนออกมาให้เป็นโปรแกรม

ขั้นตอนที่ผมต้องทำก็คือ

1. ตัดสระบนและสระล่างออกให้หมด ให้เหลือแต่ระดับกลาง (Base Level) เช่นคำว่า "หากอยู่กับเขา อย่ามีเยื่อใยกับฉัน" ก็จะเหลือแค่เพียง "หากอยกบเขา อยามเยอใยกบฉน"

2. เมื่อตัดบนล่างออกแล้ว ก็จะทำการแบ่งช่วงของคำออกมาเพื่อหาเฉพาะจุดที่น่าจะอยู่ในช่วงท้ายบรรทัดที่จะต้องโดนตัดคำลงไป เมื่อตัดบนล่างออกแล้ว ทำให้เราคำนวนได้ง่ายขึ้น ว่าควรรจะตัดที่ใด เพราะไม่ต้องมาพะวงกับความเพี้ยนของโปรแกรม เมื่อไปนับ ไม้เอก ไม้โทร หรือสระอู ด้วย

3. ตรวจสอบตามกฎเกณฑ์ที่ผมบอกก่อนหน้านี้ ดูว่าตำแหน่งใดบ้าง ที่จะตัดคำได้ ซึ่งจากตัวอย่างเมื่อกี้ เราก็จะสามารถหาตำแหน่งที่ตัดคำได้เป็น "หา - ก - อ -ย - ก - บ - เขา - อ - ยา - ม - เย - อ - ใย - ก - บ - ฉ - น" ซึ่งจะเห็นว่า ตำแหน่งที่จะสามารถตัดคำได้นั้น มีความเป็นไปได้ในเกือบทุกตำแหน่ง ยกเว้นตำแหน่งที่ไปเกี่ยวพันกับ สระ อย่างที่บอกเอาไว้ครับ

4. ไล่ตรวจสอบไปทีละตำแหน่ง โดยเอาตำแหน่งบน และสระล่างมาเปรียบเทียบกับคลังคำ โดยเริ่มจากตัวที่สามารถตัดได้จากข้อ 2 เมื่อกี้ เช่นที่ตำแหน่งคำว่า อ ตรงคำว่า อยู่ ก็จะดูว่า คำที่ขึ้นต้นด้วย อ นั้น มีอะไรที่ตามมาด้วย ย บ้าง แล้วก็เทียบต่อไปว่าเป็นอะไร ในที่นี้จะเป็นสระอู แล้วก็ไปเจอไม้เอก .. อย่างนี้เป็นต้น

5. เราจะได้ list คำที่ได้มาจำนวนหนึ่ง ซึ่งจะมีตำแหน่งของตัวอักษรควบคู่ไปกับคำที่หาได้

6. ใน list คำนี้ อาจจะเป็นไปได้ว่า ที่ตำแหน่งเดียวกัน สามารถหาได้มากกว่า 1 คำ เช่นคำว่า "นอนมาก" ให้เราดูที่ตำแหน่ง น.หนูตัวแรก เราจะหาได้ทั้งคำว่า "นอ" และ "นอน" ..

7. ในโปรแกรมของผม ผมจะเลือกตัดคำที่ ตำแหน่งที่หาเจอที่ตำแหน่งที่สอง เพราะว่าช่วงของคำที่เราเลือกมาพิจารณานั้น เราอาจจะตัดมากลางคำพอดี ทำให้การหาตำแหน่งแรกผิดพลาด จึงต้องเลื่อนไปเป็นตำแหน่งที่สองแทน เช่นคำว่า

"โธ่เพื่อนเอ๋ย จะอะไรกันมากล่ะ มากกว่านี้ก็ยังเคยลุยกันมาแล้ว"

แล้วเราดันไปตัดตรงนี้พอดี .. "... ม - ากกว่านี้..."

จะทำให้คำแรกที่เราหาเจอ เป็นคำว่า "กก" ... ซึ่งผิดแน่นอน ก็ต้องเลื่อนมาอีก 1 คำ ซึ่งก็จะได้คำว่า "กว่า" ซึ่งจะเป็นคำที่ถูก

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

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

โปรแกรมที่ผมเขียน เขียนด้วยภาษา PHP เพื่อทำงานบนเว็บ เพราะตัว Flash ที่กล่าวไว้ตอนแรก ต้องการข้อมูลแบบ Realtime กันเลย ก็ต้องทำอย่างนั้นล่ะครับ หากใครสนใจศึกษาในส่วนนี้ ผมยินดีพูดคุยด้วยครับ ยังไงก็เมล์มาคุยกันได้ครับ ที่ overconda@yahoo.com

ยังไม่จบครับ ยังมีสรุปอีกนิดนึงครับ
-----------------
การตัดคำภาษาไทยแบบไฟลนก้น #1 เกริ่นนำ
การตัดคำภาษาไทยแบบไฟลนก้น #2 รูปแบบตัวอักษรไทย
การตัดคำภาษาไทยแบบไฟลนก้น #3 กฎเกณการตัดคำ
การตัดคำภาษาไทยแบบไฟลนก้น #4 การเขียนโปรแกรม
การตัดคำภาษาไทยแบบไฟลนก้น #5 สรุป


Create Date : 26 สิงหาคม 2548
Last Update : 26 สิงหาคม 2548 2:21:00 น. 0 comments
Counter : 1278 Pageviews.

ชื่อ :
Comment :
  *ใช้ code html ตกแต่งข้อความได้เฉพาะสมาชิก
 

กึ่งยิงกึ่งผ่าน
Location :
กรุงเทพ Thailand

[ดู Profile ทั้งหมด]

ฝากข้อความหลังไมค์
Rss Feed

ผู้ติดตามบล็อก : 4 คน [?]




มีคนถามมาเยอะ ว่าชื่อผมแปลว่าอะไร บอกง่ายๆ ว่ามาจากฟุตบอลครับ "กึ่งยิงกึ่งผ่าน" เป็นการส่งลูกไปที่

หน้าประตูฝ่ายตรงข้าม โดยผู้เล่นที่เลี้ยงลูกมาจากทางด้านข้างของสนาม พอถึงจังหวะ ก็ผ่านลูกมาให้เพื่อนที่วิ่งมารออยู่หน้าประตู .... ต่าแว่!!

... แต่ว่า!!! ... ลูกมันเลยเพื่อนไป แต่ก็ไม่ถึงประตู เหมือนจะเป็นการยิงประตูก็ไม่ใช่ จะส่งให้เพื่อนก็ไม่ใช่


นี่จึงเป็นที่มาของคำว่า "กึ่งยิงกึ่งผ่าน" ครับ

ผมไม่ได้คิดเองแต่อย่างใด แต่เอามาจากการดูฟุตบอลครับ

ปล. ชื่อผมนี่บ่งบอกเลยว่า "ฟุตบอล" แต่ผมไม่ได้เล่นห้องศุภฯ นะครับ .. แหะ แหะ แหะ
Friends' blogs
[Add กึ่งยิงกึ่งผ่าน's blog to your web]
Links
 

 Pantip.com | PantipMarket.com | Pantown.com | © 2004 BlogGang.com allrights reserved.