Natural Language Processing
"Language itself shapes a man's basic ideas."
Creating a programming language and writing a compiler for it is one thing; analyzing human speech is quite another. Computer languages rely on precision, rigorous formal definitions, unambiguous code that compiles down to exact machine instructions; natural human languages rely on allusions, metaphors, nuances, idioms, and unspoken body language---writing is therefore an art-form, and not a science, as it takes a very special sort of person to convey the vast wealth of human interactions in the limited medium of the written word, allowing all readers to experience their emotions and perceptions. But all programmers are expected to convey the degree of precision that a computer expects.
In this chapter, we will review the current state of NLP as a field of research and the libraries available in Common Lisp for writing NLP software; we will explore the challenges of speech-recognition and leverage existing tools and APIs for transforming speech to text; and we will write a general purpose library for creating meaningful abstract syntax trees from English, to attempt to write Lisp software using natural, conversational language.
Handling Audio Input
HTTP Interfaces with Drakma
An Interface to the Dragon Mobile SDK
Parsing Speech-to-Text with CL-LangUtils
Even More CL-LangUtils
Advanced NLP with CL-NLP and CL-NLTK
A Conversational Speech-to-Software Tool