เดือนที่แล้ว กูเกิลเพิ่งเพิ่มความสามารถให้ Gboard for Android ไปชุดใหญ่ ทั้งการรองรับภาษาใหม่ๆ (ส่วนใหญ่เป็นภาษาในประเทศอินเดีย) และการพิมพ์ตัวอักษรภาษาฮินดีด้วยแป้นภาษาอังกฤษ (Gboard จะเดาคำให้เราเอง)
ล่าสุดกูเกิลเผยแพร่รายละเอียดของอัลกอริทึมเบื้องหลัง Gboard เวอร์ชันใหม่ ว่านำ machine learning มาช่วยปรับปรุง Gboard ได้อย่างไร
เทคนิคของกูเกิลแบ่งออกเป็น 2 ส่วน ได้แก่ การเรียนรู้การลากนิ้ว (glide typing) และการเรียนรู้เรื่องการเดาคำต่อไปที่ผู้ใช้จะพิมพ์
Neural Spatial Models
ปัญหาของคีย์บอร์ดแบบลากนิ้ว (glide หรือที่เราเรียกกันว่า swipe) คือคำบางคำอาจลากนิ้วแบบเดียวกัน ส่งผลให้ยากที่จะเดาว่าผู้ใช้ต้องการพิมพ์คำว่าอะไรกันแน่ อย่างในภาพตัวอย่างเป็นการลากคำว่า value และ vampire ที่ใกล้เคียงกันมาก
ที่ผ่านมา Gboard ใช้โมเดล Gaussian พิจารณาความน่าจะเป็นจากปัจจัยต่างๆ ซึ่งเป็นโมเดลที่ง่ายแต่ไม่มีประสิทธิภาพมากนัก ช่วงหลังกูเกิลจึงปรับมาใช้โมเดลที่เรียกว่า long short-term memory (LSTM) โดยเทรนด้วยเกณฑ์แบบ connectionist temporal classification (CTC) บนสถาปัตยกรรม TensorFlow
เทคนิคนี้กูเกิลพัฒนามาจากการเทรนแยกแยะเสียงใน Google Voice Search ที่มีความคล้ายคลึงกัน กูเกิลใช้เวลาพัฒนาเทคนิคนี้อยู่ปีกว่าจนเป็นที่พอใจ ผลคือโมเดลทำงานได้เร็วขึ้นกว่าเดิม 6 เท่าในขนาดที่เล็กกว่าเดิม 10 เท่า เดาคำผิดน้อยลง 10% และเสนอ autocorrect ผิดน้อยลง 15%
Finite-State Transducers
นอกจากการวิเคราะห์สถิติการลากนิ้วของผู้ใช้ กูเกิลยังต้องเดาคำจากความเป็นไปได้ในเชิงไวยากรณ์ของภาษา ว่าพิมพ์ตัวอักษรตัวนี้แล้ว ตัวถัดไปน่าจะเป็นตัวไหน
กูเกิลนำเทคนิค Finite-State Transducers (FST) มาใช้งาน การใช้เทคนิคนี้ช่วยให้กูเกิลสามารถสร้างฟีเจอร์ transliteration หรือการพิมพ์ข้อความในภาษาหนึ่งด้วยตัวอักษรอีกภาษาหนึ่งได้ (เหมือนกับ Pinyin ของภาษาจีน ที่พิมพ์ xièxiè ได้ผลออกมาเป็น “谢谢”)
กรณีของ Pinyin มีกฎเกณฑ์ตายตัวว่าตัวจีนแบบนี้ต้องพิมพ์ตัวละตินอย่างไร แต่ในหลายภาษา เช่น ฮินดี (รวมถึงไทย) ไม่มีกฎเกณฑ์ตายตัว ส่งผลให้คีย์บอร์ดต้องเดาเองว่าผู้ใช้ต้องการพิมพ์อะไรบ้าง กูเกิลจึงใช้ machine learning ช่วยสร้างโมเดลของการพิมพ์ภาษาเหล่านี้ขึ้นมา และสามารถสร้างได้ถึง 57 โมเดลในเวลาเพียงไม่กี่เดือน ซึ่งไม่สามารถทำได้ถ้าเป็นแรงงานมนุษย์
ที่มา - Google Research
Comments
Ai.type ทำงานได้ดีกว่าในหลายๆด้าน....
ลองใช้หลายอันแล้วก็กลับมาตายรังที่ Swype ทั้งๆที่ยิ่งอัพเดตยิ่งบัคเยอะ แต่เหมือนชินมือไปแล้ว
GBoard จริงๆใช้ง่ายมาก แต่การเพิ่มคำวิธีพิมพ์ซ้ำๆนี่ไม่ค่อยทันใจเท่าไหร่
ผมก็เป็นแบบท่านเลย พยายามจะย้ายไป GBoard ทีไรก็กลับมาตายรังอยู่ดี
เหมือนกานเลย Swype นี่ใช้มาหลายปีแล้ว ติดมากๆจนต้องซื้อ
เหมือนกันเลยครับ แถมตอนนี้ใช้ Swype ด้วยการกดพิมพ์เอา เหมือนเสียของยังไงก็ไม่รู้
อัพเดตล่าสุดของ Gboard นี่ดีขึ้นมากแบบผิดหูผิดตาเลยครับ เปลี่ยนไปจนรู้สึกได้
word suggestion ก็เทพขึ้นมากครับ แทบจะรู้ทุกคำที่เราจะพิมพ์เลย
เดิมผมใช้ Swype อยู่ ลองกลับมาใช้ GBoard ได้สักเดือนแล้วสุดท้ายก็กลับไป Swype ครับ
ผมรู้สึกว่ามันสะดวกกว่าหลายๆ อย่าง เช่น
- ผมใช้ภาษาญี่ปุ่น ซึ่ง GBoard ไม่มี (ต้องไปโหลดแยก ลากไม่ได้)
- การเปลี่ยนภาษาระหว่างสองภาษา ผมว่า Swype ทำได้ดีกว่าครับ (ลากจาก SwypeKey -> Spacebar)
- GBoard เปลี่ยนภาษาช้าอย่างรู้สึกได้ เมื่อเทียบกับ Swype ครับ
- การเพิ่ม User Word ผมว่า GBoard ยังลำบากไปครับ Swype แค่พิมพ์แล้วกดเพิ่มได้จาก Keyboard เลย
- Swype สามารถลากเพื่อ Copy/Paste ซึ่ง GBoard ไม่มีครับ
แต่ผมว่า Word Suggestion GBoard ก็ดีเหมือนกันครับ
ก่อนหน้านี้รู้สึกว่า word suggestion ของ Gboard มันมีแต่คำสั้นๆ (เช่น คำว่า บทความ ต้องเขียน บท+ความ) แต่อัพเดตล่าสุดรู้สึกว่าดีขึ้นและแม่นขึ้นมาก
อัพเดทล่าสุดนี่คือเวอร์ชันอะไรหรอครับ ของผม 6.2.37.154908781 (วันที่ 3พ.ค.)
ยังรู้สึกว่ากากเหมือนเดิม -_-
เหมือนกันเลยครับ ซื้อใช้งานมาหลายปีละ ลองไปใช้ตัวอื่นได้แป๊บเดียวก็กลับมาตายรังตลอด
GBoard ยังด้อยกว่า Swiype ตรงการแสดงตัวอักษรในปุ่มเมื่อยกแค่เป็นสีเทาเล็กๆ ทำให้สะดวกในการลากมาก อีกอย่างคือกดปุ่มค้างเพื่อพิมพ์ตัวยกแคร่โดยไม่ต้องสลับ
ผมยังใช้ TSwipe อยู่เลย
I need healing.
เคยพยายามจะใช้ Gboard แล้ว แต่สุดท้ายก็กลับมา SwiftKey อยู่ดี ปุ่ม SwiftKey กดง่ายกว่าแถมลากไทยได้
เมื่อก่อนมันปรับให้โชว์ตัวยกได้ผ่านธีม แต่เดี๋ยวนี้ใช้ธีมที่มีตัวยกแต่ภาษาไทยก็ไม่แสดงตัวยกผมเลยเลิกใช้ไป ปัญหาคือพอไม่มีตัวยกผมก็ไม่รู้จะลากภาษาไทยยังไงเพราะผมไม่รู้ตำแหน่งตัวยก (พิมพ์สัมผัสไม่เป็น) พอจะรู้วิธีปรับไหมครับ
ถ้าเป็น SwiftKey > languages > thai > เลือก thai (original) ก็จะได้เลย์เอาท์แบบโชว์ตัวยกแล้วครับ
ขอบคุณมากคร้าบบ
โอ้โห หาตั้งนาน ขอบคุณครับ
Gboard ก็ลากภาษาไทยได้ครับ
บน iOS ยังไม่มีภาษาไทยครับ
Gboard เพิ่มศัพท์ลำบากไปหน่อยครับ ต้องเข้าไปข้างในเมนู
SwiftKey เหมือนกันฮะ
Gboard มีฟังชั่นลากแต่ไม่โชว์ตัวยกแคร่ นี่ก็ไปไม่เป็นเหมือนกัน
เพิ่งลองลงใหม่ตะกี้ ลากภาษาไทยพังมากเลย ไม่ได้คำที่จะเอาเลยสักคำ = =
SwiftKey +1 ครับ เพราะ
- โชว์ตัวยก- กดค้างเพื่อพิมพ์ตัวยกได้
- ถ้าพิมพ์ติดกันยาวๆ เช่น "สวัสดีครับ" SwiftKey พอพิมพ์สวัสดีเสร็จแล้วพิมพ์ ค.ควาย ต่อ มันเลิกเดา สวัสดีค... แต่ข้ามไปเป็น เดาว่า "ครับ" แทน ซึ่งดีมากเวลาพิมพ์ยาวๆ แล้วไม่ได้กด specbar หรือ กดคำที่โปรแกรมมันเดาให้เรา
ชอบตรงนี้เหมือนกันครับ มันเดาคำต่อไปให้จริงๆ ไม่ต้องกดเว้นวรรคหรืออะไรก่อน
แต่ตอนนี้เหมือนมีปัญหาตรงที่ ถ้าเรากดคำที่เดามา มันเหมือนมีตัวอักษรที่มองไม่เห็นตามท้ายมา 1 ตัวในภาษาไทย
ไม่รู้คนอื่นเป็นเหมือนกันมั้ยครับ
เป็นฮะ
เป็นเหมือนกันครับแล้วตอนนี้ผมยังเจอปัญหาว่ากด Spacebar แล้วมันไม่ยอมเว้นวรรคให้อีกต้องกดย้ำอีกครั้ง เพิ่งจะมาเริ่มเป็นเอาช่วงปีนี้เอง
เหมือนกันเลยครับ ผมก็กลับมา SwiftKey ผมชอบเดาคำของมัน ปกติจะมีประโยค หรือคำตอบที่พูดบ่อยๆ อยู่แล้ว กดแค่ตัวอักษรแรก ที่เหลือแทบเลือกคำที่ขึ้นมาได้เลย
อคติทำให้คนรับเหตุผลด้านเดียว
Gboard ใช้ดีจริงๆครับ ตะกี้บ่นว่า swype "ความ" ไม่ได้พอไปพิมพ์เองทีนึง ตอนนี้ลากได้แล้ว 555+
จะพิมพ์คำว่าเสร็จ มักกลายเป็นคำว่า เย..เกือบลั่นหลายทีแล้ว ?
ผมเสียเงินซื้อ TSwipe พอเจอ Swype ตัดสินใจทิ้ง และเสียเงินซื้อ Swype
ปัจจุบันเจอ Gboard แรก ๆ ไม่ชิน ปัจจุบัน ยืนยันได้ว่าเป็น kebboard ที่แม่นที่สุดในปัจจุบันครับ
Update ล่าสุด ยิ่งไปกันใหญ่ เวิร์คมากกกก
ยอมทิ้ง Swype มาใช้ตัวนี้แทนเลย
แถมระบบพิมพ์ด้วยเสียง เหนือกว่า Swype ซึ่งเดิมผมว่าดีที่สุดอยู่แล้วอีก
ของฟรีและดี ก็มีครับ
ไม่ทราบว่าตอนนี้ sync คำข้ามเครื่องได้ยังครับ
ตอนนี้ ใช้อยู่เครื่องเดียวครับ อีกเครื่องไม่ได้เปิดมาพักใหญ่แล้วครับ ขออภัย
ขอบคุณครับ