#下載 NLTK 圖書集
>>> import nltk
>>> nltk.download()
使用 nltk.download()瀏覽可用的軟件包。下載器上的 Collections 選項卡顯示軟件包如何被打包分組。選擇 book 標記所在行,能夠獲取本書的例子和練習所需的所有數據。這些數據包括約 30 個壓縮文件,須要 100MB 硬盤空間。完整的數據集(即下載器中的 all)在本書寫做期間大約是這個大小的 5 倍,還在不斷擴充。python
>>> from nltk.book import *
*** 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網絡
文本1:《白鯨記》
文本2:《理智與情感》
文本3:《創世紀》
文本4:《就任演講語料庫》
文本5:《NPS 聊天語料庫》
文本6:《巨蟒與聖盃》
文本7:《華爾街日報》
文本8:《交友科爾普斯》
文本9:《誰是星期四》
================================================
#搜索文本
##查《白鯨記》中的詞monstrous:
text1.concordance("monstrous")dom
##搜索《理智與情感》中的詞affection:
text2.concordance("affection")函數
##搜索《創世紀》找出某人活了多久:
text3.concordance("lived")排序
##在《NPS 聊天語料庫》搜索一些網絡詞,如im,ur,lol
text5.concordance("im")索引
##索引,使咱們看到詞的上下文,索引monstrous在《白鯨記》出現的上下文
text1.similar("monstrous")
imperial subtly impalpable pitiable curious abundant perilous
trustworthy untoward singular lamentable few determined maddens
horrible tyrannical lazy mystifying christian exasperate
In [15]:ci
##索引monstrous在《理智與情感》出現的上下文
text2.similar("monstrous")
very exceedingly so heartily a great good amazingly as sweet
remarkably extremely vast
###觀察咱們從不一樣的文本中獲得的不一樣結果。Austen(奧斯丁,英國女小說家)使用這些詞與 Melville 徹底不一樣;在她那裏,monstrous是正面的意思,有時它的功能像詞very同樣做強調成分。rem
##研究兩個或兩個以上的詞共同的上下文,如monstrous和very
text2.common_contexts(["monstrous", "very"])it
##以判斷詞在文本中的位置:從文本開頭算起在它前面有多少詞。這個位置信息能夠用離散圖表示
##在過去220年中的一些顯著的詞語用法模式(在一個由就任演說語料首尾相連的人爲組合的文本中)
text4.dispersion_plot(["citizens", "democracy", "freedom", "duties", "America"])
###將產生-美國總統就任演說詞彙分佈圖,能夠用來研究隨時間推移語言使用上的變化io
##產生隨機文本,因爲要蒐集詞序列的統計信息而執行的比較慢。每次運行它,輸出的文本都會不一樣
text3.generate()
'''
《python天然語言處理時》第28頁有這樣一個命令--text3.generate()---功能是:產生一些與text3風格相似的隨機文本。
用NLTK3.0.4和Python2.7.6來實現時卻出現錯誤:'Text' object has no attribute 'generate' .
探索一下後發現問題所在:
打開nltk文件夾中的text.py發現了,原來新版本的NLTK沒有了「text1.generate()」這個功能做者已經把demo裏的text.generate()註釋掉了,可是我下載了nltk2.0.1版本的安裝包,解壓後打開nltk文件夾下的text.py,發現老版本中有這個功能(《python天然語言處理時》書中用的是NLTK2.0版本),因此要是想用這個功能的同窗請安裝nltk2.0.1版本,nltk3.x的版本是沒了
'''
================================================
#計數詞彙
##獲取《創世紀》的長度
len(text3)
44764
##獲取詞彙表,Python 中咱們可使用命令:set(text3)得到 text3 的詞彙表
set(text3)
##排序詞彙表
sort(set(text3))
##獲取詞彙表的長度
len(set(text3))
2789
###儘管小說中有 44,764 個標識符,但只有 2,789 個不一樣的詞彙或「詞類型」。一個詞類型是指一個詞在一
個文本中獨一無二的出現形式或拼寫。也就是說,這個詞在詞彙表中是惟一的。咱們計數的2,789個項目中包括標點符號,因此咱們把這些叫作惟一項目類型而不是詞類型。
##測量文本詞彙豐富度
len(text3) / len(set(text3))
##計數一個詞在文本中出現的次數,計算一個特定的詞在文本中佔據的百分比
text3.count("smote")
100 * text4.count('a') / len(text4)
##定義計數函數 ###詞彙差別度,豐富度,越趨近1 越豐富(1 <= lexical_diversity <= len(text)) def lexical_diversity(text): return len(text) / len(set(text)) ###百分比 def percentage(count, total): return 100 * count / total