《Python自然語言處理》第一章

語言處理與Python

本章主要介紹了一些NLP領域和Python的入門知識,對於NLP領域我確實是門外漢,但是Python之前倒是用過了一些,所以看起來問題不大,速度比較快。

首先在命令行裏

 pip install nltk

使用Pycharm進行了例程代碼的復現。
在Pycharm裏面開一個console

>>>  import nltk
>>>  nltk.download()

在出來的python 交互式界面裏面下載book數據就可以開始實驗了。

>>> from ntlk.book import * 
#導入數據
>>> text1.concordance("monstrous"#搜索文本  在text1中搜索monstrous

>>> text1.similar("monstrous")
#搜索相似的詞(這個相似的定義比較不一般  如果兩個詞上下文都比較一致,認爲這兩個詞相似


>>> text4.dispersion_plot(["citizens","democracy","freedom","duties","America"])
#繪製詞彙分佈圖,這個功能應該稍微實用酷炫一點(text4是美國總統就職演說語料庫),這個繪圖功能的實現要求安裝有matplotlib包

>>>text3.generate()
#生成隨機文本的一個功能,但是這個功能在python3中被去掉了,所以會報錯

計數相關功能

這一部分主要是一些統計計數相關的功能。


>>> len(text3) 
#顯示文本text3的長度(標識符的個數,詞和標點符號都是標識符)

>>> set(text3)
#獲取text3的詞彙表

>>> sorted(set(text3))
###對詞彙表進行排序
>>> 3/2
#python2裏是整除 得到1
>>> 3/2
#python3裏是浮點除法得到1.5

簡單的統計

>>> fdist1 = FreqDist(text1)
>>> vocabulary1 = fdist1.keys()
>>> vocabulary1[:50]
#此處會報錯錯誤類型: ’dict_keys’ object is not subscriptable  Python3中  這個vocabulary也是一個字典,要把它轉成list  鏈表纔可以這麼用
#更改方法:
>>> vocabulary1 = list(fdist1.keys())
>>> vocabulary1[:50]

>>> fdist1.plot(50,cumulative = True)
#繪製詞彙累積頻率圖,即使用量前50的詞彙佔全文的比例,有實際意義
#自己實驗時的縱座標是次數不是頻率,跟書中不太一樣

習題

  • 6 text2.dispersion_plot([“Elinor”,”Marianne”,”Edward”,”Willoughby”])
  • 7 text5.collocations()
  • 9
    a 定義一個字符串,並且將它分配給一個變量,如:my_string = ‘My String’(在 字符串中放一些更有趣的東西)。用兩種方法輸出這個變量的內容,一種是通過簡 單地輸入變量的名稱,然後按回車;另一種是通過使用 print 語句。
    b 嘗試使用 my_string+ my_string 或者用它乘以一個數將字符串添加到它自身, 例如:my_string* 3。請注意,連接在一起的字符串之間沒有空格。怎樣能解決這個問題?
    解法:
    b
    ans = (my_string + ’ ‘) * 3
    print(ans[0:-1]

“`

發佈了102 篇原創文章 · 獲贊 38 · 訪問量 10萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章