開発環境
- macOS High Sierra - Apple
- Emacs (Text Editor)
- Python 3.6 (プログラミング言語)
入門 自然言語処理 (Steven Bird (著)、Ewan Klein (著)、Edward Loper (著)、萩原 正人 (翻訳)、中山 敬広 (翻訳)、水野 貴明 (翻訳)、オライリージャパン)の1章(言語処理とPython)、1.8(演習問題)23、24、25、26、27、28、29.を取り組んでみる。
コード(Emacs)
Python 3
#!/usr/bin/env python3
from nltk.book import *
print('23.')
for word in [w for w in set(text6) if w.isupper()]:
print(word)
print('24.')
print('a.')
print([w for w in set(text6) if w.endswith('ize')])
print('b.')
print([w for w in set(text6) if w.find('z') != -1])
print('c.')
print([w for w in set(text6) if w.find('pt') != -1])
print('25.')
words = ['she', 'sells', 'sea', 'shells', 'by', 'the', 'sea', 'shore']
print('a.')
print([w for w in words if w.startswith('sh')])
print('b.')
print([w for w in words if len(w) > 4])
print('26.')
# テキスト中の単語の長さの和
s = sum([len(w) for w in text1])
print(s)
# 単語数
n = len(text1)
print(n)
# テキスト中の単語帳の平均
print(s / n)
print('27.')
# 26のを関数に
def vocab_size(text):
return sum([len(w) for w in text]) / len(text)
print(vocab_size(text1))
print('28.')
def percent(word, text):
return len([w for w in text if w == word]) / len(text) * 100
print(f'{percent("the", text1)}%')
print(f'{percent("a", text1)}%')
print(f'{percent("an", text1)}%')
print('29.')
# テキストに含まれる単語が増えているか(減っているか)を知ることができる
print(set(text3) < set(text1))
texts = [text1, text2, ['a', 'the']]
for t1 in texts:
for t2 in texts:
print(set(t1) < set(t2))
入出力結果(Terminal, Jupyter(IPython))
$ ./sample16.py *** Introductory Examples for the NLTK Book *** Loading text1, ..., text9 and sent1, ..., sent9 Type the name of the text or sentence to view it. Type: 'texts()' or 'sents()' to list the materials. text1: Moby Dick by Herman Melville 1851 text2: Sense and Sensibility by Jane Austen 1811 text3: The Book of Genesis text4: Inaugural Address Corpus text5: Chat Corpus text6: Monty Python and the Holy Grail text7: Wall Street Journal text8: Personals Corpus text9: The Man Who Was Thursday by G . K . Chesterton 1908 23. NI PIGLET CART BRIDE W CRONE CROWD VOICE MONKS WOMAN NARRATOR CARTOON MINSTREL KNIGHTS SENTRY FATHER A OLD OFFICER MAYNARD RANDOM SIR MIDDLE LOVELY PRINCESS CUSTOMER PRINCE MIDGET C BLACK ALL THE U OF ARTHUR PATSY GUARDS HISTORIAN GUESTS VILLAGER GUARD DINGO SHRUBBER OTHER HEADS CRAPPER GUEST HERBERT ANIMATOR CRASH SOLDIER SUN MASTER ZOOT SECOND LAUNCELOT CAMERAMAN GIRLS AMAZING BEDEVERE KING DEAD KNIGHT B Y O ENCHANTER GALAHAD CHARACTERS MAN BORS ROGER INSPECTOR N ARMY PARTY WITCH LUCKY LEFT WIFE PRISONER CONCORDE BROTHER DIRECTOR STUNNER TIM GOD SCENE GREEN RIGHT ROBIN DENNIS BRIDGEKEEPER I PERSON FRENCH S VILLAGERS HEAD WINSTON CHARACTER 24. a. [] b. ['frozen', 'amazes', 'zoo', 'zoosh', 'zoop', 'Fetchez', 'zhiv', 'zone'] c. ['temptress', 'Thpppt', 'excepting', 'temptation', 'Chapter', 'Thpppppt', 'ptoo', 'Thppt', 'empty', 'aptly', 'Thppppt'] 25. a. ['she', 'shells', 'shore'] b. ['sells', 'shells', 'shore'] 26. 999044 260819 3.830411128023649 27. 3.830411128023649 28. 5.260736372733581% 1.7517895552087845% 0.22314325260046236% 29. False False False False False False False True True False $
0 コメント:
コメントを投稿