Rumah  >  Artikel  >  hujung hadapan web  >  Pelajari pemprosesan bahasa semula jadi dan analisis teks dalam JavaScript

Pelajari pemprosesan bahasa semula jadi dan analisis teks dalam JavaScript

WBOY
WBOYasal
2023-11-03 16:32:09909semak imbas

Pelajari pemprosesan bahasa semula jadi dan analisis teks dalam JavaScript

Mempelajari pemprosesan bahasa semula jadi dan analisis teks dalam JavaScript memerlukan contoh kod khusus

Pemprosesan Bahasa Asli (NLP) ialah satu disiplin yang melibatkan kecerdasan buatan dan sains komputer Ia mengkaji hubungan antara komputer dan sifat manusia Interaksi antara bahasa. Dalam konteks perkembangan pesat teknologi maklumat hari ini, NLP digunakan secara meluas dalam pelbagai bidang, seperti perkhidmatan pelanggan pintar, terjemahan mesin, perlombongan teks, dll.

Sebagai bahasa pembangunan bahagian hadapan, JavaScript juga mempunyai perpustakaan dan alatan aplikasi yang kaya dalam NLP dan analisis teks, memberikan banyak kemudahan kepada pembangun. Artikel ini akan memperkenalkan cara menggunakan JavaScript untuk NLP dan analisis teks, serta memberikan contoh kod khusus.

  1. Pemilihan perpustakaan NLP

Sebelum menggunakan JavaScript untuk NLP dan analisis teks, kita perlu terlebih dahulu memilih perpustakaan NLP yang sesuai. Pada masa ini, perpustakaan NLP JavaScript yang lebih popular termasuk Natural, NLP.js, Compromise, dsb. Perpustakaan ini menyediakan pelbagai fungsi, termasuk penyusunan perkataan, statistik kekerapan perkataan, penandaan sebahagian daripada pertuturan, dsb. Mengikut keperluan anda sendiri, pilih perpustakaan yang sesuai untuk digunakan.

Ambil perpustakaan Semulajadi sebagai contoh, kami mula-mula memasangnya melalui npm:

npm install natural
  1. Prapemprosesan teks

Sebelum melaksanakan NLP dan analisis teks, kami biasanya perlu melakukan satu siri operasi prapemprosesan pada teks, seperti mengalih keluar tanda baca , tukar teks kepada huruf kecil, dsb. Berikut ialah contoh kod yang menunjukkan cara menggunakan pustaka Asli untuk prapemprosesan teks:

const { WordTokenizer } = require('natural');

const tokenizer = new WordTokenizer();
const text = "Hello, world!";
const tokens = tokenizer.tokenize(text.toLowerCase());

console.log(tokens);

Dalam kod di atas, kami menggunakan kelas WordTokenizer untuk membuat instantiate tokenizer objek tokenizer dan menggunakan objek ini untuk melaksanakan operasi pembahagian perkataan pada teks . Pada masa yang sama, kami juga menukar teks kepada bentuk huruf kecil. Melaksanakan kod di atas, anda boleh mendapatkan hasil selepas pembahagian perkataan: ["hello", "world"].

  1. Pengekstrakan ciri teks

Apabila melakukan analisis teks, biasanya kita perlu menukar teks kepada vektor ciri yang boleh dikira. Kaedah pengekstrakan ciri teks yang biasa digunakan termasuk model Bag of Words dan TF-IDF. Berikut ialah contoh kod yang menunjukkan cara menggunakan pustaka Asli untuk pengekstrakan ciri teks:

const { CountVectorizer, TfIdfVectorizer } = require('natural');

const countVectorizer = new CountVectorizer();
const tfidfVectorizer = new TfIdfVectorizer();

const documents = ["This is the first document.", "This document is the second document.", "And this is the third one."];
const countVectors = countVectorizer.fit(documents).transform(documents);
const tfidfVectors = tfidfVectorizer.fit(documents).transform(documents);

console.log(countVectors);
console.log(tfidfVectors);

Dalam kod di atas, kami menggunakan kelas CountVectorizer dan kelas TfIdfVectorizer untuk membuat contoh dua objek pengekstrak ciri countVectorizer dan tfidfVectorizer, dan menggunakan kedua-dua ini objek kepada Teks digunakan untuk pengekstrakan ciri. Melaksanakan kod di atas boleh mendapatkan vektor ciri model beg-of-words dan model TF-IDF.

  1. Klasifikasi teks

Klasifikasi teks ialah tugas penting dalam NLP Ia boleh digunakan dalam senario seperti analisis sentimen dan penapisan spam. Dalam JavaScript, kami boleh menggunakan beberapa perpustakaan pembelajaran mesin, seperti TensorFlow.js, Brain.js, dll., untuk klasifikasi teks. Berikut ialah contoh kod yang menunjukkan cara menggunakan TensorFlow.js untuk klasifikasi teks:

const tf = require('@tensorflow/tfjs');

// 构建模型
const model = tf.sequential();
model.add(tf.layers.dense({units: 64, inputShape: [10], activation: 'relu'}));
model.add(tf.layers.dense({units: 1, activation: 'sigmoid'}));
model.compile({loss: 'binaryCrossentropy', optimizer: 'adam'});

// 准备数据
const x = tf.tensor2d([[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]]);
const y = tf.tensor2d([[1]]);

// 训练模型
model.fit(x, y, {
   epochs: 10,
   callbacks: {
      onEpochEnd: (epoch, logs) => {
         console.log(`Epoch ${epoch}: loss = ${logs.loss}`);
      }
   }
});

// 进行预测
const predictResult = model.predict(x);
console.log(predictResult.dataSync());

Dalam kod di atas, kami menggunakan TensorFlow.js untuk membina model klasifikasi binari mudah dan menggunakan model untuk latihan dan ramalan. Melaksanakan kod di atas boleh mengeluarkan nilai kerugian dan keputusan ramalan semasa proses latihan.

Ringkasan:

Melalui pengenalan artikel ini, kami telah mempelajari cara menggunakan JavaScript untuk pemprosesan bahasa semula jadi dan analisis teks. Memilih perpustakaan NLP yang sesuai untuk prapemprosesan teks dan pengekstrakan ciri, dan menggunakan perpustakaan pembelajaran mesin untuk pengelasan teks boleh membantu kami menyelesaikan pelbagai masalah praktikal. Tetapi sila ambil perhatian bahawa kod contoh di atas hanyalah demonstrasi mudah, dan lebih banyak pemprosesan dan pengoptimuman mungkin diperlukan dalam aplikasi sebenar.

Rujukan:

  • Dokumentasi rasmi perpustakaan NLP semulajadi: https://github.com/NaturalNode/natural
  • Dokumentasi rasmi TensorFlow.js: https://www.tensorflow.org/js

Atas ialah kandungan terperinci Pelajari pemprosesan bahasa semula jadi dan analisis teks dalam JavaScript. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn