ตัวตรวจการสะกดที่เรียบง่ายและรวดเร็วพร้อมคำแนะนำการสะกดคำและการรวมของอิเล็กตรอน
Simple spellchecker เป็นโมดูลการสะกดคำสำหรับ node.js ที่อนุญาตให้ตรวจสอบว่าคำที่สะกดผิดและเพื่อรับคำแนะนำการสะกดคำ
มันมาพร้อมกับพจนานุกรมสำหรับภาษาอังกฤษ, สเปน, ฝรั่งเศส, เยอรมันและดัตช์ แต่คุณสามารถเพิ่มภาษาเพิ่มเติมได้อย่างง่ายดายเพียงแค่กำหนดไฟล์ข้อความด้วยรายการคำที่ถูกต้อง
นอกจากนี้ยังมีเครื่องมือ CLI ที่อนุญาตให้ตรวจสอบคำจากบรรทัดคำสั่ง
ในการใช้โมดูลคุณต้องติดตั้งก่อนโดยใช้ NPM
npm install simple-spellchecker
จากนั้นต้องการโมดูลรับวัตถุ Dictionary
และเรียกใช้วิธีการของพวกเขา
var SpellChecker = require ( 'simple-spellchecker' ) ;
SpellChecker . getDictionary ( "fr-FR" , function ( err , dictionary ) {
if ( ! err ) {
var misspelled = ! dictionary . spellCheck ( 'maisonn' ) ;
if ( misspelled ) {
var suggestions = dictionary . getSuggestions ( 'maisonn' ) ;
}
}
} ) ;
โมดูลมีสามวิธีสาธารณะ: getDictionary()
, getDictionarySync()
และ normalizeDictionary()
วิธีนี้อนุญาตให้รับอิน Dictionary
จากไฟล์
พารามิเตอร์:
fileName
: ชื่อของไฟล์พจนานุกรม วิธีนี้จะค้นหาไฟล์ที่มีส่วนขยาย .dic
ก่อนหากไม่พบนั้นจะค้นหา .zip
และกำลังจะคลายซิปfolderPath
: โฟลเดอร์ที่ไฟล์พจนานุกรมตั้งอยู่ พารามิเตอร์นี้เป็นทางเลือกโดยค่าเริ่มต้นจะถือว่าไฟล์อยู่ในโฟลเดอร์ dict
callback
: ฟังก์ชั่นที่จะถูกเรียกใช้เพื่อส่งคืนวัตถุ Dictionary
ตัวอย่าง:
var SpellChecker = require ( 'simple-spellchecker' ) ;
SpellChecker . getDictionary ( "fr-FR" , function ( err , result ) {
var dictionary = result ;
} ) ;
วิธีนี้อนุญาตให้รับอิน Dictionary
จากไฟล์ในแบบซิงโครนัส
พารามิเตอร์:
fileName
: ชื่อของไฟล์พจนานุกรม ไฟล์ต้องมีส่วนขยาย. .dic
folderPath
: โฟลเดอร์ที่ไฟล์พจนานุกรมตั้งอยู่ พารามิเตอร์นี้เป็นทางเลือกโดยค่าเริ่มต้นจะถือว่าไฟล์อยู่ในโฟลเดอร์ dict
ผลตอบแทน:
Dictionary
ตัวอย่าง:
var SpellChecker = require ( 'simple-spellchecker' ) ;
var dictionary = SpellChecker . getDictionarySync ( "fr-FR" ) ;
วิธีนี้จะอ่านไฟล์พจนานุกรม UTF-8 ลบอักขระ BOM และ r
และเรียงลำดับรายการคำ
พารามิเตอร์:
inputPath
: เส้นทางของไฟล์พจนานุกรมoutputPath
: เส้นทางสำหรับไฟล์พจนานุกรมปกติ พารามิเตอร์นี้เป็นทางเลือกโดย Deafult ไฟล์ต้นฉบับถูกเขียนทับcallback
: ฟังก์ชั่นที่จะถูกเรียกใช้เมื่อกระบวนการเสร็จสิ้นตัวอย่าง:
var SpellChecker = require ( 'simple-spellchecker' ) ;
SpellChecker . normalizeDictionary ( inputFile , outputFile , function ( err , success ) {
if ( success ) console . log ( "The file was normalized" ) ;
} ) ;
คลาส Dictionary
มีวิธีการสาธารณะหกวิธี: getLength()
, setWordlist()
, spellCheck()
, isMisspelled()
, getSuggestions()
และ checkAndSuggest()
วิธีนี้ช่วยให้ได้ปริมาณคำที่พจนานุกรมมี
ผลตอบแทน:
วิธีนี้อนุญาตให้ตั้งค่าคำของพจนานุกรม
พารามิเตอร์:
wordlist
: อาร์เรย์ของสตริงวิธีนี้อนุญาตให้ตรวจสอบเป็นคำที่เขียนถูกต้องหรือไม่
พารามิเตอร์:
word
: คำที่จะตรวจสอบผลตอบแทน:
true
ถ้าคำนั้นอยู่ในพจนานุกรม false
ถ้าไม่ วิธีนี้ช่วยให้สามารถตรวจสอบได้ว่าเป็นคำที่สะกดผิดหรือไม่
พารามิเตอร์:
word
: คำที่จะตรวจสอบผลตอบแทน:
true
ถ้าคำนั้นสะกด false
ถ้าไม่ วิธีนี้ช่วยให้ได้รับคำแนะนำการสะกดคำสำหรับคำ
พารามิเตอร์:
word
: คำที่ใช้ในการสร้างคำแนะนำlimit
: จำนวนคำแนะนำสูงสุดที่จะได้รับ (โดยค่าเริ่มต้น, 5)maxDistance
: ระยะการแก้ไข สูงสุดที่คำสามารถมีได้จากพารามิเตอร์ word
เพื่อที่จะได้รับการพิจารณาว่าเป็นคำแนะนำที่ถูกต้อง (โดยค่าเริ่มต้น 2)ผลตอบแทน:
วิธีนี้ช่วยให้สามารถตรวจสอบได้ว่าคำที่สะกดผิดและรับคำแนะนำการสะกดคำหรือไม่
พารามิเตอร์:
word
: คำที่จะตรวจสอบlimit
: จำนวนคำแนะนำสูงสุดที่จะได้รับ (โดยค่าเริ่มต้น, 5)maxDistance
: ระยะการแก้ไข สูงสุดที่คำสามารถมีได้จากพารามิเตอร์ word
เพื่อที่จะได้รับการพิจารณาว่าเป็นคำแนะนำที่ถูกต้อง (โดยค่าเริ่มต้น 2)ผลตอบแทน:
misspelled
ซึ่งมีบูลีนและ suggestions
ซึ่งมีอาร์เรย์ของสตริง วิธีนี้เพิ่มนิพจน์ทั่วไปที่จะใช้เพื่อตรวจสอบว่าคำนั้นถูกต้องแม้ว่าจะไม่ได้อยู่ในพจนานุกรม
สิ่งนี้อาจมีประโยชน์เมื่อหลีกเลี่ยงการทำเครื่องหมายคำพิเศษเช่นการสะกดผิดเช่นตัวเลขอีเมลหรือที่อยู่ URL
พารามิเตอร์:
regex
: วัตถุนิพจน์ทั่วไป วิธีนี้จะลบนิพจน์ทั่วไปก่อนหน้านี้ทั้งหมดที่เพิ่มเข้ามาโดยใช้วิธี addRegex()
ในการใช้พจนานุกรมที่กำหนดเองคุณต้องกำหนดไฟล์ข้อความด้วยรายการคำที่ถูกต้องซึ่งแต่ละคำจะถูกคั่นด้วยบรรทัดใหม่
ส่วนขยายของไฟล์จะต้องเป็น .dic
และชื่อควร (ควร) แต่งโดยรหัสภาษาและผู้ออกแบบภูมิภาค (เช่น es-AR
ถ้าภาษาเป็นภาษาสเปนและภูมิภาคคืออาร์เจนตินา)
นอกจากนี้คุณยังสามารถแพ็คไฟล์ในแพ็คเกจ zip โมดูลจะสามารถคลายซิปและอ่านได้ตราบใดที่ไฟล์ .zip
มีชื่อเดียวกันมีไฟล์ .dic
(เช่นไฟล์ es-AR.zip
ที่มีไฟล์ es-AR.dic
)
ไฟล์จะต้องเข้ารหัสใน UTF8 (โดยไม่มี BOM) คำจะต้องคั่นด้วย ฟีดบรรทัด (เช่น n
) และไม่ได้มี การส่งคืนการขนส่ง บวกกับ ฟีดบรรทัด (เช่น rn
) และคำจะต้องเรียงลำดับ ตามลำดับจากน้อยไปมาก
โมดูลสามารถลบอักขระที่ไม่ต้องการทั้งหมดและเรียงลำดับคำได้หากคุณเรียกใช้วิธี normalize()
หรือแพ็คไฟล์ในไฟล์ zip (โมดูลเรียกเมธอด normalize()
โดยอัตโนมัติหลังจากคลายซิป)
โมดูลมาพร้อมกับสคริปต์ที่ช่วยให้พจนานุกรมปกติและทดสอบพวกเขา
ในการทดสอบไฟล์พจนานุกรมคุณต้องเรียกใช้สคริปต์ที่ระบุโฟลเดอร์และชื่อของไฟล์พจนานุกรมและคำที่คุณต้องการทดสอบ
ตัวอย่างเช่นประโยคต่อไปนี้จะค้นหาในโฟลเดอร์ dict
เป็นพจนานุกรมซึ่งอยู่ในไฟล์ en-GB.dic
หรือ en-GB.zip
และจะตรวจสอบว่าคำว่า house
นั้นสะกดผิดหรือไม่และกำลังค้นหา คำแนะนำการสะกดคำบางอย่าง
node cli.js check "./dict" en-GB house
ในการทำให้ไฟล์พจนานุกรมเป็นปกติคุณต้องเรียกใช้สคริปต์ที่ระบุเส้นทางของไฟล์:
node cli.js normalize "./dict/en-GB.dic"
หากคุณไม่ต้องการแทนที่ไฟล์ต้นฉบับคุณสามารถระบุพา ธ สำหรับไฟล์เอาต์พุต:
node cli.js normalize "./dict/en-GB.dic" "C:/output/en-GB.dic"
มีหลายวิธีที่คุณสามารถรวมโมดูลนี้เข้ากับอิเล็กตรอน แต่ถ้าคุณต้องการจุดเริ่มต้นตัวอย่างต่อไปนี้จะแสดงวิธีเปิดใช้งานพจนานุกรมภาษาอังกฤษ:
1) ติดตั้งโมดูลเป็นการพึ่งพาโครงการของคุณ ( npm install simple-spellchecker --save
)
2) ในกระบวนการหลักต้องใช้โมดูลโหลดพจนานุกรมและกำหนดฟังก์ชั่นเพื่อเข้าถึงวิธีการของเขา:
// Initialization.
var SpellChecker = require ( 'simple-spellchecker' ) ;
var myDictionary = null ;
// Load dictionary.
SpellChecker . getDictionary ( "en-US" , "./node_modules/simple-spellchecker/dict" , function ( err , result ) {
if ( ! err ) {
myDictionary = result ;
}
} ) ;
// Define function for consult the dictionary.
ipcMain . on ( 'checkspell' , function ( event , word ) {
var res = null ;
if ( myDictionary != null && word != null ) {
res = myDictionary . spellCheck ( word ) ;
}
event . returnValue = res ;
} ) ;
3) ในกระบวนการเรนเดอร์กำหนดผู้ให้บริการตรวจสอบการสะกดซึ่งใช้พจนานุกรมที่โหลดก่อนหน้านี้
// Get web frame.
var webFrame = require ( 'electron' ) . webFrame ;
webFrame . setSpellCheckProvider ( "en-US" , false , {
spellCheck : function ( text ) {
var res = ipcRenderer . sendSync ( 'checkspell' , text ) ;
return res != null ? res : true ;
}
} ) ;
โมดูลได้รับการทดสอบบางส่วนโดย file test.js
(ใช้ Mocha และ Chai ) ในการเรียกใช้การทดสอบเพียงดำเนินการ npm test
simple cellchecker เป็นซอฟต์แวร์ฟรี คุณสามารถแจกจ่ายซ้ำและ/หรือแก้ไขภายใต้ข้อกำหนดของใบอนุญาตสาธารณะ Mozilla v2.0 คุณควรได้รับสำเนา MPL 2.0 พร้อมกับห้องสมุดนี้มิฉะนั้นคุณสามารถรับได้ที่ http://mozilla.org/mpl/2.0/