/node-thaidict

พจนานุกรม ไทย-อังกฤษ สำหรับ Node.js มีพื้นฐานอยู่บน Lexitron

Primary LanguageJavaScriptMIT LicenseMIT

node-thaidict

พจนานุกรม ไทย-อังกฤษ สำหรับ Node.js มีพื้นฐานอยู่บน Lexitron โดยไลบารีนี้มีรูปแบบการแปลไทยเป็นอังกฤษ 40,851 รูปแบบ และรูปแบบการแปลอังกฤษเป็นไทย 83,232 รูปแบบ

##วิธีการติดตั้ง

npm install thaidict

##วิธีการใช้งาน

ไลบารี่จะรับคำศัพท์เข้าไปแล้วค้นหาผลลัพทธ์ โดยคำศัพท์จะอยู่ในรูปแบบของคำ หรือ WildCard เช่น คำที่ขึ้นต้นด้วย กระ ค้นหานด้วยคำว่า กระ* คำที่ลงท้ายด้วยคำว่า มล ค้นหาด้วยคำว่า *มล คำที่ขึ้นต้นด้วย กระ ลงท้ายด้วย ร่วม ค้นหาด้วยคำว่า กระ*ร่ม ในคำศัพท์มีคำว่า นอน อยู่ส่วนใดส่วนหนึ่งให้ค้นหาด้วยคำว่า *นอน* ขึ้นต้นด้วย ก ลงท้ายด้วย ม ยาว 3 ตัวอักษร ค้นหาด้วยคำว่า ก#ม ขึ้นต้นด้วย ก ลงท้ายด้วย ม ยาว 4 ตัวอักษรค้นหาด้วยคำว่า ก##ม เป็นต้น โดยตอบกับผลลัพธ์มาในรูปแบบ json (กรณีใช้เป็นไลบารี่ json นั้นจะถูก parse ไว้แล้ว) การใช้งานแบ่งเป็น 3 รูปแบบได้แก่

###Command Line

สำหรับผู้ที่ต้องการใช้งานแปลภาษาโดยไม่ได้ใช้ในส่วนของไลบารี่ เมื่อท่านติดตั้ง Node.js ไว้ล่วงหน้าแล้ว สามารถติดตั้งได้โดยคำสั่ง

npm install -g thaidict

จากนั้น แสดงข้อมูลของศัพท์โดยคำสั่ง

thaidict "คำที่ต้องการทราบ"

Asynchronous

แนะนำให้ใช้งานในรูปแบบ Asynchronous เพื่อประสบการณ์ที่ดีในการใช้งาน

var thaidict = require("thaidict");
thaidict.init(function(){
	thaidict.search("คำที่ต้องการค้นหา",function(result){
		console.log(result);
	});
});

Synchronous

เหมาะสำหรับผู้ที่ต้องการแปลไทยอย่างง่าย

var thaidict = require("thaidict");
thaidict.init();
console.log(thaidict.search("คำที่ต้องการค้นหา"));

ประสิทธิภาพ

สำหรับไลบารี่นี้ ใช้เวลาเตรียมการ O(n) การค้นหาใช้เวลา O(n) โดยใช้วิธีการ วน for เพื่อไล่ตรวจสอบสมาชิกชื่อ search ด้วย Regular Expression โดยคุณสามารถสร้างวิธีการค้นหาในแบบของคุณได้เพิ่มให้การค้นหาทำได้เร็วขึ้น โดยเมื่อหลังจากการสั่ง thaidict.init() ไปแล้ว ท่านสามารถเข้าถึงข้อมูลของ array ที่เก็บข้อมูลของศัพท์ผ่านทาง thaidict.dictThai2Eng สำหรับพจนานุกรมภาษาไทยเป็นภาษาอังกฤษ และ thaidict.dictEng2Thai สำหรับพจนานุกรมภาษาอังกฤษเป็นภาษาไทย โดยสมาชิกของ object แต่ละตัวใน array จะเป็นไปตามรูปแบบผลลัพธ์ที่จะอธิบายต่อไป

รูปแบบผลลัพธ์

ไลบารี่จะตอบกลับ JSON มีโครงสร้างเป็น array ของ object แต่ละคำ

[
	Object,
	Object,
	...,
	Object
]

และเมื่อค้นหาศัพท์ใดๆไม่เจอจะคืนค่าออกมาเป็น array ว่างดังนี้

[]

ซึ่งในแต่ละ Object ของคำประกอบด้วยสมาชิกต่างๆดังนี้

  • Object
    • search
    • result
    • type
    • synonym
    • antonym
    • relate
    • define
    • classifier
    • sample
    • tag

สำหรับ search,result,type จะมีในทุก Object ส่วนสมาชิกอื่นๆ อาจไม่มีก็ได้ จึงขอให้ระวังเรื่อง Null Pointer Exception ไว้ด้วย

ตัวอย่าง Object แบบเต็ม

{
        "search": "เทคโนโลยีสมัยใหม่",
        "result": "advanced technologies",
        "type": "N",
        "synonym": [
          "เทคโนโลยีทันสมัย"
        ],
        "antonym": [
          "เทคโนโลยีรุ่นเก่า"
        ],
        "sample": "คอมพิวเตอร์เป็นปัจจัยสำคัญในการพัฒนาเทคโนโลยีสมัยใหม่เกือบทุกชนิด",
        "classifier": [
          "ชนิด"
        ],
        "tag" : [
          "วิทยาศาสตร์"
        ]
}

ความหมายของสามาชิกใน Object

search

คือ สมาชิกสำหรับค้นหาคำหลัก เช่น ต้องการเปลี่ยนคำว่า "dog" จากอังกฤษเป็นไทยให้ค้นหาสมาชิก search จาก object ที่อยู่เป็น array ใน thaidict.dictEng2Thai ก็จะพบกับข้อมูลของคำว่า "dog"

result

คือ คำตอบของคำที่ค้นหา เช่น ท่านค้นหาคำว่า "dog" จากสมาชิก search จะพบกับ object ซึ่งใน object นั้นจะมีสมาชิกชื่อว่า result เก็บคำว่า "สุนัข" อยู่ ซึ่งนั่นหมายความว่า "dog" แปลว่า "สุนัข"

type

คือ ประเภทของคำศัพท์ซึ่งเก็บไว้เป็นตัวย่อ พิมพ์ด้วยตัวอักษรใหญ่ทั้งหมด ซึ่งตัวย่อทั้งหมดประกอบด้วย

  • ABBR (Abbreviation)
  • ADJ (Adjective)
  • ADV (Adverb)
  • AUX (Auxiliary verb)
  • CLAS (Classifier)
  • CONJ (Conjunction)
  • DET (Determiner)
  • IDM (Idiom)
  • INT (Interjection)
  • N (Noun)
  • PHRV (Pharse verb)
  • PREP (Preposition)
  • PRF (Prefix)
  • PRON (Pronoun)
  • SL (Slang)
  • SUF (Suffix)
  • V (verb)
  • VI (Transitive verb)
  • VT (Intransitive verb)
  • VI, VT (Intransitive and Transitive verb)

synonym

คือคำที่คล้ายกันกับคำค้นหา สมาชิกนี้เก็บข้อมูลเป็น array โดยคำที่คล้ายกันกับคำค้นหาทั้งหมดจะถูกเก็บอยู่ใน array

antonym

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

relate

คือคำที่คล้ายกันกับผลลัพทธ์ สมาชิกนี้เก็บข้อมูลเป็น array โดยคำที่คล้ายกันกับผลลัพทธ์ทั้งหมดจะถูกเก็บอยู่ใน array

define

คือ ความหมายของคำค้นหา มีเฉพาะการแปลจากไทยเป็นอังกฤษเท่านั้น

classifier

คือ ลักษณะนามของคำค้นหา มีเฉพาะการแปลจากไทยเป็นอังกฤษเท่านั้น

sample

คือ ตัวอย่างประโยคของคำค้นหา มีเฉพาะการแปลจากไทยเป็นอังกฤษเท่านั้น

tag

คือ แท็กสำหรับบอกประเภทคำ มีเฉพาะการแปลจากไทยเป็นอังกฤษเท่านั้น โดย tag ต่างๆนั้นถูกเก็บอยู่ในรูปแบบ array โดย tag ทีมีทั้งสิ้นมีดังนี้

  • กฎหมาย
  • กลอน
  • กวี
  • กะเหรี่ยง
  • การเมือง
  • คณิตศาสตร์
  • จีน
  • ชวา
  • ญี่ปุ่น
  • ดาราศาสตร์
  • ตะเลง
  • ถิ่น
  • ทมิฬ
  • บาลี
  • ปาก
  • ฝรั่งเศส
  • พายัพ
  • ฟิสิกส์
  • ภูมิศาสตร์
  • มลายู
  • ราชาศัพท์
  • วิทยาศาสตร์
  • สรีระ
  • สันสกฤต
  • สำนวน
  • สแลง
  • อังกฤษ
  • อีสาน
  • อุปมา
  • ฮินดี
  • เขมร
  • เคมี
  • เปอร์เซีย
  • เหนือ
  • แพทย์
  • แสลง
  • โบราณ
  • โปรตุเกส
  • โวหาร
  • โหราศาสตร์
  • ใต้
  • ไวยากรณ์

เกี่ยวกับ

node-thaidict นี่พัฒนาต่อยอดขึ้นมาจาก lexitron 2.0 ซึ่งต้นฉบับ lexitron 2.0 นั้นสร้างโดย NECTEC และทำการปรับเปลี่ยนและแก้ไขให้สามารถใช้ได้กับ Node.js ภัคพล พงษ์ทวี