作業(yè)筆記10_nltk

加載nltk.book中的text橘券,完成以下問題

  1. 在text2中有多少個詞?有多少個不同的詞跃洛?
  2. 嘗試寫一個切片表達(dá)式提取text2中最后兩個詞你画。
  3. 查找text5中的2-gram搭配刽辙,并統(tǒng)計(jì)搭配頻數(shù)

伯樂在線:Python自然語言處理入門

下載安裝nltk與nltk_data

  1. nltk包的安裝

    • 在Mac和Unix系統(tǒng)上
      • 終端運(yùn)行:sudo pip install -U nltk
      • 需要numpy支持
    • 在Windows系統(tǒng)上
      • tar包窥岩,下載地址
      • 解壓宰缤,在cmd命令行進(jìn)入解壓好的文件夾,執(zhí)行python setup.py install晃洒。
    • 進(jìn)入python環(huán)境慨灭,運(yùn)行import nltk,沒報(bào)錯就行球及。
  2. 下載nltk_data

    • 方法1:python環(huán)境下執(zhí)行以下代碼:

      import nltk
      nltk.download()
      

      出現(xiàn)一個下載窗口氧骤,選擇路徑,下載需要的數(shù)據(jù)包吃引。

      特點(diǎn)筹陵,很慢。我下載過無數(shù)次都沒成功镊尺。

    • 方法2:手動下載nltk_data朦佩,放到python的lib中。

      • 老師給的資料試了一下庐氮,加載出錯语稠。又從新找資源。

      • 下載地址:GitHub,packages文件夾下的內(nèi)容就就是nltk_data仙畦。

      • 把下好的nltk_data放到python目錄下输涕。其實(shí)用戶目錄也可以】看出錯提醒這里莱坎,它會在這些目錄下查找。

        所以放在任意一個目錄下面都行寸士,方便自己找就好了檐什。

  3. 一個出錯問題的解決過程

    在加載nltk.book的時候出錯了,先看出錯的代碼:

    >>> 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
    Traceback (most recent call last):
      File "<stdin>", line 1, in <module>
      File "C:\Users\yishikeji-05\Anaconda3\lib\site-packages\nltk\book.py", line 35, in <module>
        text6 = Text(webtext.words('grail.txt'),
      File "C:\Users\yishikeji-05\Anaconda3\lib\site-packages\nltk\corpus\util.py", line 99, in __getattr__
        self.__load()
      File "C:\Users\yishikeji-05\Anaconda3\lib\site-packages\nltk\corpus\util.py", line 61, in __load
        root = nltk.data.find('corpora/%s' % self.__name)
      File "C:\Users\yishikeji-05\Anaconda3\lib\site-packages\nltk\data.py", line 628, in find
        return find(modified_name, paths)
      File "C:\Users\yishikeji-05\Anaconda3\lib\site-packages\nltk\data.py", line 614, in find
        return ZipFilePathPointer(p, zipentry)
      File "C:\Users\yishikeji-05\Anaconda3\lib\site-packages\nltk\compat.py", line 561, in _decorator
        return init_func(*args, **kwargs)
      File "C:\Users\yishikeji-05\Anaconda3\lib\site-packages\nltk\data.py", line 469, in __init__
        zipfile = OpenOnDemandZipFile(os.path.abspath(zipfile))
      File "C:\Users\yishikeji-05\Anaconda3\lib\site-packages\nltk\compat.py", line 561, in _decorator
        return init_func(*args, **kwargs)
      File "C:\Users\yishikeji-05\Anaconda3\lib\site-packages\nltk\data.py", line 979, in __init__
        zipfile.ZipFile.__init__(self, filename)
      File "C:\Users\yishikeji-05\Anaconda3\lib\zipfile.py", line 1026, in __init__
        self._RealGetContents()
      File "C:\Users\yishikeji-05\Anaconda3\lib\zipfile.py", line 1093, in _RealGetContents
        raise BadZipFile("File is not a zip file")
    zipfile.BadZipFile: File is not a zip file
    
    • 錯誤類型是BadZipFile碉京,需要的文件不是zip格式的file厢汹。然后我就各種查啊搜啊。均無果谐宙。

    • 然后烫葬,仔細(xì)看了一下錯誤日志,最上面顯示出錯的代碼行是text6 = Text(webtext.words('grail.txt')這里凡蜻。

    • 所以應(yīng)該是webtext這個文件的問題搭综。于是我就去nltk_data中找webtext。果然有個叫webtext.zip的壓縮包划栓。打開里面果然有grail.txt這個文件的兑巾,那解壓了試試吧。

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

    呵呵噠忠荞,神奇的好了蒋歌。

可以做作業(yè)了

上面已經(jīng)加載過nltk和nltk.book了,就在命令行繼續(xù)做吧委煤。

  1. 在text2中有多少個詞堂油?有多少個不同的詞?

    >>> len(text2)
    141576
    >>> len(set(text2))
    6833
    
  2. 嘗試寫一個切片表達(dá)式提取text2中最后兩個詞碧绞。

    直接當(dāng)做一個list來選取最后兩個項(xiàng)目能行嗎府框?

    >>> text2[-2:]
    ['THE', 'END']
    
  3. 查找text5中的2-gram搭配,并統(tǒng)計(jì)搭配頻數(shù)

    代碼部分

    import nltk
    from nltk.book import text2,text5
    import re
    from collections import OrderedDict
    
    # text2的單詞數(shù)讥邻,和無重復(fù)單詞數(shù)
    print(len(text2),len(set(text2)))
    
    # text2的最后兩個詞
    print(text2[-2:])
    
    # text5中的2-gram搭配迫靖,統(tǒng)計(jì)搭配頻數(shù)
    def getNgrams(input, n):
        output = dict()
        for i in range(len(input)-n+1):
            newNGram = " ".join(input[i:i+n])
            if newNGram in output:
                output[newNGram] += 1
            else:
                output[newNGram] = 1
        return output
    
    ngrams = getNgrams(text5, 2)
    print(ngrams)
    ngrams_freq = OrderedDict(sorted(ngrams.items(), key=lambda t: t[1], reverse=True))
    print(ngrams_freq)
    

    結(jié)果輸出:

    2-grams結(jié)果:

    image

    詞頻統(tǒng)計(jì)結(jié)果:

    image
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市兴使,隨后出現(xiàn)的幾起案子系宜,更是在濱河造成了極大的恐慌,老刑警劉巖鲫惶,帶你破解...
    沈念sama閱讀 212,816評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件蜈首,死亡現(xiàn)場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)欢策,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,729評論 3 385
  • 文/潘曉璐 我一進(jìn)店門吆寨,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人踩寇,你說我怎么就攤上這事啄清。” “怎么了俺孙?”我有些...
    開封第一講書人閱讀 158,300評論 0 348
  • 文/不壞的土叔 我叫張陵辣卒,是天一觀的道長。 經(jīng)常有香客問我睛榄,道長荣茫,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,780評論 1 285
  • 正文 為了忘掉前任场靴,我火速辦了婚禮啡莉,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘旨剥。我一直安慰自己咧欣,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,890評論 6 385
  • 文/花漫 我一把揭開白布轨帜。 她就那樣靜靜地躺著魄咕,像睡著了一般。 火紅的嫁衣襯著肌膚如雪蚌父。 梳的紋絲不亂的頭發(fā)上哮兰,一...
    開封第一講書人閱讀 50,084評論 1 291
  • 那天,我揣著相機(jī)與錄音苟弛,去河邊找鬼奠蹬。 笑死,一個胖子當(dāng)著我的面吹牛嗡午,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播冀痕,決...
    沈念sama閱讀 39,151評論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼荔睹,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了言蛇?” 一聲冷哼從身側(cè)響起僻他,我...
    開封第一講書人閱讀 37,912評論 0 268
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎腊尚,沒想到半個月后吨拗,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,355評論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,666評論 2 327
  • 正文 我和宋清朗相戀三年劝篷,在試婚紗的時候發(fā)現(xiàn)自己被綠了哨鸭。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,809評論 1 341
  • 序言:一個原本活蹦亂跳的男人離奇死亡娇妓,死狀恐怖像鸡,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情哈恰,我是刑警寧澤只估,帶...
    沈念sama閱讀 34,504評論 4 334
  • 正文 年R本政府宣布,位于F島的核電站着绷,受9級特大地震影響蛔钙,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜荠医,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 40,150評論 3 317
  • 文/蒙蒙 一吁脱、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧子漩,春花似錦豫喧、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,882評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至缕棵,卻和暖如春孵班,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,121評論 1 267
  • 我被黑心中介騙來泰國打工结洼, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留怔蚌,地道東北人。 一個月前我還...
    沈念sama閱讀 46,628評論 2 362
  • 正文 我出身青樓虱饿,卻偏偏與公主長得像,于是被迫代替她去往敵國和親触趴。 傳聞我的和親對象是個殘疾皇子氮发,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,724評論 2 351

推薦閱讀更多精彩內(nèi)容