語言處理與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]
“`