Corsi on-line

nlp_compromise: JavaScript in linguaggio naturale

nlp_compromise è un progetto ispirato alle tecnologie per l’NLP (Natural Language Processing) nato con il particolare obbiettivo di offrire una soluzioni per lo sviluppo in JavaScript utilizzando il linguaggio naturale. Concepito in modo da non richiedere l’installazione di dipendenze o particolari procedure di configurazione, nlp_compromise è una soluzione Open Source disponibile su GitHub.

javascript_logoTecnicamente parlando l’NLP, che potremmo chiamare “elaborazione della lingua naturale”, è una modalità “ontologica”, cioè finalizzata a comprendere ed esprimere un concetto in quanto tale, senza il ricorso costrutti atti a rappresentarlo o a fornirne un’astrazione. Nella programmazione alla base della NLP vi sono le “sentence” (frasi), in questo caso potremmo quindi parlare di Natural Language Programming.

Per proporre un semplice esempio basato sulla lingua inglese, nlp_compromise potrebbe essere utilizzato per restituire a video la forma plurale del significato di una stringa:

nlp.noun("dinosaur").pluralize();
// output "dinosaurs"

Nello stesso modo si potrebbe procedere con la stampa di una negazione a partire da un’affermazione:

nlp.statement('She sells seashells').negate().text()
// output "She doesn't sell seashells"

oppure si potrebbe ricavare il nome e il cognome propri di una persona isolandoli dal resto di una stringa, così come ottenere in output il pronome personale più corretto da associare ad esso:

nlp.text("Tony Hawk did a kickflip").people();
// [ Person { text: 'Tony Hawk' ..} ]
nlp.person("Tony Hawk").pronoun();
// "he"

Si noti come i nomi dei metodi utilizzati, pluralize(), negate(), people() e pronoun() negli esempi precedenti, siano fortemente legati al significato della funzione per la quale vengono richiamati. Ma la componente semantica del progetto non si limita ai soli costrutti sintattici, estendendosi alla comprensione di un testo scritto in linguaggio naturale.

nlp.value("five hundred and sixty").number;
// output "560"

Ad oggi è difficile prevedere se l’implementazione di nlp_compromise proseguirà fino alla sua affermazione come standard alternativo a “Vanilla JS”, o “JavaScript puro” si tratta comunque di un’iniziativa interessante per i possibili ambiti di utilizzo, come per esempio la sintesi vocale nelle Web applications.

Via nlp_compromise

Post correlati
I più letti del mese
Tematiche