C’è una buona libreria di elaborazione del linguaggio naturale

Ho bisogno di implementare alcuni PNL nel mio modulo attuale. Sto cercando una buona libreria che possa aiutarmi qui. Mi sono imbattuto in “LingPipe” ma non sono riuscito a seguire completamente come usarlo.
Fondamentalmente, abbiamo bisogno di implementare una funzionalità in cui l’applicazione può decifrare le istruzioni del cliente (istruzioni di consegna) digitate in inglese. Per esempio:

  • Ritirerà alle 12:00 di domani
  • Richiedi la consegna dopo il 10 giugno
  • Per favore non inviare prima di mercoledì
  • Aggiungi altre 10 unità di XYZ all’ordine

LingPipe è molto bello e ben documentato. Puoi anche dare un’occhiata a:

  • OpenNLP
  • Stanford NLP
  • Apache UIMA
  • CANCELLO
  • CogComp-NLP
  • framenet

L’ultimo in particolare potrebbe interessarti, anche se non so se ci sono implementazioni Java prontamente disponibili (e forse è troppo grosso per il tuo problema comunque 🙂

L’idea di Paul di utilizzare una DSL è probabilmente più facile e veloce da implementare e più affidabile da usare per i tuoi clienti. Anche io consiglierei di esaminarlo per primo.

Penso che scegliere o meno di utilizzare la PNL dipenda dai requisiti specifici del tuo sistema. È necessario che l’inglese in formato libero sia accettato o verrà accettata solo una determinata serie di istruzioni? Potrebbe essere più semplice creare un linguaggio specifico per il dominio che supporti ciò che gli utenti devono trasmettere piuttosto che un’analisi semantica completa di testo in formato libero.

Nello spazio Java, Groovy ha un certo supporto per la costruzione di DSL .

Per altri linguaggi JVM, vedere

  • Scala : Scala NLP – Breeze and Epic (related spark-project.org )
  • Clojure: clojure-opennlp