<ol class="breadcrumb">
  <li><a href="/">Home</a></li>
  <li><a href="/book/">Book</a></li>
  <li><a href="/book/3-00-00-overview/">Part Three: Lisp So(u)rcery</a></li>
  <li class="active">Natural Language Processing</li>
</ol>

## Chapter 3.16

# Natural Language Processing

> "Language itself shapes a man's basic ideas."
> <footer>Robert A. Heinlein, <em>Stranger in a Strange Land</em></footer>

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**

```lisp

```

## Exercise 3.16.2

**Handling Audio Input**

```lisp

```

## Exercise 3.16.3

**HTTP Interfaces with Drakma**

```lisp

```

## Exercise 3.16.4

**An Interface to the Dragon Mobile SDK**

```lisp

```

## Exercise 3.16.5

**Parsing Speech-to-Text with CL-LangUtils**

```lisp

```

## Exercise 3.16.6

**More CL-LangUtils**

```lisp

```

## Exercise 3.16.7

**Even More CL-LangUtils**

```lisp

```

## Exercise 3.16.8

**Advanced NLP with CL-NLP and CL-NLTK**

```lisp

```

## Project 3.16.9

**A Conversational Speech-to-Software Tool**

```lisp

```

<ul class="pager">
  <li class="previous"><a href="/book/3-15-00-quantum-computing/">&laquo; Previous</a></li>
  <li><a href="/book/">Table of Contents</a></li>
  <li class="next"><a href="/book/3-17-00-ai/">Next &raquo;</a><li>
</ul>
