Che cos’è l’elaborazione del linguaggio naturale?
L’ NLP è un modo per consentire ai computer di analizzare, comprendere e trarre il significato dal linguaggio umano in modo intelligente e utile. Utilizzando NLP, gli sviluppatori possono organizzare e strutturare le conoscenze per eseguire compiti quali la riepilogazione automatica, la traduzione, il riconoscimento delle entità, l’analisi del sentimento, il riconoscimento vocale e la segmentazione degli argomenti.
Nonostante la lingua sia una delle cose più semplici da imparare per gli esseri umani, l’ambiguità del linguaggio è ciò che rende difficile la sua elaborazione. Il linguaggio umano infatti è raramente preciso per cui occorre comprendere non solo le parole ma anche i concetti e come entrambi sono collegati insieme per creare significato.
Cosa possono utilizzare gli sviluppatori NLP?
L’ NLP è tipicamente basato su algoritmi di machine learning. Invece di codificare manualmente grandi serie di regole, l’ NLP può contare sull’ apprendimento macchina per imparare automaticamente queste regole e restituire un’ inferenza statistica. In generale, più dati si analizzano, più accurato sarà il modello.
Librerie NLP Open Source
Queste librerie forniscono le funzioni algoritmiche gratuite attraverso delle interfacce (API) senza dover configurare server né fornire e infrastrutture.
– Apache OpenNLP: un toolkit di apprendimento macchina che fornisce i tokenizers, la segmentazione della frase, la codifica part-of-speech, l’estrazione di entità, il taglio, l’analisi, la risoluzione di cooccorrense e altro ancora.
– Natural Language Toolkit (NLTK): una libreria Python che fornisce i moduli per l’elaborazione di testo, classificazione, tokenizing, stemming, tagging, analisi e altro ancora.
– Standford NLP: una suite di strumenti NLP che forniscono un tagging part-of-speech, il riconoscimento entità, il sistema di risoluzioni di coreference, l’analisi sentimentale e altro ancora.
– MALLET: un pacchetto Java che fornisce Latent Dirichlet Allocation, classificazione dei documenti, clustering, modellazione degli argomenti, estrazione di informazioni e altro ancora.
Gli algoritmi NLP possono essere estremamente utili per gli sviluppatori web, fornendo loro gli strumenti chiavi per creare applicazioni avanzate e prototipi.
Libri su NLP per Beginners
- Speech and Language Processing
- Foundations of Statistical Natural Language Processing
- Handbook of Natural Language Processing
- Statistical Language Learning (Language, Speech, and Communication)
- Natural Language Processing with Python: Analyzing Text with the Natural Language Toolkit
- Speech and Language Processing, 2nd Edition 2nd Edition
- Introduction to Information Retrieval
NLP Tutorials
- Natural Language Processing Tutorial
- Basic Natural Language Processing
- An NLP tutorial with Roger Ebert
NLP Videos
- Natural Language Processing With Python and NLTK p.1 Tokenizing words and Sentences
- NLP Fundamentals: What is Natural Language Processing?
Coursi NLP
- Stanford Natural Language Processing on Coursera
- Stanford Machine Learning on Coursera
- Udemy’s Introduction to Natural Language Processing
- Certificate in Natural Language Technology
- Natural language processing (Wikipedia)
- Outline of natural language processing (Wikipedia)
- Apache OpenNLP
- Natural Language Toolkit
- Six Natural Language Processing Algorithms for Web Developers
- A curated list of speech and natural language processing resources
- NLP research group at google
- General Introduction to NLP
- Natural language processing: an introduction
- Stanford CS 224D Video: Deep Learning for Natural Language Processing
- CS 388: Natural Language Processing
- COMS W4705: Natural Language Processing
- CS 674: Natural Language Processing
- CS918 Natural Language Processing
- r/LanguageTechnology
- Everything You Need to Know about Natural Language Processing