《Python自然語言處理》 1 8 練習

2021-09-23 15:02:40 字數 2669 閱讀 6899

1.○嘗試使用python直譯器作為乙個計算器,輸入表示式,如12/(4+1)。

2.○26個字母可以組成26的10次方或者26**10個10字母長的字串。也就是141167095653376l(結尾處的l只是表示這是python長數字格式)。100個字母長度的字串可能有多少個?

3.○python乘法運算可應用於鍊錶。當你輸入['monty', 'python'] 20或者3 sent1會發生什麼?

4.○複習1.1節關於語言計算的內容。在text2中有多少個詞?有多少個不同的詞?

5.○比較**1-1中幽默和言情**的詞彙多樣性得分,哪乙個文體中詞彙更豐富?

6.○製作《理智與情感》中4個主角:elinor、marianne、edward和willoughby的分布圖。在這部**中關於男性和女性所扮演的不同角色,你能觀察到什麼?你能找出一對夫妻嗎?

7.○查詢text5中的搭配。

8.○思考下面的python表示式:len(set(text4))。說明這個表示式的用途,並且描述在執行此計算中涉及的兩個步驟。

9.○複習1.2節關於鍊錶和字串的內容。

a.定義乙個字串,並且將它分配給乙個變數,如:my_string = 'my string'(在字串中放一些更有趣的東西)。用兩種方法輸出這個變數的內容,一種是通過簡單地輸入變數的名稱,然後按回車;另一種是通過使用print語句。

b.嘗試使用my_string+ my_string或者用它乘以乙個數將字串新增到它自身,例如:my_string* 3。請注意,連線在一起的字串之間沒有空格。怎樣才能解決這個問題?

10.○使用語法my_sent = ["my", "sent"],定義乙個詞鍊錶變數my_sent(用自己的詞或喜歡的話)。

a.使用' '.join(my_sent)將其轉換成乙個字串。

b.使用split()在你指定的地方將字串分割回鍊錶。

11.○定義幾個包含詞鍊錶的變數,例如:phrase1、phrase2等。將它們連線在一起組成不同的組合(使用加法運算子),最終形成完整的句子。len(phrase1 + phrase2)與len(phrase1) + len(phrase2) 之間的關係是什麼?

12.○考慮下面兩個具有相同值的表示式。哪乙個在nlp中更常用?為什麼?

a."monty python"[6:12]

b."monty", "python"

13.○我們已經學習了如何用詞鍊錶表示乙個句子,其中每個詞是乙個字串行。sent12代表什麼意思?為什麼?並嘗試其他的索引值。

14.○在變數sent3中儲存的是text3的第一句話。在sent3中the的索引值是1,因為sent3[1]的值是「the」。sent3中「the」的其他兩種出現的索引值是多少?

15.○複習1.4節討論的條件語句。在聊天語料庫(text5)中查詢所有以字母b開頭的詞。按字母順序顯示出來。

16.○在python直譯器提示符下輸入表示式range(10)。再嘗試range(10, 20), range(10, 20, 2)和range(20, 10, -2)。在後續章節中我們將看到這個內建函式的多種用途。

17.◑使用text9.index()查詢詞sunset的索引值。你需要將這個詞作為乙個引數插入到圓括號之間。在嘗試和出錯的過程中,在完整的句子中找到包含這個詞的切片。

18.◑使用鍊錶加法、set和sorted操作,計算句子sent1...sent8的詞彙表。

19.◑下面兩行之間的差異是什麼?哪乙個的值比較大?其他文字也是同樣情況嗎?

>>> sorted(set([w.lower() for w in text1]))

>>> sorted([w.lower() for w in set(text1)]

20.◑w.isupper()和not w.islower()這兩個測試之間的差異是什麼?

21.◑編寫乙個切片表示式提取text2中的最後兩個詞。

22.◑找出聊天語料庫(text5)中所有4個字母的詞。使用頻率分布函式(freqdist),以頻率從高到低顯示這些詞。

23.◑複習1.4節中的條件迴圈。使用for和if語句組合迴圈遍歷電影劇本《巨蟒和聖杯》(text6)中的詞,輸出所有的大寫詞,每行輸出乙個。

24.◑編寫表示式並找出text6中所有符合下列條件的詞。結果應該以詞鍊錶形式表示:['word1', 'word2', ...]。

a.以ize結尾。

b.包含字母z。

c.包含字母序列pt。

d.除了首字母外是全部小寫字母的詞(即titlecase)。

25.◑定義sent為詞鍊錶['she', 'sells', 'sea', 'shells', 'by', 'the', 'sea', 'shore']。編寫**執行以下任務。

a.輸出所有sh開頭的單詞。

b.輸出所有長度超過4個字元的詞。

26.◑下面的python**是做什麼的?sum([len(w) for w in text1]),你可以用它來算出乙個文字的平均字長嗎?

27.◑定義乙個名為vocab_size(text)的函式,以文字作為唯一的引數,返回文字的詞彙量。

28.◑定義乙個函式percent(word, text),計算乙個給定的詞在文字**現的頻率,結果以百分比表示。

29.◑我們一直在使用集合儲存詞彙表。試試下面的python表示式:set(sent3) < set(text1)。嘗試在set()中使用不同的引數。它是做什麼用的?你能想到乙個實際的應用嗎?

《Python自然語言處理》

python自然語言處理 基本資訊 出版社 人民郵電出版社 isbn 9787115333681 出版日期 2014 年6月 開本 16開 頁碼 508 版次 1 1 所屬分類 計算機 軟體與程式設計 python 更多關於 python自然語言處理 內容簡介 書籍計算機書籍 自然語言處理 natu...

自然語言處理

自然語言處理主要步驟包括 2.詞法分析 對於英文,有詞頭 詞根 詞尾的拆分,名詞 動詞 形容詞 副詞 介詞的定性,多種詞意的選擇。比如diamond,有菱形 棒球場 鑽石3個含義,要根據應用選擇正確的意思。3.語法分析 通過語法樹或其他演算法,分析主語 謂語 賓語 定語 狀語 補語等句子元素。4.語...

自然語言處理

前言 自然語言處理 natural language processing 是計算科學領域與人工智慧領域中的乙個重要方向。它研究能實現人與計算機之間用自然語言進行有效通訊的各種理論和方法。自然語言處理是一門融語言學 電腦科學 數學於一體的科學。因此,這一領域的研究將涉及自然語言,即人們日常使用的語言...