WinkNLP เป็นไลบรารี JavaScript สำหรับการประมวลผลภาษาธรรมชาติ (NLP) ออกแบบมาโดยเฉพาะเพื่อทำให้การพัฒนาแอปพลิเคชัน NLP ง่ายขึ้น และ เร็วขึ้น winkNLP ได้รับการปรับให้เหมาะสมเพื่อความสมดุลที่เหมาะสมระหว่างประสิทธิภาพและความแม่นยำ
การรองรับการฝังคำช่วยปลดล็อกการวิเคราะห์ข้อความที่ลึกยิ่งขึ้น แสดงคำและข้อความเป็นเวกเตอร์ตัวเลขได้อย่างง่ายดาย ทำให้มีความแม่นยำมากขึ้นในงานต่างๆ เช่น ความคล้ายคลึงทางความหมาย การจัดหมวดหมู่ข้อความ และอื่นๆ แม้แต่ภายใน เบราว์เซอร์
มันถูกสร้างขึ้นมาใหม่โดยไม่ต้องพึ่งพาภายนอก และมีฐานโค้ดแบบลีนที่ ~10Kb ย่อขนาด & gzipped ความครอบคลุมการทดสอบประมาณ 100% และการปฏิบัติตามแนวทางปฏิบัติที่ดีที่สุดของ Open Source Security Foundation ทำให้ winkNLP เป็นเครื่องมือในอุดมคติสำหรับการสร้างระบบระดับการผลิตด้วยความมั่นใจ
WinkNLP พร้อมการสนับสนุน Typescript เต็มรูปแบบ ทำงานบน Node.js เว็บเบราว์เซอร์ และ Deno
ไทม์ไลน์ของบทความ Wikipedia | บริบทที่ตระหนักถึงคำว่าเมฆ | การตรวจหาประโยคสำคัญ |
---|---|---|
ไปที่ตัวอย่างสดเพื่อสำรวจเพิ่มเติม
WinkNLP สามารถประมวลผลข้อความดิบจำนวนมากได้อย่างง่ายดายด้วยความเร็วมากกว่า 650,000 โทเค็น/วินาที บน M1 Macbook Pro ทั้งในเบราว์เซอร์และสภาพแวดล้อม Node.js มันยังทำงานได้อย่างราบรื่นบนเบราว์เซอร์ของสมาร์ทโฟนระดับล่าง
สิ่งแวดล้อม | คำสั่งการเปรียบเทียบ |
---|---|
โหนด js | เกณฑ์มาตรฐาน/การรันของโหนด |
เบราว์เซอร์ | จะวัดความเร็วของ winkNLP บนเบราว์เซอร์ได้อย่างไร |
WinkNLP มีไปป์ไลน์การประมวลผลภาษาธรรมชาติ (NLP) ที่ครอบคลุมซึ่งครอบคลุมถึงโทเค็น การตรวจจับขอบเขตประโยค (sbd) การจัดการการปฏิเสธ การวิเคราะห์ความรู้สึก การแท็กส่วนของคำพูด (pos) การจดจำเอนทิตีที่มีชื่อ (ner) การจดจำเอนทิตีแบบกำหนดเอง (cer) . มันมีชุดคุณสมบัติที่หลากหลาย:
- โทเค็นไนเซอร์ที่รวดเร็ว ไม่มีการสูญเสีย และหลายภาษา | ตัวอย่างเช่น สตริงข้อความหลายภาษา "¡Hola! नमस्कार! Hi! Bonjour chéri" จะถูกแปลงเป็น ["¡", "Hola", "!", "नमस्कार", "!", "Hi", "!", "Bonjour", "chéri"] . โทเค็นเซอร์ประมวลผลข้อความด้วยความเร็วเกือบ 4 ล้าน โทเค็น/วินาทีบนเบราว์เซอร์ของ M1 MBP |
API ที่เป็นมิตรและใช้งานง่ายสำหรับนักพัฒนา | ด้วย winkNLP คุณสามารถประมวลผลข้อความใดๆ โดยใช้ไวยากรณ์ที่เรียบง่ายและประกาศได้ ตัวอย่างสดส่วนใหญ่มีโค้ด 30-40 บรรทัด |
- การแสดงภาพข้อความที่ดีที่สุดในระดับเดียวกัน | ทำเครื่องหมาย โทเค็น ประโยค เอนทิตี ฯลฯ โดยทางโปรแกรมโดยใช้เครื่องหมาย HTML หรือแท็กอื่น ๆ ที่คุณเลือก |
♻️ คุณสมบัติการประมวลผลข้อความที่กว้างขวาง | ลบและ/หรือรักษาโทเค็นด้วยคุณลักษณะเฉพาะ เช่น ส่วนของคำพูด ประเภทเอนทิตีที่มีชื่อ ประเภทโทเค็น คำหยุด รูปร่าง และอื่นๆ อีกมากมาย คำนวณคะแนนความง่ายในการอ่าน Flesch สร้าง n-กรัม; ทำให้เป็นมาตรฐาน, ย่อหรือลำต้น ลองดูว่าด้วยการประมวลผลข้อความล่วงหน้าประเภทที่เหมาะสม แม้แต่ตัวแยกประเภท Naive Bayes ก็บรรลุความแม่นยำ ที่น่าประทับใจ (≥90%) ในการวิเคราะห์ความรู้สึกและงานจำแนกเจตนาของแชทบอท |
- แบบจำลองภาษาที่ได้รับการฝึกอบรมล่วงหน้า | ขนาดกะทัดรัดเริ่มต้นที่ ~1MB (ย่อขนาด & gzipped) – ลดเวลาในการโหลดโมเดลลงอย่างมากเหลือเพียง ~1 วินาทีบนเครือข่าย 4G |
การฝังคำภาษาอังกฤษ 100 มิติสำหรับคำศัพท์ภาษาอังกฤษมากกว่า 350,000 คำ ซึ่งได้รับการปรับให้เหมาะสมสำหรับ winkNLP ช่วยให้การคำนวณการฝังประโยคหรือเอกสารเป็นเรื่องง่าย |
ใช้การติดตั้ง npm:
npm install wink-nlp --save
ในการใช้ winkNLP หลังการติดตั้ง คุณจะต้องติดตั้งโมเดลภาษาตามเวอร์ชันของโหนดที่ใช้ด้วย ตารางด้านล่างสรุปคำสั่งการติดตั้งเฉพาะเวอร์ชัน:
เวอร์ชัน Node.js | การติดตั้ง |
---|---|
16 หรือ 18 | npm install wink-eng-lite-web-model --save |
14 หรือ 12 | node -e "require('wink-nlp/models/install')" |
wink-eng-lite-web-model ได้รับการออกแบบมาเพื่อทำงานกับ Node.js เวอร์ชัน 16 หรือ 18 นอกจากนี้ยังสามารถทำงานบนเบราว์เซอร์ตามที่อธิบายไว้ในส่วนถัดไป นี่คือรุ่น ที่แนะนำ
คำสั่งที่สองจะติดตั้ง wink-eng-lite-model ซึ่งใช้งานได้กับ Node.js เวอร์ชัน 14 หรือ 12
เปิดใช้งาน esModuleInterop
และ allowSyntheticDefaultImports
ในไฟล์ tsconfig.json
:
"compilerOptions": {
"esModuleInterop": true,
"allowSyntheticDefaultImports": true,
...
}
หากคุณใช้ winkNLP ในเบราว์เซอร์ ให้ใช้ wink-eng-lite-web-model เรียนรู้เกี่ยวกับการติดตั้งและการใช้งานในคู่มือการใช้ winkNLP ในเบราว์เซอร์ สำรวจ สูตร winkNLP บน Observable สำหรับตัวอย่างที่ใช้เบราว์เซอร์สด
ทำตามตัวอย่างในการทำซ้ำ
นี่คือ "สวัสดีชาวโลก!" ของ winkNLP:
// Load wink-nlp package.
const winkNLP = require ( 'wink-nlp' ) ;
// Load english language model.
const model = require ( 'wink-eng-lite-web-model' ) ;
// Instantiate winkNLP.
const nlp = winkNLP ( model ) ;
// Obtain "its" helper to extract item properties.
const its = nlp . its ;
// Obtain "as" reducer helper to reduce a collection.
const as = nlp . as ;
// NLP Code.
const text = 'Hello World?! How are you?' ;
const doc = nlp . readDoc ( text ) ;
console . log ( doc . out ( ) ) ;
// -> Hello World?! How are you?
console . log ( doc . sentences ( ) . out ( ) ) ;
// -> [ 'Hello World?!', 'How are you?' ]
console . log ( doc . entities ( ) . out ( its . detail ) ) ;
// -> [ { value: '?', type: 'EMOJI' } ]
console . log ( doc . tokens ( ) . out ( ) ) ;
// -> [ 'Hello', 'World', '?', '!', 'How', 'are', 'you', '?' ]
console . log ( doc . tokens ( ) . out ( its . type , as . freqTable ) ) ;
// -> [ [ 'word', 5 ], [ 'punctuation', 2 ], [ 'emoji', 1 ] ]
ทดลองใช้ winkNLP บน RunKit
winkNLP ประมวลผลข้อความดิบที่ ~ 650,000 โทเค็นต่อวินาที ด้วย wink-eng-lite-web-model เมื่อเปรียบเทียบโดยใช้ "Ch 13 of Ulysses โดย James Joyce" บนเครื่อง M1 Macbook Pro ที่มี RAM ขนาด 16GB การประมวลผลรวมถึงไปป์ไลน์ NLP ทั้งหมด — โทเค็น, การตรวจจับขอบเขตประโยค, การจัดการการปฏิเสธ, การวิเคราะห์ความรู้สึก, การแท็กส่วนของคำพูด และการแยกเอนทิตีที่มีชื่อ ความเร็วนี้เหนือกว่าเกณฑ์มาตรฐานความเร็วที่มีอยู่มาก
การวัดประสิทธิภาพดำเนินการบน Node.js เวอร์ชัน 16 และ 18
วางแท็กชุดย่อยของคลังข้อมูล WSJ ด้วยความแม่นยำ ~ 95% ซึ่งรวมถึง โทเค็นของข้อความดิบก่อนที่จะติดแท็ก POS ความล้ำสมัยในปัจจุบันมีความแม่นยำประมาณ 97% แต่ที่ความเร็วต่ำกว่า และโดยทั่วไปจะคำนวณโดยใช้คลังข้อมูล pre-tokenized มาตรฐานทองคำ
การวิเคราะห์ความรู้สึกตามวัตถุประสงค์ทั่วไปจะให้คะแนน f ~84.5% เมื่อตรวจสอบความถูกต้องโดยใช้ชุดข้อมูลประโยคที่มีป้ายกำกับความรู้สึกของ Amazon Product Review ที่ UCI Machine Learning Repository ความแม่นยำของเกณฑ์มาตรฐานในปัจจุบันสำหรับโมเดล ที่ได้รับการฝึกอบรมมาโดยเฉพาะ สามารถอยู่ที่ประมาณ 95%
Wink NLP มอบประสิทธิภาพนี้โดยมีภาระบน RAM น้อยที่สุด ตัวอย่างเช่น จะประมวลผล History of India Volume I ทั้งหมดโดยมีความต้องการหน่วยความจำสูงสุดรวมไม่เกิน 80MB หนังสือเล่มนี้มีประมาณ 350 หน้าซึ่งแปลเป็นโทเค็นมากกว่า 125,000 รายการ
โปรดถามที่ Stack Overflow หรือพูดคุยที่การสนทนา Wink JS GitHub หรือแชทกับเราที่ Wink JS Gitter Lobby
หากคุณพบข้อบกพร่องและยังไม่มีการรายงานข้อบกพร่องดังกล่าว ให้แจ้งปัญหาใหม่หรือพิจารณาแก้ไขและส่ง PR
กำลังมองหาคุณสมบัติใหม่ โปรดขอผ่านฟอรัมสนทนาเกี่ยวกับคุณสมบัติและแนวคิดใหม่ หรือพิจารณาเป็นผู้สนับสนุน
WinkJS เป็นตระกูลแพ็คเกจโอเพ่นซอร์สสำหรับ การประมวลผลภาษาธรรมชาติ การเรียนรู้ของเครื่อง และ การวิเคราะห์ทางสถิติ ใน NodeJS โค้ดได้รับ การบันทึกไว้อย่างละเอียด เพื่อให้มนุษย์เข้าใจได้ง่าย และ ครอบคลุมการทดสอบประมาณ 100% สำหรับความน่าเชื่อถือในการสร้างโซลูชันระดับการผลิต
Wink NLP เป็นลิขสิทธิ์ 2017-24 GRAYPE Systems Private Limited
ได้รับอนุญาตภายใต้เงื่อนไขของใบอนุญาต MIT