1.LanguageProcessingandPython
NaturalLanguageProcessing(DRAFT)
...
print xyzzy
...
Call
Ishmael
>>>
You will notice that
if
and
for
statements have a colon at the end of the line, before the indentation
begins. In fact, all Python control structures end with a colon. The colon indicates that the current
statement relates to the indented block that follows.
We can also specify an action to be taken if the condition of the
if
statement is not met. Here we see
the
elif
“else if” statement, and the
else
statement. Notice that these also have colons before the
indented code.
>>> for token in sent1:
...
if token.islower():
...
print ’lowercase word’
...
elif token.istitle():
...
print ’titlecase word’
...
else:
...
print ’punctuation’
...
titlecase word
lowercase word
titlecase word
punctuation
>>>
As you can see, even with this small amount of Python knowledge, you can start to build multi-line
Python programs. It’s important to develop such programs in pieces, testing that each piece does what
you expect before combining them into a program. This is why the Python interactive interpreter is so
invaluable, and why you should get comfortable using it.
Finally, let’s combine the idioms we’ve been exploring. First we create a list of cie and cei words, then
we loop over each item and print it. Notice the comma at the end of the print statement, which tells
Python to produce its output on a single line.
>>> tricky = sorted(w for in set(text2) if ’cie’ in or ’cei’ in w)
>>> for word in tricky:
...
print word,
ancient ceiling conceit conceited conceive conscience
conscientious conscientiously deceitful deceive ...
>>>
1.5 Automatic Natural Language Understanding
We have been exploring language bottom-up, with the help of texts, dictionaries, and a programming
language. However, we’re also interested in exploiting our knowledge of language and computation by
building useful language technologies.
At a purely practical level, we all need help to navigate the universe of information locked up in text
on the Web. Search engines have been crucial to the growth and popularity of the Web, but have
some shortcomings. It takes skill, knowledge, and some luck, to extract answers to such questions
as What tourist sites can I visit between Philadelphia and Pittsburgh on a limited budget? What
do experts say about digital SLR cameras? What predictions about the steel market were made by
Bird, Klein & Loper
21
December 18, 2008
Pdf password reset - C# PDF Password Library: add, remove, edit PDF file password in C#.net, ASP.NET, MVC, WinForms, WPF
Help to Improve the Security of Your PDF Document by Setting Password
password pdf; adding a password to a pdf using reader
Pdf password reset - VB.NET PDF Password Library: add, remove, edit PDF file password in vb.net, ASP.NET, MVC, WinForms, WPF
Help to Improve the Security of Your PDF Document by Setting Password
add password to pdf; convert password protected pdf to word
1.5. Automatic Natural Language Understanding
credible commentators in the past week? Getting a computer to answer them automatically involves
arange of language processing tasks, including information extraction, inference, and summarization,
and would need to be carried out on a scale and with a level of robustness that is still beyond our current
capabilities.
On a more philosophical level, a long-standing challenge within artificial intelligence has been to build
intelligent machines, and a major part of intelligent behaviour is understanding language. For many
years this goal has been seen as too difficult. However, as NLP technologies become more mature,
and robust methods for analysing unrestricted text become more widespread, the prospect of natural
language understanding has re-emerged as a plausible goal.
In this section we describe some language processing components and systems, to give you a sense the
interesting challenges that are waiting for you.
Word Sense Disambiguation
In word sense disambiguation we want to work out which sense of a word was intended in a given
context. Consider the ambiguous words serve and dish:
(2)
a. serve: help with food or drink; hold an office; put ball into play
b. dish: plate; course of a meal; communications device
Now, in a sentence containing the phrase: he served the dish, you can detect that both serve and dish
are being used with their food meanings. Its unlikely that the topic of discussion shifted from sports to
crockery in the space of three words  this would force you to invent bizarre images, like a tennis pro
taking out her frustrations on a china tea-set laid out beside the court. In other words, we automatically
disambiguate words using context, exploiting the simple fact that nearby words have closely related
meanings. As another example of this contextual effect, consider the word by, which has several
meanings, e.g.: the book by Chesterton (agentive); the cup by the stove (locative); and submit by Friday
(temporal). Observe in(3c) that the meaning of the italicized word helps us interpret the meaning of
by.
(3)
a. The lost children were found by the searchers (agentive)
b. The lost children were found by the mountain (locative)
c. The lost children were found by the afternoon (temporal)
Pronoun Resolution
Adeeper kind of language understanding is to work out who did what to whom  i.e. to detect the
subjects and objects of verbs. You learnt to do this in elementary school, but its harder than you might
think. In the sentence the thieves stole the paintings it is easy to tell who performed the stealing action.
Consider three possible following sentences in(4c), and try to determine what was sold, caught, and
found (one case is ambiguous).
(4)
a. The thieves stole the paintings. They were subsequently sold.
December 18, 2008
22
Bird, Klein & Loper
C# Word - Render Word to Other Images
Used to register all DLL assemblies. WorkRegistry.Reset(); // Load a Word file. String assemblies. WorkRegistry.Reset(); // Load a Word file.
copy from protected pdf; password protected pdf
C# powerpoint - Render PowerPoint to Other Images
Used to register all DLL assemblies. WorkRegistry.Reset(); // Load a PowerPoint file. WorkRegistry.Reset(); // Load a PowerPoint file.
convert protected pdf to word online; change password on pdf document
1. Language Processing and Python
Natural Language Processing (DRAFT)
b. The thieves stole the paintings. They were subsequently caught.
c. The thieves stole the paintings. They were subsequently found.
Answering this question involves finding the antecedent of the pronoun they (the thieves or the
paintings). Computational techniques for tackling this problem include anaphora resolution 
identifying what a pronoun or noun phrase refers to  and semantic role labeling  identifying
how a noun phrase relates to verb (as agent, patient, instrument, and so on).
Generating Language Output
If we can automatically solve such problems, we will have understood enough of the text to perform
some tasks that involve generating language output, such as question answering and machine transla-
tion. In the first case, a machine should be able to answer a user’s questions relating to collection of
texts:
(5)
a. Text: ... The thieves stole the paintings. They were subsequently sold. ...
b. Human: Who or what was sold?
c. Machine: The paintings.
The machine’s answer demonstrates that it has correctly worked out that they refers to paintings and not
to thieves. In the second case, the machine should be able to translate the text into another language,
accurately conveying the meaning of the original text. In translating the above text into French, we
are forced to choose the gender of the pronoun in the second sentence: ils (masculine) if the thieves
are sold, and elles (feminine) if the paintings are sold. Correct translation actually depends on correct
understanding of the pronoun.
(6)
a. The thieves stole the paintings. They were subsequently found.
b. Les voleurs ont volé les peintures. Ils ont été trouvés plus tard. (the thieves)
c. Les voleurs ont volé les peintures. Elles ont été trouvées plus tard. (the paintings)
In all of the above examples  working out the sense of a word, the subject of a verb, the antecedent
of a pronoun  are steps in establishing the meaning of a sentence, things we would expect a language
understanding system to be able to do. We’ll come back to some of these topics later in the book.
Spoken Dialog Systems
In the history of artificial intelligence, the chief measure of intelligence has been a linguistic one,
namely the Turing Test: can a dialogue system, responding to a user’s text input, perform so naturally
that we cannot distinguish it from a human-generated response? In contrast, today’s commercial
dialogue systems are very limited, but still perform useful functions in narrowly-defined domains, as
we see below:
Bird, Klein & Loper
23
December 18, 2008
Encode, Decode JPEG2000 Images in Web Image Viewer | Online
Select "Save Reset" to reset to the default values; We are dedicated to provide powerful & profession imaging controls, PDF document, image to pdf files and
pdf password protect; add password to pdf document
Encode, Decode JPEG2000 Images in .NET Winforms | Online Tutorials
Decoder to the default values; Click "Save Reset" to save reset values; We are dedicated to provide powerful & profession imaging controls, PDF document, image
add password to pdf file; convert password protected pdf to excel
1.5. Automatic Natural Language Understanding
S: How may I help you?
U: When is Saving Private Ryan playing?
S: For what theater?
U: The Paramount theater.
S: Saving Private Ryan is not playing at the Paramount theater, but
it’s playing at the Madison theater at 3:00, 5:30, 8:00, and 10:30.
You could not ask this system to provide driving instructions or details of nearby restaurants unless the
required information had already been stored and suitable question-answer pairs had been incorporated
into the language processing system.
Observe that the above system seems to understand the user’s goals: the user asks when a movie is
showing and the system correctly determines from this that the user wants to see the movie. This
inference seems so obvious that you probably didn’t notice it was made, yet a natural language system
needs to be endowed with this capability in order to interact naturally. Without it, when asked Do
you know when Saving Private Ryan is playing, a system might unhelpfully respond with a cold Yes.
However, the developers of commercial dialogue systems use contextual assumptions and business
logic to ensure that the different ways in which a user might express requests or provide information
are handled in a way that makes sense for the particular application. So, if you type When is ..., or I
want to know when ..., or Can you tell me when ..., simple rules will always yield screening times. This
is enough for the system to provide a useful service.
Dialogue systems give us an opportunity to mention the complete processing pipeline for NLP.Figure
1.4showsthearchitectureofasimpledialoguesystem.
Figure 1.4: Simple Pipeline Architecture for a Spoken Dialogue System
Along the top of the diagram, moving from left to right, is a “pipeline” of some language understanding
components. These map from speech input via syntactic parsing to some kind of meaning representa-
tion. Along the middle, moving from right to left, is the reverse pipeline of components for converting
December 18, 2008
24
Bird, Klein & Loper
VB.NET Image: JPEG 2000 Codec for Image Encoding and Decoding in
Integrate PDF, Tiff, Word compression add-on with JPEG 2000 codec easily in VB.NET; Reset JPEG 2000 Codec in VB.NET Application. RasterEdge image JPEG 2000 codec
add password to pdf without acrobat; copy protection pdf
C# Image: C# Code to Encode & Decode JBIG2 Images in RasterEdge .
Using C# Code. The following C# example code shows how to reset and customize SDK library also supports compressing and decompressing of Word & PDF documents as
convert password protected pdf files to word online; change password on pdf file
1. Language Processing and Python
Natural Language Processing (DRAFT)
concepts to speech. These components make up the dynamic aspects of the system. At the bottom of
the diagram are some representative bodies of static information: the repositories of language-related
data that the processing components draw on to do their work.
Your Turn: Try the Eliza chatbot nltk.chat.eliza.demo() to see an example of a
primitive dialogue system.
Textual Entailment
The challenge of language understanding has been brought into focus in recent years by a public
“shared task” called Recognizing Textual Entailment (RTE). The basic scenario is simple. Suppose
you want to find find evidence to support the hypothesis: Sandra Goudie was defeated by Max Purnell,
and that you have another short text that seems to be relevant, for example, Sandra Goudie was first
elected to Parliament in the 2002 elections, narrowly winning the seat of Coromandel by defeating
Labour candidate Max Purnell and pushing incumbent Green MP Jeanette Fitzsimons into third place.
Does the text provide enough evidence for you to accept the hypothesis? In this particular case, the
answer will be No. You can draw this conclusion easily, but it is very hard to come up with automated
methods for making the right decision. The RTE Challenges provide data which allow competitors to
develop their systems, but not enough data to brute-force approaches using standard machine learning
techniques. Consequently, some linguistic analysis is crucial. In the above example, it is important
for the system to note that Sandra Goudie names the person being defeated in the hypothesis, not the
person doing the defeating in the text. As another illustration of the difficulty of the task, consider the
following text/hypothesis pair:
(7)
a. David Golinkin is the editor or author of eighteen books, and over 150 responsa, articles,
sermons and books
b. Golinkin has written eighteen books
In order to determine whether or not the hypothesis is supported by the text, the system needs the
following background knowledge: (i) if someone is an author of a book, then he/she has written that
book; (ii) if someone is an editor of a book, then he/she has not written that book; (iii) if someone is
editor or author of eighteen books, then one cannot conclude that he/she is author of eighteen books.
Limitations of NLP
Despite the research-led advances in tasks like RTE, natural language systems that have been deployed
for real-world applications still cannot perform common-sense reasoning or draw on world knowledge
in a general and robust manner. We can wait for these difficult artificial intelligence problems to
be solved, but in the meantime it is necessary to live with some severe limitations on the reasoning
and knowledge capabilities of natural language systems. Accordingly, right from the beginning, an
important goal of NLP research has been to make progress on the holy grail of natural language un-
derstanding, using superficial yet powerful counting and symbol manipulation techniques, but without
recourse to this unrestricted knowledge and reasoning capability.
This is one of the goals of this book, and we hope to equip you with the knowledge and skills to build
useful NLP systems, and to contribute to the long-term vision of building intelligent machines.
Bird, Klein & Loper
25
December 18, 2008
C# Convert: PDF to Word: How to Convert Adobe PDF to Microsoft
WorkRegistry.Reset(); // Define input and output files path. String inputFilePath = @"**pdf"; String outputFilePath = @"**docx"; // Convert PDF to Word.
pdf password online; pdf password encryption
C# PDF Convert: How to Convert Tiff Image to PDF File
WorkRegistry.Reset(); // Define input and output files path. String inputFilePath = @"**tif"; String outputFilePath = @"**pdf"; // Convert Tiff to PDF and
add password to pdf preview; create copy protected pdf
1.6. Summary
1.6 Summary
 Texts are represented in Python using lists:
[’Monty’’Python’]
. We can use indexing,
slicing and the
len()
function on lists.
 We get the vocabulary of a text
t
using
sorted(set(t))
.
 To get the vocabulary, collapsing case distinctions and ignoring punctuation, we can write
set(
w.lower() for w in text if w.isalpha())
.
 We operate on each item of a text using
[f(x) for x in text]
.
 We process each word in a text using a
for
statement such as
for w in t:
or
for word
in text:
. This must be followed by the colon character and an indented block of code, to be
executed each time through the loop.
 We test a condition using an
if
statement:
if len(word) < < 5:
. This must be followed by
the colon character and an indented block of code, to be executed only if the condition is true.
 A frequency distribution is a collection of items along with their frequency counts (e.g. the words
of a text and their frequency of appearance).
 WordNet is a semantically-oriented dictionary of English, consisting of synonym sets  or
synsets  and organized into a hierarchical network.
About this document...
This chapter is a draft from Natural Language Processing, by StevenBirdEwan Klein
and Edward Loper, Copyright © 2008 the authors. It is distributed with the Natu-
ral Language Toolkit [http://www.nltk.org/], Version 0.9.7a, under the terms of the Cre-
ative Commons Attribution-Noncommercial-No Derivative Works 3.0 United States License
[http://creativecommons.org/licenses/by-nc-nd/3.0/us/].
This document is Revision: 7322 Thu 18 Dec 2008 14:00:59 EST
December 18, 2008
26
Bird, Klein & Loper
C# PDF: PDF Document Viewer & Reader SDK for Windows Forms
ZoomOut: Decrease current zoom percentage of C#.NET WinViewer. FitWidth, FitHeight, ShowOneToOne: Reset size of the currently displayed PDF document page.
password pdf files; pdf password remover online
How to C#: Convert PDF, Excel, PPT to Word
to PDF; VB.NET Protect: Add Password to PDF; Output.docx"; // Load a PDF document. WorkRegistry.Reset(); String inputFilePath = Program.RootPath + "\\" 1.pptx
convert password protected pdf to normal pdf; password protected pdf
Chapter 2
Accessing Text Corpora and Lexical
Resources
Practical work in Natural Language Processing usually involves a variety of established bodies of
linguistic data. Such a body of text is called a corpus (plural corpora). The goal of this chapter is
to answer the following questions:
1. What are some useful text corpora and lexical resources, and how can we access them with
Python?
2. Which Python constructs are most helpful for this work?
3. How do we re-use code effectively?
This chapter continues to present programming concepts by example, in the context of a linguistic
processing task. We will wait till later before exploring each Python construct systematically. Don’t
worry if you see an example that contains something unfamiliar; simply try it out and see what it does,
and  if you’re game  modify it by substituting some part of the code with a different text or word.
This way you will associate a task with a programming idiom, and learn the hows and whys later.
2.1 Accessing Text Corpora
As just mentioned, a text corpus is any large body of text. Many, but not all, corpora are designed to
contain a careful balance of material in one or more genres. We examined some small text collections
inChapter1, such as the speeches known as the US Presidential Inaugural Addresses. This particular
corpus actually contains dozens of individual texts  one per address  but we glued them end-to-end
and treated them as a single text. In this section we will examine a variety of text corpora and will see
how to select individual texts, and how to work with them.
The Gutenberg Corpus
NLTK includes a small selection of texts from the Project Gutenberghttp://www.gutenberg.org/elec-
tronic text archive containing some 25,000 free electronic books. We begin by getting the Python
1
2.1. Accessing Text Corpora
interpreter to load the NLTK package, then ask to see
nltk.corpus.gutenberg.files()
,the files
in NLTK’s corpus of Gutenberg texts:
>>> import nltk
>>> nltk.corpus.gutenberg.files()
(’austen-emma.txt’, ’austen-persuasion.txt’, ’austen-sense.txt’, ’bible-kjv.txt’,
’blake-poems.txt’, ’carroll-alice.txt’, ’chesterton-ball.txt’, ’chesterton-brown.txt’,
’chesterton-thursday.txt’, ’melville-moby_dick.txt’, ’milton-paradise.txt’,
’shakespeare-caesar.txt’, ’shakespeare-hamlet.txt’, ’shakespeare-macbeth.txt’,
’whitman-leaves.txt’)
Let’s pick out the first of these texts  Emma by Jane Austen  and give it a short name
emma
,then
find out how many words it contains:
>>> emma = = nltk.corpus.gutenberg.words(’austen-emma.txt’)
>>> len(emma)
192427
You cannot carry out concordancing (and other tasks fromSection1.1) using a text defined
this way. Instead you have to make the following statement:
>>> emma = = nltk.Text(nltk.corpus.gutenberg.words(’austen-emma.txt’))
When we defined
emma
, we invoked the
words()
function of the
gutenberg
module in NLTK’s
corpus
package. But since it is cumbersome to type such long names all the time, so Python provides
another version of the
import
statement, as follows:
>>> from nltk.corpus import gutenberg
>>> gutenberg.files()
(’austen-emma.txt’, ’austen-persuasion.txt’, ’austen-sense.txt’, ’bible-kjv.txt’,
’blake-poems.txt’, ’carroll-alice.txt’, ’chesterton-ball.txt’, ’chesterton-brown.txt’,
’chesterton-thursday.txt’, ’melville-moby_dick.txt’, ’milton-paradise.txt’,
’shakespeare-caesar.txt’, ’shakespeare-hamlet.txt’, ’shakespeare-macbeth.txt’,
’whitman-leaves.txt’)
Let’s write a short program to display other information about each text:
>>> for file in gutenberg.files():
...
num_chars = len(gutenberg.raw(file))
...
num_words = len(gutenberg.words(file))
...
num_sents = len(gutenberg.sents(file))
...
num_vocab = len(set(w.lower() for w in gutenberg.words(file)))
...
print num_chars/num_words, num_words/num_sents, num_words/num_vocab, file
...
4 21 26 austen-emma.txt
4 23 16 austen-persuasion.txt
4 24 22 austen-sense.txt
4 33 79 bible-kjv.txt
4 18 5 blake-poems.txt
4 16 12 carroll-alice.txt
4 17 11 chesterton-ball.txt
4 19 11 chesterton-brown.txt
4 16 10 chesterton-thursday.txt
4 24 15 melville-moby_dick.txt
4 52 10 milton-paradise.txt
4 12 8 shakespeare-caesar.txt
4 13 7 shakespeare-hamlet.txt
4 13 6 shakespeare-macbeth.txt
4 35 12 whitman-leaves.txt
December 18, 2008
2
Bird, Klein & Loper
2. Accessing Text Corpora and Lexical Resources
Natural Language Processing (DRAFT)
This program has displayed three statistics for each text: average word length, average sentence length,
and the number of times each vocabulary item appears in the text on average (our lexical diversity
score). Observe that average word length appears to be a general property of English, since it is always
4. Average sentence length and lexical diversity appear to be characteristics of particular authors.
This example also showed how we can access the “raw” text of the book, not split up into words. The
raw()
function gives us the contents of the file without any linguistic processing. So, for example,
len(gutenberg.raw(’blake-poems.txt’)
tells us how many letters occur in the text, including
the spaces between words. The
sents()
function divides the text up into its sentences, where each
sentence is a list of words:
>>> macbeth_sentences = gutenberg.sents(’shakespeare-macbeth.txt’)
>>> macbeth_sentences
[[’[’, ’The’, ’Tragedie’, ’of’, ’Macbeth’, ’by’, ’William’, ’Shakespeare’,
’1603’, ’]’], [’Actus’, ’Primus’, ’.’], ...]
>>> macbeth_sentences[1038]
[’Double’, ’,’, ’double’, ’,’, ’toile’, ’and’, ’trouble’, ’;’,
’Fire’, ’burne’, ’,’, ’and’, ’Cauldron’, ’bubble’]
>>> longest_len = max(len(s) for in macbeth_sentences)
>>> [s for in macbeth_sentences if len(s) == = longest_len]
[[’Doubtfull’, ’it’, ’stood’, ’,’, ’As’, ’two’, ’spent’, ’Swimmers’, ’,’, ’that’,
’doe’, ’cling’, ’together’, ’,’, ’And’, ’choake’, ’their’, ’Art’, ’:’, ’The’,
’mercilesse’, ’Macdonwald’, ...], ...]
Most NLTK corpus readers include a variety of access methods apart from words(). We
access the raw file contents using raw(), and get the content sentence by sentence using
sents(). Richer linguistic content is available from some corpora, such as part-of-speech
tags, dialogue tags, syntactic trees, and so forth; we will see these in later chapters.
Web and Chat Text
Although Project Gutenberg contains thousands of books, it represents established literature. It is
important to consider less formal language as well. NLTK’s small collection of web text includes
content from a Firefox discussion forum, conversations overheard in New York, the movie script of
Pirates of the Carribean, personal advertisements, and wine reviews:
>>> from nltk.corpus import webtext
>>> for in webtext.files():
...
print f, webtext.raw(f)[:70]
...
firefox.txt Cookie Manager: "Don’t allow sites that set removed cookies to set fut
grail.txt SCENE 1: [wind] [clop clop clop] KING ARTHUR: Whoa there!
[clop clop
overheard.txt White guy: So, do you have any plans for this evening? Asian girl: Yea
pirates.txt PIRATES OF THE CARRIBEAN: DEAD MAN’S CHEST, by Ted Elliott & Terry Ros
singles.txt 25 SEXY MALE, seeks attrac older single lady, for discreet encounters.
wine.txt Lovely delicate, fragrant Rhone wine. Polished leather and strawberrie
There is also a corpus of instant messaging chat sessions, originally collected by the Naval Postgraduate
Schoolforresearch on automatic detection of internetpredators. The corpus contains over 10,000 posts,
anonymized by replacing usernames with generic names of the form “UserNNN”, and manually edited
to remove any other identifying information. The corpus is organized into 15 files, where each file
contains several hundred posts collected on a given date, for an age-specific chatroom (teens, 20s, 30s,
40s, plus a generic adults chatroom). The filename contains the date, chatroom, and number of posts,
e.g.
10-19-20s_706posts.xml
contains 706 posts gathered from the 20s chat room on 10/19/2006.
Bird, Klein & Loper
3
December 18, 2008
2.1. Accessing Text Corpora
>>> from nltk.corpus import nps_chat
>>> chatroom = nps_chat.posts(’10-19-20s_706posts.xml’)
>>> chatroom[123]
[’i’, ’do’, "n’t", ’want’, ’hot’, ’pics’, ’of’, ’a’, ’female’, ’,’,
’I’, ’can’, ’look’, ’in’, ’a’, ’mirror’, ’.’]
The Brown Corpus
The Brown Corpus was the first million-word electronic corpus of English, created in 1961 at Brown
University. This corpus contains text from 500 sources, and the sources have been categorized by genre,
such as news, editorial, and so on. Table2.1 gives an example of each genre (for a complete list, see
http://icame.uib.no/brown/bcm-los.html
).
ID
File
Genre
Description
A16
ca16
news
Chicago Tribune: Society Reportage
B02
cb02
editorial
Christian Science Monitor: Editorials
C17
cc17
reviews
Time Magazine: Reviews
D12
cd12
religion
Underwood: Probing the Ethics of Realtors
E36
ce36
hobbies
Norling: Renting a Car in Europe
F25
cf25
lore
Boroff: Jewish Teenage Culture
G22
cg22
belles_lettres
Reiner: Coping with Runaway Technology
H15
ch15
government
US Office of Civil and Defence Mobilization: The Family Fallout
Shelter
J17
cj19
learned
Mosteller: Probability with Statistical Applications
K04
ck04
fiction
W.E.B. Du Bois: Worlds of Color
L13
cl13
mystery
Hitchens: Footsteps in the Night
M01
cm01
science_fiction
Heinlein: Stranger in a Strange Land
N14
cn15
adventure
Field: Rattlesnake Ridge
P12
cp12
romance
Callaghan: A Passion in Rome
R06
cr06
humor
Thurber: The Future, If Any, of Comedy
Table 2.1: Example Document for Each Section of the Brown
Corpus
We can access the corpus as a list of words, or a list of sentences (where each sentence is itself just a
list of words). We can optionally specify particular categories or files to read:
>>> from nltk.corpus import brown
>>> brown.categories()
[’adventure’, ’belles_lettres’, ’editorial’, ’fiction’, ’government’, ’hobbies’,
’humor’, ’learned’, ’lore’, ’mystery’, ’news’, ’religion’, ’reviews’, ’romance’,
’science_fiction’]
>>> brown.words(categories=’news’)
[’The’, ’Fulton’, ’County’, ’Grand’, ’Jury’, ’said’, ...]
>>> brown.words(files=[’cg22’])
[’Does’, ’our’, ’society’, ’have’, ’a’, ’runaway’, ’,’, ...]
>>> brown.sents(categories=[’news’’editorial’’reviews’])
[[’The’, ’Fulton’, ’County’...], [’The’, ’jury’, ’further’...], ...]
December 18, 2008
4
Bird, Klein & Loper
Documents you may be interested
Documents you may be interested