WinkNLP adalah perpustakaan JavaScript untuk Natural Language Processing (NLP). Dirancang khusus untuk membuat pengembangan aplikasi NLP lebih mudah dan cepat , winkNLP dioptimalkan untuk keseimbangan yang tepat antara kinerja dan akurasi.
Dukungan penyematan kata membuka analisis teks yang lebih dalam. Merepresentasikan kata dan teks sebagai vektor numerik dengan mudah, sehingga memberikan akurasi lebih tinggi dalam tugas seperti kesamaan semantik, klasifikasi teks, dan lainnya – bahkan di dalam browser .
Itu dibangun tanpa ketergantungan eksternal dan memiliki basis kode ramping ~10Kb yang diperkecil & di-gzip. Cakupan pengujian ~100% dan kepatuhan terhadap praktik terbaik Open Source Security Foundation menjadikan winkNLP alat yang ideal untuk membangun sistem tingkat produksi dengan percaya diri.
WinkNLP dengan dukungan TypeScript penuh, berjalan di Node.js, browser web dan Deno.
Garis waktu artikel Wikipedia | Awan kata sadar konteks | Deteksi kalimat kunci |
---|---|---|
Kunjungi contoh langsung untuk menjelajah lebih jauh.
WinkNLP dapat dengan mudah memproses teks mentah dalam jumlah besar dengan kecepatan lebih dari 650.000 token/detik pada M1 Macbook Pro di browser dan lingkungan Node.js. Bahkan berjalan lancar di browser ponsel pintar kelas bawah.
Lingkungan | Perintah Pembandingan |
---|---|
Node.js | benchmark simpul/jalankan |
Peramban | Bagaimana cara mengukur kecepatan winkNLP di browser? |
WinkNLP memiliki saluran pemrosesan bahasa alami (NLP) komprehensif yang mencakup tokenisasi, deteksi batas kalimat (sbd), penanganan negasi, analisis sentimen, penandaan part-of-speech (pos), pengenalan entitas bernama (ner), pengenalan entitas khusus (cer) . Ini menawarkan serangkaian fitur yang kaya:
? Tokenizer cepat, lossless & multibahasa | Misalnya, string teks multibahasa "¡Hola! नमस्कार! Hi! Bonjour chéri" diberi token sebagai ["¡", "Hola", "!", "नमस्कार", "!", "Hi", "!", "Bonjour", "chéri"] . Tokenizer memproses teks dengan kecepatan mendekati 4 juta token/detik di browser M1 MBP. |
API yang ramah pengembang dan intuitif | Dengan winkNLP, proses teks apa pun menggunakan sintaksis deklaratif yang sederhana; sebagian besar contoh langsung memiliki 30-40 baris kode. |
? Visualisasi teks terbaik di kelasnya | Tandai token, kalimat, entitas, dll secara terprogram menggunakan tanda HTML atau tag lain pilihan Anda. |
♻️ Fitur pemrosesan teks yang luas | Menghapus dan/atau mempertahankan token dengan atribut tertentu seperti part-of-speech, tipe entitas bernama, tipe token, stop word, bentuk, dan banyak lagi; menghitung skor kemudahan membaca Flesch; menghasilkan n-gram; normalisasi, lemmatis, atau batang. Lihat bagaimana dengan jenis prapemrosesan teks yang tepat, bahkan pengklasifikasi Naive Bayes mencapai akurasi yang mengesankan (≥90%) dalam analisis sentimen dan tugas klasifikasi maksud chatbot. |
? Model bahasa terlatih | Ukuran ringkas mulai dari ~1 MB (diperkecil & di-gzip) – mengurangi waktu pemuatan model secara drastis hingga ~1 detik di jaringan 4G. |
Penyematan kata bahasa Inggris 100 dimensi untuk lebih dari 350 ribu kata bahasa Inggris, yang dioptimalkan untuk winkNLP. Memungkinkan penghitungan penyematan kalimat atau dokumen dengan mudah. |
Gunakan instalasi npm:
npm install wink-nlp --save
Untuk menggunakan winkNLP setelah instalasi, Anda juga perlu menginstal model bahasa sesuai dengan versi node yang digunakan. Tabel di bawah menguraikan perintah penginstalan khusus versi:
Versi Node.js | Instalasi |
---|---|
16 atau 18 | npm install wink-eng-lite-web-model --save |
14 atau 12 | node -e "require('wink-nlp/models/install')" |
Model web wink-eng-lite dirancang untuk bekerja dengan Node.js versi 16 atau 18. Model ini juga dapat bekerja pada browser seperti yang dijelaskan di bagian selanjutnya. Ini adalah model yang direkomendasikan .
Perintah kedua menginstal wink-eng-lite-model, yang berfungsi dengan Node.js versi 14 atau 12.
Aktifkan esModuleInterop
allowSyntheticDefaultImports
di file tsconfig.json
:
"compilerOptions": {
"esModuleInterop": true,
"allowSyntheticDefaultImports": true,
...
}
Jika Anda menggunakan winkNLP di browser, gunakan wink-eng-lite-web-model. Pelajari tentang pemasangan dan penggunaannya di panduan kami untuk menggunakan winkNLP di browser. Jelajahi resep winkNLP di Observable untuk contoh langsung berbasis browser.
Ikuti contoh pada replit.
Inilah pesan "Halo Dunia!" dari 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 ] ]
Bereksperimenlah dengan winkNLP di RunKit.
WinkNLP memproses teks mentah pada ~650.000 token per detik dengan model web wink-eng-lite-nya, ketika dibandingkan menggunakan "Bab 13 dari Ulysses oleh James Joyce" pada mesin M1 Macbook Pro dengan RAM 16 GB. Pemrosesan tersebut mencakup keseluruhan pipeline NLP — tokenisasi, deteksi batas kalimat, penanganan negasi, analisis sentimen, penandaan part-of-speech, dan ekstraksi entitas bernama. Kecepatan ini jauh melampaui tolok ukur kecepatan yang berlaku.
Benchmark dilakukan pada Node.js versi 16, dan 18.
Ini menandai subset korpus WSJ dengan akurasi ~95% — ini termasuk tokenisasi teks mentah sebelum penandaan pos . Kecanggihan saat ini memiliki akurasi ~97% tetapi pada kecepatan lebih rendah dan umumnya dihitung menggunakan korpus pra-tokenisasi standar emas.
Analisis sentimen tujuan umumnya memberikan f-score ~84,5% , ketika divalidasi menggunakan Kumpulan Data Kalimat Berlabel Sentimen Tinjauan Produk Amazon di Repositori Pembelajaran Mesin UCI. Akurasi benchmark saat ini untuk model yang dilatih secara khusus dapat berkisar sekitar 95%.
Wink NLP memberikan kinerja ini dengan beban minimal pada RAM. Misalnya, ia memproses seluruh Sejarah India Volume I dengan total kebutuhan memori puncak di bawah 80MB . Buku ini memiliki sekitar 350 halaman yang berarti lebih dari 125,000 token.
Silakan bertanya di Stack Overflow atau berdiskusi di Diskusi Wink JS GitHub atau mengobrol dengan kami di Wink JS Gitter Lobby.
Jika Anda menemukan bug dan bug serupa belum dilaporkan, ajukan masalah baru atau pertimbangkan untuk memperbaikinya dan mengirimkan PR.
Mencari fitur baru, mintalah melalui forum diskusi fitur & ide baru atau pertimbangkan untuk menjadi kontributor.
WinkJS adalah rangkaian paket sumber terbuka untuk Pemrosesan Bahasa Alami , Pembelajaran Mesin , dan Analisis Statistik di NodeJS. Kode ini didokumentasikan secara menyeluruh agar mudah dipahami manusia dan memiliki cakupan pengujian ~100% untuk keandalan guna membangun solusi tingkat produksi.
Wink NLP adalah hak cipta 2017-24 GRAYPE Systems Private Limited.
Ini dilisensikan berdasarkan ketentuan Lisensi MIT.