การประมวลภาษาธรรมชาติที่ได้ออกไปนอกหน่วยวิจัย
วีร์ สัตยมาศ
2016-02-10
วาระ
- การเข้ารหัสอักษร
- การตัดคำ
- ระบบสนทนาอัตโนมัติ
- หน่วยความจำแปล
- การแปลภาษาอัตโนมัติ
- การวิเคราะห์ทัศนคติอัตโนมัติ
- ความเร็ว
รหัสเกษตร
รศ.ยืน ภู่วรวรรณ
มหาวิทยาลัยเกษตรศาสตร์
มอก.620 (TIS-620)
$ cat ko_tis620.txt
ก
$ hexdump -C ko_tis620.txt
00000000 a1 0a |..|
00000002
$
CP874
Windows 874
ISO/IEC 8859-11
Codepoint
Unicode
codepoint('ก') = 3585 (0x0E01)
TIS-620
codepoint('ก') = 161 (0xA1)
การเข้ารหัสอักษร (character encoding) สำหรับ Unicode
UTF-32
ตัวละ 4 ไบต์ เสมอ
- codepoint('ก') = 0x0E01
- codepoint('A') = 0x41
- encode_utf32("กA") =
01
0E
00
00
41
00
00
00
UTF-16
ตัวละ 2 ไบต์ หรือ 4 ไบต์
- codepoint('ก') = 0x0E01
- codepoint('A') = 0x41
- codepoint('𨭎') = 0x28B4E
- ((0x28B4E-0x10000)/0x400)+0xD800 = 0xD862
- ((0x28B4E-0x10000) mod 0x400)+0xDC00 = 0xDF4E
encode_utf16("กA𨭎") =
01
0E
41
00
62
D8
4E
DF
UTF-8
1 ไบต์ ถึง 6 ไบต์
- codepoint('ก') = 0x0E01
- ((0x0E01 >> 12) & 0xF) + 0x0E = 0x0E
- ((0x0E01 >> 6) & 0x3F) + 0x80 = 0xB8
- (0x0E01 & 0xF) + 0x80 = 0x81
- codepoint('A') = 0x41
- encode_utf8("กA") =
0E
B8
81
41
Python 2.7
- len("A")
- len("ก")
- len(u"ก")
- len(u"A")
Java (OpenJDK 8)
- "A".length()
- "ก".length()
- "𨭎".length()
ตัดคำแบบใช้พจนานุกรม
รศ.ยืน ภู่วรวรรณ
มหาวิทยาลัยเกษตรศาสตร์
ตัดคำแบบใช้พจนานุกรม (2)
พจนานุกรม: (1)กา (2)กาม (3)สุข (4)ใน (5)ทั้งหลาย
กามสุขในกามทั้งหลาย
- |กา(1)|มสุขในกามทั้งหลาย
- |กาม(2)|สุขในกามทั้งหลาย
- |กาม(2)|สุข(3)|ใน(4)|กาม(2)|ทั้งหลาย(5)|
ซอฟท์แวร์เสรี
- ICU
- libthai
- wordcut (.js)
International Components for Unicode (ICU)
- พัฒนาโดย IBM และหมู่คณะอื่น ๆ
- ทำอื่น ๆ นอกจากตัดคำได้ด้วย
- เขียนด้วย C++ เป็นส่วนมาก
- ใช้ตัดคำใน OS X, Java Runtime, LibreOffice/OpenOffice และอื่น ๆ
libthai
- โดยนายเทพพิทักษ์ การุณบุญญานันท์ เป็นหลัก
- เขียนด้วย C
- ใช้ใน Pango, Gnome,Firefox บน unix-like

ภาพดัดแปลงมาจากของ Abel Cheung
ที่ที่น่าจะมีโปรแกรมตัดคำแบบปิด
- Google
- Microsoft
- AsiaOnline
โปรแกรมยอดนิยม
- Google Translate
- Bing Translator
เทคนิคที่ใช้
- ตัดคำ
- ตัดประโยค
- หาส่วนที่ตรงกันอัตโนมัติ
หาส่วนที่ตรงกันอัตโนมัติ
การวิเคราะห์ทัศนคติอัตโนมัติ
การวิเคราะห์ทัศนคติอัตโนมัติ
"ท่าน นายกประยุทธ สุดยอดดดดดดดดดด.....เข้ามาทำงานแป๊บเดียวราคาน้ำมันลดลงปั๊บเลย" (http://pantip.com/topic/32971376)
- เรื่อง: ประยุทธ
- คำแสดงขั้ว: สุดยอด
วิเคราะห์ละเอียดขึ้น
บาร์ใหม่อร่อยอย่างสัด
- เรื่อง: บาร์ใหม่
- คำแสดงขั้ว: อร่อย (+), สัด (-)
วิเคราะห์ละเอียดขึ้น (2)
"ม.เกษตรนี่ห้องน้ำใหญ่ดี"
- เรื่อง: ม.เกษตร
- เรื่องละเอียดขึ้น: ห้องน้ำ
- คำแสดงขั้ว: ดี
วิเคราะห์ละเอียดขึ้น (3)
"ม.เกษตรนี่ห้องน้ำใหญ่ดีจริง ๆ"
- เรื่อง: ม.เกษตร
- เรื่องละเอียดขึ้น: ห้องน้ำ
- คำแสดงขั้ว: ดี
- คำขยาย: จริง ๆ
การประมวลภาษาธรรมชาติใช้ CPU มาก
ข้อเสนอ
- อย่าใช้ CPU มาก; Algorithm ; C++ Rust
- เข้า Queue; ZeroMQ, RabbitMQ
- Go, node.js ช่วยไหม?
รศ.ดร. อัศนีย์ ก่อตระกูล
ห้อง 810
ดร. หัชทัย ชาญเลขา
ห้อง 809