Apakah ada pustaka pemrosesan bahasa alami yang bagus [tutup]

90

Saya perlu menerapkan beberapa NLP dalam modul saya saat ini. Saya mencari beberapa perpustakaan bagus yang dapat membantu saya di sini. Saya menemukan 'LingPipe' tetapi tidak dapat sepenuhnya mengikuti cara menggunakannya.
Pada dasarnya, kita perlu mengimplementasikan fitur dimana aplikasi dapat menguraikan instruksi pelanggan (instruksi pengiriman) yang diketik dalam bahasa Inggris biasa. Misalnya:

  • Akan dijemput jam 12 siang besok
  • Minta pengiriman setelah 10 Juni
  • Tolong jangan kirim sebelum Rabu
  • Tambahkan 10 unit XYZ lagi ke pesanan
Vini
sumber

Jawaban:

79

LingPipe sangat bagus dan didokumentasikan dengan baik. Anda juga dapat melihat:

Yang terakhir secara khusus mungkin menarik bagi Anda, meskipun saya tidak tahu apakah ada implementasi Java yang tersedia (dan mungkin itu terlalu besar untuk masalah Anda :-)

Ide Paul untuk menggunakan DSL mungkin lebih mudah dan lebih cepat untuk diterapkan, dan lebih dapat diandalkan untuk digunakan oleh pelanggan Anda. Saya juga akan merekomendasikan untuk memeriksanya terlebih dahulu.

ke-3
sumber
1
Saya menyajikan laporan saya berdasarkan masukan yang saya kumpulkan dari forum ini dan tempat lain di internet. Saya juga menyarankan opsi lain yang Anda sarankan dan Biz telah memutuskan untuk menahannya (Sekarang mulailah R&D untuk menemukan kandidat terbaik).
Vini
1
Jika Anda membandingkan LingPipe dan lainnya, Anda mencantumkan mana yang lebih Anda sukai? Saya menanyakan ini tidak hanya untuk pertanyaan @ Winnie, saya menanyakannya untuk tujuan umum.
kamaci
1
Lihat MALLET: mallet.cs.umass.edu
Samik R
11

Saya pikir apakah Anda memilih untuk menggunakan NLP atau tidak mungkin bergantung pada persyaratan khusus untuk sistem Anda. Apakah ini merupakan persyaratan bahwa bahasa Inggris bentuk bebas harus diterima, atau apakah hanya seperangkat instruksi tertentu yang akan diterima? Mungkin lebih mudah untuk membangun bahasa khusus domain yang mendukung apa yang perlu disampaikan pengguna Anda daripada melakukan analisis semantik lengkap dari teks bentuk bebas.

Di ruang Java, Groovy memiliki beberapa dukungan untuk membangun DSL .

Paul Morie
sumber
Berikut adalah beberapa baris dari dokumen persyaratan: '.. dan pengguna harus dapat memasukkan catatan atau instruksi khusus dalam bahasa Inggris. Sistem kemudian harus mengurai instruksi pengguna dan mengisi bidang yang relevan (jika ada) dari pesanan dengan nilai yang benar. "
Vini
10
Itu persyaratan yang sangat samar. Misalnya, apakah catatan itu harus benar secara tata bahasa? Saya tidak yakin apakah pihak-pihak yang datang dengan persyaratan akrab dengan keadaan NLP, tetapi masalah yang mereka jelaskan pada dasarnya adalah pemahaman membaca, atau pemahaman bahasa alami, yang merupakan salah satu masalah yang digambarkan sebagai 'yang suci. grail 'dari NLP. Saya ragu bahwa Anda akan menemukan paket yang dapat 'melakukan ini' untuk Anda - mungkin jauh lebih realistis untuk memberikan UI kepada pengguna di mana mereka dapat menentukan sejumlah instruksi khusus yang terbatas.
Paul Morie