Wednesday, June 3, 2009

Mensortir nama laki2 dan perempuan

One more wordlist corpus is the Names corpus, containing 8,000 first names categorized by gender. The male and female names are stored in separate files. Let's find names which appear in both files, i.e. names that are ambiguous for gender:

>>> names = nltk.corpus.names
>>> names.fileids()
['female.txt', 'male.txt']
>>> male_names = names.words('male.txt')
>>> female_names = names.words('female.txt')
>>> [w for w in male_names if w in female_names]
['Abbey', 'Abbie', 'Abby', 'Addie', 'Adrian', 'Adrien', 'Ajay', 'Alex', 'Alexis',
'Alfie', 'Ali', 'Alix', 'Allie', 'Allyn', 'Andie', 'Andrea', 'Andy', 'Angel',
'Angie', 'Ariel', 'Ashley', 'Aubrey', 'Augustine', 'Austin', 'Averil', ...]

Memecahkan Puzzle kata2

misal ada susunan huruf2 acak egivrvonl, dan kita dimninta membuat daftar statistik kemungkinan kata yang bisa dirangkai, dengan parameter tiap kata wajibmengandung huruf R
Figure 2.9: A Word Puzzle: a grid of randomly chosen letters with rules for creating words out of the letters; this puzzle is known as "Target."

A wordlist is useful for solving word puzzles, such as the one in Figure 2.9. Our program iterates through every word and, for each one, checks whether it meets the conditions. It is easy to check obligatory letter and length constraint (and we'll only look for words with six or more letters here). It is trickier to check that candidate solutions only use combinations of the supplied letters, especially since some of the supplied letters appear twice (here, the letter v). The FreqDist comparison method permits us to check that the frequency of each letter in the candidate word is less than or equal to the frequency of the corresponding letter in the puzzle.



>>> puzzle_letters = nltk.FreqDist('egivrvonl')
>>> obligatory = 'r'
>>> wordlist = nltk.corpus.words.words()
>>> [w for w in wordlist if len(w) >= 6
... and obligatory in w
... and nltk.FreqDist(w) <= puzzle_letters]
['glover', 'gorlin', 'govern', 'grovel', 'ignore', 'involver', 'lienor',
'linger', 'longer', 'lovering', 'noiler', 'overling', 'region', 'renvoi',
'revolving', 'ringle', 'roving', 'violer', 'virole']

Thursday, May 28, 2009

Membuat grammar

berikut kita bahas cara membuat grammar. Salah satunya yang akan kita bahas sekarang adalah bagaimana membuat kata kata jamak, atau sering disebut plural

masukan rumusnya

def plural(word):
if word.endswith('y'):
return word[:-1] + 'ies'
if word[-1] in 'sx' or word[-2:] in ['sh', 'ch']:
return word + 'es'
if word.endswith('an'):
return word[:-2] + 'en'
else:
return word + 's'

setelah itu tes dengan kata2 tertentu

>>> plural('fairy')
'fairies'
>>> plural('woman')
'women'

Tuesday, May 26, 2009

Mencari Kata2 yg berpasangan dengan genre

Misal, genrenya News. Kata2 apa saja yang berpasangan dengan news? apakah bad news? good news? sad news? News week?
Berikut akan kita tampilkan, dengan genre lebih dari satu
Pertama import perintah yg segini banyak
>>> from nltk.corpus import brown
>>> cfd = nltk.ConditionalFreqDist(
... (genre, word)
... for genre in brown.categories()
... for word in brown.words(categories=genre)


Setelah perintah ni masuk, kt coba untuk memasukan 2 jenis genre saja.

>>> genre_word = [(genre, word)
... for genre in ['news', 'romance']
... for word in brown.words(categories=genre)]
>>> len(genre_word)
170576

Lalu, coba tampilkan satu2. Berikut, untuk tiap genre, cuma dipilih 4 kata saja. Mau lebih ya boleh, misal 6,7,8
>>> genre_word[:4]
[('news', 'The'), ('news', 'Fulton'), ('news', 'County'), ('news', 'Grand')] # [_start-genre]
>>> genre_word[-4:]
[('romance', 'afraid'), ('romance', 'not'), ('romance', "''"), ('romance', '.')] # [_end-genre]

Monday, May 25, 2009

Menghitung jumlah huruf pada tiap genre

>>> from nltk.corpus import brown
>>> cfd = nltk.ConditionalFreqDist(
... (genre, word)
... for genre in brown.categories()
... for word in brown.words(categories=genre))


>>> genre_word = [(genre, word)
... for genre in ['news', 'romance']
... for word in brown.words(categories=genre)]
>>> len(genre_word)
170576

Sunday, May 24, 2009

menguapload korpus kita sendiri

Kita bisa menguapload teks kita sendiri.

>>> from nltk.corpus import PlaintextCorpusReader
tampilkan perintah untuk mengupload

>>> corpus_root = '/usr/share/dict'
disamping corpus root, ketik link file dalam har disk kita. beiar lebih cepat lihat di properties file. Jangan lupa, kasih tanda kutip

>>> wordlists = PlaintextCorpusReader(corpus_root, '.*')
setelah ketemu linknya, ketik jenis file nya. karena kalu tidak, dia akan melacak semua file yang ada di folder tersebut. Yang paling friendly adalah txt

>>> wordlists.fileids()
dia akan menampilakn file2 berjenis txt
['README', 'connectives', 'propernames', 'web2', 'web2a', 'words']

>>> wordlists.words('connectives')
tampilkan kata2nya
['the', 'of', 'and', 'to', 'a', 'in', 'that', 'is', ...]

ini contoh lain
>>> corpus_root = "\Documents and Settings\User\My Documents"
>>> wordlists = PlaintextCorpusReader(corpus_root, '.*.txt')
>>> wordlists.fileids()

['ELK.txt']
>>> wordlists.words('ELK')

Korpus dalam bahasa lain

Eh, ternyata daripada pakai phyton command line, lebih mudah pakai phyton shell. Karena bisa dicopy paste. cuma emang gak bisa dimodif, dan gak bisa mentrace operintah sebelumnya seperti di command line
tapi gak banyak stress lah uhtukl yang gak bisa ngetik kayakgue

>>> nltk.corpus.cess_esp.words()
['El', 'grupo', 'estatal', 'Electricit\xe9_de_France', ...]
>>> nltk.corpus.floresta.words()
['Um', 'revivalismo', 'refrescante', 'O', '7_e_Meio', ...]
>>> nltk.corpus.indian.words('hindi.pos')
['\xe0\xa4\xaa\xe0\xa5\x82\xe0\xa4\xb0\xe0\xa5\x8d\xe0\xa4\xa3',
'\xe0\xa4\xaa\xe0\xa5\x8d\xe0\xa4\xb0\xe0\xa4\xa4\xe0\xa4\xbf\xe0\xa4\xac\xe0\xa4
\x82\xe0\xa4\xa7', ...]
>>> nltk.corpus.udhr.fileids()
['Abkhaz-Cyrillic+Abkh', 'Abkhaz-UTF8', 'Achehnese-Latin1', 'Achuar-Shiwiar-Latin1',
'Adja-UTF8', 'Afaan_Oromo_Oromiffa-Latin1', 'Afrikaans-Latin1', 'Aguaruna-Latin1',
'Akuapem_Twi-UTF8', 'Albanian_Shqip-Latin1', 'Amahuaca', 'Amahuaca-Latin1', ...]
>>> nltk.corpus.udhr.words('Javanese-Latin1')[11:]
[u'Saben', u'umat', u'manungsa', u'lair', u'kanthi', ...]

Dan dia bisa menampilkan grafik untuk word length dalam tiap2 bahasa
>>> from nltk.corpus import udhr
import file yang diinginnkan. dalam hal ini udhr
>>> languages = ['Chickasaw', 'English', 'German_Deutsch',
masukan daftar bahasa2nya
... 'Greenlandic_Inuktikut', 'Hungarian_Magyar', 'Ibibio_Efik']

berikut rumus2nya
>>> cfd = nltk.ConditionalFreqDist(
... (lang, len(word))
... for lang in languages
... for word in udhr.words(lang + '-Latin1'))
>>> cfd.plot(cumulative=True)

Korpus ada juga yang tersedia dalam bahasa lain, dari bahasa2 eropa sampai bahasa JAWA... hebat ya...siapa ya kira2 yang ngumpulin. Berikut conroh untuk mencari frekwensi distribusi huruf2 pada teks udhr dalam bahasa jawa
>>> languages = ['Javanese-Latin1']
>>> raw_text = udhr.raw('Javanese-Latin1')
>>> nltk.FreqDist(raw_text).plot()


Berikut kami tampilkan daftar perintah

Example Description
fileids() the files of the corpus
fileids([categories]) the files of the corpus corresponding to these categories
categories() the categories of the corpus
categories([fileids]) the categories of the corpus corresponding to these files
raw() the raw content of the corpus
raw(fileids=[f1,f2,f3]) the raw content of the specified files
raw(categories=[c1,c2]) the raw content of the specified categories
words() the words of the whole corpus
words(fileids=[f1,f2,f3]) the words of the specified fileids
words(categories=[c1,c2]) the words of the specified categories
sents() the sentences of the whole corpus
sents(fileids=[f1,f2,f3]) the sentences of the specified fileids
sents(categories=[c1,c2]) the sentences of the specified categories
abspath(fileid) the location of the given file on disk
encoding(fileid) the encoding of the file (if known)
open(fileid) open a stream for reading the given corpus file
root() the path to the root of locally installed corpus
readme() the contents of the README file of the corpus

Ada tambahan sedikit
>>> raw = gutenberg.raw("burgess-busterbrown.txt")
>>> raw[1:20]
menampilkan judul teks
'The Adventures of B'

>>> words = gutenberg.words("burgess-busterbrown.txt")
masukan nama file nya
>>> words[1:20]
['The', 'Adventures', 'of', 'Buster', 'Bear', 'by', 'Thornton', 'W', '.',
'Burgess', '1920', ']', 'I', 'BUSTER', 'BEAR', 'GOES', 'FISHING', 'Buster',
'Bear']
>>> sents = gutenberg.sents("burgess-busterbrown.txt")
>>> sents[1:20]
[['I'], ['BUSTER', 'BEAR', 'GOES', 'FISHING'], ['Buster', 'Bear', 'yawned', 'as',
'he', 'lay', 'on', 'his', 'comfortable', 'bed', 'of', 'leaves', 'and', 'watched',
'the', 'first', 'early', 'morning', 'sunbeams', 'creeping', 'through', ...],

US Inaugural President Address

Dengan kode inaugural, korpus ini berisi pidati pengukuhan presiden sebanyak 55 presiden, mulai dari yang pertama 'Washington' sampai yang terakhir di 2009 ini 'obama'.
berikut cara mengidentifikasinya
>>> from nltk.corpus import inaugural
>>> inaugural.fileids()
['1789-Washington.txt', '1793-Washington.txt', '1797-Adams.txt', ...]
>>> [fileid[:4] for fileid in inaugural.fileids()]
4 merupakan digit angka. jadi selama belum tahun 1000, semua bakal ditampilin
['1789', '1793', '1797', '1801', '1805', '1809', '1813', '1817', '1821', ...]

Plot of a Conditional Frequency Distribution: all words in the Inaugural Address Corpus that begin with america or citizen are counted; separate counts are kept for each address; these are plotted so that trends in usage over time can be observed; counts are not normalized for document length.

>>> cfd = nltk.ConditionalFreqDist(
... (target, fileid[:4])
... for fileid in inaugural.fileids()
... for w in inaugural.words(fileid)
... for target in ['america', 'citizen']
... if w.lower().startswith(target))
>>> cfd.plot()

Reuters Corpus

GImana, dah pusintg? Nah setelah berkutat dengan korpus brwon tadi, sekarang kita akan beralih ke korpus Reuters (bacanya royters)

>>> from nltk.corpus import reuters
import dulu korpus reutersnya

>>> reuters.fileids()
buka daftar filenya
['test/14826', 'test/14828', 'test/14829', 'test/14832', ...]

>>> reuters.categories()
tampilkan kategori apa saja yang ada di dalam reuters
['acq', 'alum', 'barley', 'bop', 'carcass', 'castor-oil', 'cocoa',
'coconut', 'coconut-oil', 'coffee', 'copper', 'copra-cake', 'corn',
'cotton', 'cotton-oil', 'cpi', 'cpu', 'crude', 'dfl', 'dlr', ...]

TIdak seperti Brown, pangorganisasian informasi di Reuters agak tumpang tindih, kadang satu genre dan genre yang lain saling berhubungan. Karena itu dalam pencarian, selain jenis file, cantumkan juga kode file tersebut

>>> reuters.categories('training/9865')
masukan kategori reuters beserta kodenya
['barley', 'corn', 'grain', 'wheat']

>>> reuters.categories(['training/9865', 'training/9880'])
yang ini adalah cara untuk mencari 2 file
['barley', 'corn', 'grain', 'money-fx', 'wheat']

>>> reuters.fileids('barley')
masuk ke salah satu
['test/15618', 'test/15649', 'test/15676', 'test/15728', 'test/15871', ...]

>>> reuters.fileids(['barley', 'corn'])
sama, cuma menampilkan dari dua file sekaligus
['test/14832', 'test/14858', 'test/15033', 'test/15043', 'test/15106',
'test/15287', 'test/15341', 'test/15618', 'test/15618', 'test/15648', ...]

Menampilkan Tabulasi kategor yg diinginkan pada Tiap Genre

>>> cfd = nltk.ConditionalFreqDist(
menampilkan perintah CFD

... (genre, word)
yang dicari adalah kata dalam genre

... for genre in brown.categories()
genrenya ada di dalam kategori brown

... for word in brown.words(categories=genre))
lengkapi perintah, mencari kata yangng ada dalam daftar kata2, yang ada dalam kategorinya brown

>>> genres = ['news', 'religion', 'hobbies', 'science_fiction', 'romance', 'humor']
sebutkan jenis genrenya

>>> modals = ['can', 'could', 'may', 'might', 'must', 'will']
sebutkan kode klasifikasi kata (modal dalam hal ini) dan definisinya

>>> cfd.tabulate(conditions=genres, samples=modals)
masukan rumus tabulasi yang tujuanya mencari sample (modal) yang ada dalam genre (conditions)
can could may might must will
news 93 86 66 38 50 389
religion 82 59 78 12 54 71
hobbies 268 58 131 22 83 264
science_fiction 16 49 4 12 8 16
romance 74 193 11 51 45 43
humor 16 30 8 8 9 13

Mencari jumlah pemunculan modals/ Wh Q/ dll

>>> from nltk.corpus import brown
import korpusnya

>>> news_text = brown.words(categories='news')
pilih kategori filenya

>>> fdist = nltk.FreqDist([w.lower() for w in news_text])
lihat distribusi frekwensinya

>>> modals = ['can', 'could', 'may', 'might', 'must', 'will']
definisikan modal

>>> for m in modals:
... print m + ':', fdist[m],
...
masukan rumus

can: 94 could: 87 may: 93 might: 38 must: 53 will: 389

untuk yg wh, tinggal diganti aja modals ke wh
Definisikan wh itu apa
lalu ambil; huruf depanya yaitu w

Untuk to be, spasinya diganti dengan dash_ sehingga jadinya to_be

kalo dilihat hasilnya, yg mendominasi to be adalah 'is' dengan 733. disusul dengan 'are' yang 330, dan 'am' yang cuma 14. Ini bisa dimaknai, penceritaan dengan sudut pandang orang ke 3 (she he it) dan orang ke dua (you) lebih mendominasi

Tentang Brown Corpus

Brown corpus adalah corpus bahasa inggris pertama yang jumlah korpusnya mencapai jutaan. Korpus tersebut sudah diklasifikasikan menjadi kategori tertentu, misal : berita, agama, hobby dll.

>>> from nltk.corpus import brown
akses korpus brown

>>> brown.categories()
lihat kategori apa saja yang ada
['adventure', 'belles_lettres', 'editorial', 'fiction', 'government', 'hobbies',
'humor', 'learned', 'lore', 'mystery', 'news', 'religion', 'reviews', 'romance',
'science_fiction']

>>> brown.words(categories='news')
akses kategori 'news'
['The', 'Fulton', 'County', 'Grand', 'Jury', 'said', ...]

>>> brown.words(fileids=['cg22'])
akses korpus brown untuk file bernomor cg22
['Does', 'our', 'society', 'have', 'a', 'runaway', ',', ...]

>>> brown.sents(categories=['news', 'editorial', 'reviews'])
menelusuri kata2 yang berkategori news, editorial dan review
[['The', 'Fulton', 'County'...], ['The', 'jury', 'further'...], ...]

Menampilkan data dari chatroom

>>> from nltk.corpus import nps_chat
>>> chatroom = nps_chat.posts('10-19-20s_706posts.xml')
>>> chatroom[123]

10-19-20s_706posts.xml contains 706 posts gathered from the 20s chat room on 10/19/2006.

Saturday, May 23, 2009

Menelusuri Informasi dalam korpus

Masih ingat langkah ini
>>> from nltk.corpus import gutenberg
pilih nama korpusnya

>>> gutenberg.fileids()
tampilkan nama filenya
['austen-emma.txt', 'austen-persuasion.txt', 'austen-sense.txt', ...]

>>> emma = gutenberg.words('austen-emma.txt')

setelah ini

>>> for fileid in gutenberg.fileids():
... num_chars = len(gutenberg.raw(fileid))
... num_words = len(gutenberg.words(fileid))
... num_sents = len(gutenberg.sents(fileid))
... num_vocab = len(set([w.lower() for w in gutenberg.words(fileid)]))
... print int(num_chars/num_words), int(num_words/num_sents), int(num_words/num_vocab), fileid

ia akan menampilkan (harus di print)
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).

Jika ingin menampilkan kata2nya, maka harus sebagai berikut....

>>> macbeth_sentences = gutenberg.sents('shakespeare-macbeth.txt')
>>> macbeth_sentences
menampilkan kalimat2 dalam macbeth

>>> macbeth_sentences[1037]
menampilkan kalimat ke 1037
['Double', ',', 'double', ',', 'toile', 'and', 'trouble', ';',
'Fire', 'burne', ',', 'and', 'Cauldron', 'bubble']
>>> longest_len = max([len(s) for s in macbeth_sentences])
>>> [s for s in macbeth_sentences if len(s) == longest_len]
menampilkan kalimat terpanjang di Macbeth
[['Doubtfull', 'it', 'stood', ',', 'As', 'two', 'spent', 'Swimmers', ',', 'that',
'doe', 'cling', 'together', ',', 'And', 'choake', 'their', 'Art', ':', 'The',
'mercilesse', 'Macdonwald', ...], ...]

>>> from nltk.corpus import webtext
menampilkan kalimat yang berasal dari web text
>>> for fileid in webtext.fileids():
... print fileid, webtext.raw(fileid)[:65], '...'
...
firefox.txt Cookie Manager: "Don't allow sites that set removed cookies to se...
grail.txt SCENE 1: [wind] [clop clop clop] KING ARTHUR: Whoa there! [clop...
overheard.txt White guy: So, do you have any plans for this evening? Asian girl...
pirates.txt PIRATES OF THE CARRIBEAN: DEAD MAN'S CHEST, by Ted Elliott & Terr...
singles.txt 25 SEXY MALE, seeks attrac older single lady, for discreet encoun...
wine.txt Lovely delicate, fragrant Rhone wine. Polished leather and strawb...

Mengakses Korpus

>>> import nltk
import dari nltk

>>> nltk.corpus.gutenberg.fileids()
pilih jenis korpusnya, dan akan keluar teks yang ada dalam korpus tersebut

['austen-emma.txt', 'austen-persuasion.txt', 'austen-sense.txt', 'bible-kjv.txt',
'blake-poems.txt', 'bryant-stories.txt', 'burgess-busterbrown.txt',
'carroll-alice.txt', 'chesterton-ball.txt', 'chesterton-brown.txt',
'chesterton-thursday.txt', 'edgeworth-parents.txt', 'melville-moby_dick.txt',
'milton-paradise.txt', 'shakespeare-caesar.txt', 'shakespeare-hamlet.txt',
'shakespeare-macbeth.txt', 'whitman-leaves.txt']

>>> emma = nltk.corpus.gutenberg.words('austen-emma.txt')
pilih teks dalam korpus tersebut

>>> len(emma)
hitung panjang teksnya
192427

mencari concordance
>>> emma = nltk.Text(nltk.corpus.gutenberg.words('austen-emma.txt'))
pilih teks
>>> emma.concordance("surprize")
cari concordance katanya

cara lain mengakses korpus

>>> from nltk.corpus import gutenberg
pilih nama korpusnya

>>> gutenberg.fileids()
tampilkan nama filenya
['austen-emma.txt', 'austen-persuasion.txt', 'austen-sense.txt', ...]

>>> emma = gutenberg.words('austen-emma.txt')

mencari lexical diversity(keberagaman kata)

masukan rumus
>>> def lexical_diversity(text):
... return len(text) / len(set(text))
...
>>> def percentage(count, total):
... return 100 * count / total
...

setelah rumus jadi, masukan formulanya
>>> lexical_diversity(text3)
16.050197203298673
>>> lexical_diversity(text5)
7.4200461589185629

Mencari konotasi kata

>>> text1.similar("monstrous")
masukan nama teks.similar dan kata yang dicari

mencari concordance

Concordance adalah mencari kata2 yang berdampingan di kiri dan kanan kata target
>>> text1.concordance("monstrous")
Building index...
Displaying 11 of 11 matches:
ong the former , one was of a most monstrous size . ... This came towards us ,
ON OF THE PSALMS . " Touching that monstrous bulk of the whale or ork we have r
ll over with a heathenish array of monstrous clubs and spears . Some were thick
d as you gazed , and wondered what monstrous cannibal and savage could ever hav
that has survived the flood ; most monstrous and most mountainous ! That Himmal
they might scout at Moby Dick as a monstrous fable , or still worse and more de

mencari bigrams

Bigrams adalah kolokasi dari kata2 yang kita definisikan
>>> bigrams(['more', 'is', 'said', 'than', 'done'])
[('more', 'is'), ('is', 'said'), ('said', 'than'), ('than', 'done')]

mencari kata2 yang ber kolokasi

>>> text4.collocations()
masukan nama teks dan collocations

Mencari presentase pemunculan satu kata dalam teks

>>> text3.count("smote")
definisikan teks yang akan dicari dan kata yang akan dicari
5
>>> 100 * text4.count('a') / len(text4)
masukan rumus
1.4643016433938312

mencari kata2 yg sering muncul dalam teks

pertama, perlu didefinisikan dahulu teks mana yang akan dicari
>>> fdist1 = FreqDist(text1)
>>> fdist1

>>> vocabulary1 = fdist1.keys()
>>> vocabulary1[:50]
[',', 'the', '.', 'of', 'and', 'a', 'to', ';', 'in', 'that', "'", '-',
'his', 'it', 'I', 's', 'is', 'he', 'with', 'was', 'as', '"', 'all', 'for',
'this', '!', 'at', 'by', 'but', 'not', '--', 'him', 'from', 'be', 'on',
'so', 'whale', 'one', 'you', 'had', 'have', 'there', 'But', 'or', 'were',
'now', 'which', '?', 'me', 'like']
>>> fdist1['whale']
906

setelah itu baru cari plotnya

fdist1.plot(50, cumulative=True)

dia akn mencari yang pemunculanya dobel dobel sampai 50 kali

mencari range angka

>>>range(10)
menampilkan angka 1 sampai 10

>>>range(10, 20)
menampilkan angka 10-20

>>>range(10, 20, 2)
menampilkan angka maju dari 10sampai 20, dengan ditambahi 2 tiap angkanya
12,14,16,...

>>>range(20, 10, -2)
menampilkan angka mundur dari 20 sampai 10, dengan dikurangi 2 tiap angkanya
18,16,14...

mencari Plot DIspersion (persebaran kata)

Disperse artinya adalah persebaran kata. Plot Dispersion memungkinkan kita untuk melihat penyebaran kata dalam teks. Kata2nya apa saj, dan ia hadir di urutan nomor berapa....gt...
>>> text4.dispersion_plot(["citizens", "democracy", "freedom", "duties", "America"])
Jadi ini untuk melihat, pada teks 4, persebaran kata kata diatas, ada di posisi mana aja?

menghitung volume teks

>>> len(text1)
jumlah karakter dalam teks 1
260819
>>> len(set(text1))
jumlah kalimat dalam teks1
19317
>>> len(set([word.lower() for word in text1]))
jumlah kata yang berhuruf kecil
17231
>>> len(set([word.lower() for word in text1 if word.isalpha()]))
jumlah kata yag beruruf kecil dan berbentuk huruf(bukan angka atau simbol)

Mensortir kata kata parameter tertentu

Some Word Comparison Operators
Function Meaning
s.startswith(t) test if s starts with t
s.endswith(t) test if s ends with t
t in s test if t is contained inside s
s.islower() test if all cased characters in s are lowercase
s.isupper() test if all cased characters in s are uppercase
s.isalpha() test if all characters in s are alphabetic
s.isalnum() test if all characters in s are alphanumeric
s.isdigit() test if all characters in s are digits
s.istitle() test if s is titlecased (all words in s have have initial capitals)

Contoh:
>>> sorted([w for w in set(text1) if w.endswith('ableness')])
sortir dari kata2 yang ada dalam text no 1 untuk kata kata yang berakhir dengan 'ableness'
['comfortableness', 'honourableness', 'immutableness', 'indispensableness', ...]


>>> sorted([term for term in set(text4) if 'gnt' in term])
sortir kata kata pada text 4 yang mengandung huruf 'gnt'
['Sovereignty', 'sovereignties', 'sovereignty']

>>> sorted([item for item in set(text6) if item.istitle()])
sortir kata kata pada text 6 yang diawali dengan huruf besar
['A', 'Aaaaaaaaah', 'Aaaaaaaah', 'Aaaaaah', 'Aaaah', 'Aaaaugh', 'Aaagh', ...]

>>> sorted([item for item in set(sent7) if item.isdigit()])
sortir semua karakter pada teks 7 yang mengandung angka/digit
['29', '61']
>>>


Yang ini lebih kompleks lagi karena ada dua parameter

>>> sorted([w for w in set(text7) if '-' in w and 'index' in w])
mensortir kata kata dalam teks 7 yang mengandung tanda '-' dan kata 'index'
[stock-index, index-arbitrage, index ...]

>>> sorted([wd for wd in set(text3) if wd.istitle() and len(wd) > 10])
sortir kata kata yang ada di teks 3 yang diawali dengan huruf besar DAN jumlah hurufnya lebih dari 10

>>> sorted([t for t in set(text2) if 'cie' in t or 'cei' in t])
Sortir kata kata dalam teks2 yang mengandung huruf 'cie' atau 'cei'

>>> [w.upper() for w in text1]
ganti semua hurf yang ada di dalam text 1 dengan huruf besar

Mengimport data

Berikut contoh mengimport data dari file NLTK yg sudah ada beserta paket Phyton
>>> import nltk
>>> nltk.download()