Chapter 3.16

Natural Language Processing

"Language itself shapes a man's basic ideas."

Robert A. Heinlein, Stranger in a Strange Land

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.

Exercise 3.16.1

Speech Recognition



Exercise 3.16.2

Handling Audio Input



Exercise 3.16.3

HTTP Interfaces with Drakma



Exercise 3.16.4

An Interface to the Dragon Mobile SDK



Exercise 3.16.5

Parsing Speech-to-Text with CL-LangUtils



Exercise 3.16.6

More CL-LangUtils



Exercise 3.16.7

Even More CL-LangUtils



Exercise 3.16.8

Advanced NLP with CL-NLP and CL-NLTK



Project 3.16.9

A Conversational Speech-to-Software Tool



results matching ""

    No results matching ""