ตัดคำภาษาไทย

posted on 18 Mar 2005 01:37 by lewcpe  in Geek
เรื่องการตัดคำภาษาไทย คงเป็นปัญหาด้านภาษาที่เรื้อรังที่สุดนับแต่คอมพิวเตอร์เข้ามาในเมืองไทย โดยเฉพาะตอนนี้ที่จะเป็นก็คงเป็นบราวเซอร์ที่ยังครึ่งๆ กลางๆ กันอยู่

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

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

ผมเห็นด้วยว่าการเก็บข้อมูลควรเก็บตามที่จำเป็น เช่นข้อความเป็นอย่างไรก็ควรเก็บไปตามนั้น แต่ผมสงสัยว่าคำว่าส่วนแสดงผล จำเป็นต้องเป็นบราวเซอร์หรือไม่?

ในวันนี้ที่ Static Page แทบจะตายไปจากโลกแล้วเราคงบอกกันได้ข้อมูลจริงๆ ของเรานั้นถูกเก็บอยู่ใน DBMS สักตัวมากกว่าจะเป็นไฟล์ HTML ซึ่งอาจจะถูกสร้างขึ้นมาจาก engine อะไรสักตัวเช่น Blogger

ทำไมเราไม่หันกลับไปมองการใส่ ลงไปในเว็บ แต่ไม่ใช่ด้วยมือ แต่เป็นการใส่ด้วย CMS ที่เราๆ ใช้กัน?

แนวคิดคือ เปลี่ยนผู้สร้าง (เว็บ) ง่ายกว่าเปลี่ยนผู้ดูมาก
(ตามความคิดผมนะ)

ผมไม่แน่ใจว่า Thai Patch ของไฟร์ฟ๊อกมีแนวโน้มจะถูกกลืนเข้าไปในโค้ดหลักแค่ไหน แต่ผมว่าการให้ผู้สร้างเว็บใส่ตัวตัดคำ น่าจะเป็นทางออกที่ดีเอาเหมือนกัน เพราะอย่้าง Exteen ถ้าใส่เข้าไปก็บอกได้เลยว่าเว็บนี้เพื่อคนไทยแน่นอน.......

ส่งท้าย
ความจริงแล้วนอกจาก ใน HTML แล้ว ใน Unicode เองก้มี NBSP (No Blank Space) กำหนดไว้ในมาตรฐานแล้ว ซึ่งในอนาคตถ้าทุกโปรแกรมพากันรองรับ Unicode จริง การใช้ NBSP ก็น่าจะเป็นทางออกที่ดีกว่า เอาเหมือนกัน

edit @ 2005/03/28 00:23:57
มันก็เป็นความคิดที่ดีนะครับ ที่จะทำแบบนั้น
แต่ผมคิดว่าปัญหาก็คือโหลดครับ
เพราะถ้าเปลี่ยนที่ browser เนี่ย มันก็จะกระจายไปให้คนแต่ละคน
แต่ถ้าทำที่ตอนสร้างหน้า
(เข้าใจว่าพี่หมายถึงตอนที่เอาข้อมูลจาก db มาสร้าง)
โหลดก็จะตกอยู่กับ server

อีกอย่างคือ มันไม่ได้มีปัญหาเรื่องนี้กับ browser อย่างเดียว
แต่กับโปรแกรมอื่นๆ ด้วย และนอกจากการตัดคำผิดๆ ถูกๆ แล้ว
ยังมีเรื่องของการเรียงลำดับด้วย ที่เพี้ยนๆ
(เช่น 'อย่าง' มาก่อนคำว่า 'เป็น' เพราะ 'เป็น' มี 'เ')

แต่ก็อีกนั่นแหละ.. ถ้าโยนไปให้ user ก็จะกลายเป็นว่า
คนที่ต้องการอ่านหลายๆ ภาษา ก็จะมีภาระในการที่อาจต้องติด browser ให้ซัพพอร์ตภาษามากขึ้น

อืมมม... เพราะฉะนั้น ถ้าใส่ไปได้ก็ดี เหอๆๆ (อ้าว)
มองอีกแง่.. ถ้าไม่มีจุดมาร์คก็ห้ามตัดมั่วนะ..
เพื่อว่าผู้ที่ให้ข้อมูลจะได้บังคับการแสดงผลได้มากขึ้นอีกทาง

ปล. ที่พี่พูดถึงน่าจะหมายถึง ZWSP (zero width space) นะครับ
เพราะ NBSP มันน่าจะหมายถึง non-break space มากกว่า

#1 By ไอ้แพท.. on 2005-03-18 06:47

ที่อ่านมาจาก Unicode 2.0 เข้าใจว่าเป็น No Blank Space ถูกแล้วนะครับ ไว้จะลองกลับไปอ่านอีกที

#2 By lewcpe (61.90.97.109) on 2005-03-18 11:08

ใส่ที่ server จะเปลือง BW มากขึ้นเยอะเลยนะครับ ผมว่า ทางที่ดีเป็นภาระของ browser อย่างที่พี่มาร์คพูดจะดีกว่า (เห็นด้วยกับต่าย)

#3 By champcpe (158.108.212.47) on 2005-03-18 14:08

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

ก็แบบน้องแชมป์ว่าอะ เปลือง Space กับอีกอย่างนึงคือเราจะมาตั้งสมมติฐานว่าทุกคนมี CMS มันก็ไม่ถูกนัก

เหตุผลอีกเรื่องคือทุกวันนี้เค้ากำลังพยายามแยก Style ออกจาก Content (คือเป็น XML + CSS/XSLT แทน HTML) การจะเอา <wbr> ซึ่งเป็น Style ไปรวมใน Content มันก็คงไม่สวยนะ

#4 By mk (61.90.58.73) on 2005-03-18 20:48

CMS คืออะไรหรือ

#5 By ปู๋ (203.155.122.4) on 2005-09-23 14:42

จริงครับ เห็นด้วย เรื่องตัดคำที่ เรื่องใหญ่จริงๆ สำหรับเว็บไทย