1. 嘗試使用python直譯器作為乙個計算器,輸入表示式,如:12/(4+1)
12/4
2. 26 個字母可以組成 26 的 10 次方或者 26**10個 10 字母長的字串。 也就是 141167095653376l(結尾處的 l 只是表示這是 python 長數字格式)。100 個字母長度的字串可能有多少個?
26**100
3.python乘法運算可應用於鍊錶。當你輸入['monty', 'python'] * 20 或者 3 * sent1會發生什麼?
['monty','python'] * 20
['monty', 'python', 'monty', 'python', 'monty', 'python', 'monty', 'python', 'monty', 'python', 'monty', 'python', 'monty', 'python', 'monty', 'python', 'monty', 'python', 'monty', 'python', 'monty', 'python', 'monty', 'python', 'monty', 'python', 'monty', 'python', 'monty', 'python', 'monty', 'python', 'monty', 'python', 'monty', 'python', 'monty', 'python', 'monty', 'python']
4.複習1.1節關於語言計算的內容。在text2中有多少個詞?有多少個不同的詞?
len(text1)
len(set(text1))
6.製作《理智與情感》中四個主角:elinor、marianne、edward 和 willoughby 的分布圖。在這部**中關於男性和女性所扮演的不同角色,你能觀察到什麼?你能找出一對夫妻嗎?
text2.dispersion_plot(['elinor','edward','willoughby','marianne'])
14. 在變數sent3中儲存的是text3的第一句話。在sent3中the的索引值是1,因為sent3[1]的值是「the」。sent3中「the」的其他兩種出現的索引值是多少?
[i for i, w in enumerate(sent3) if w=='the']
15. 複習1.4節討論的條件語句。在聊天語料庫(text5)中查詢所有以字母b開頭的詞。按字母順序顯示出來。
sorted([w for w in set(text5) if w.startswith('b')])
17. 使用text9.index()查詢詞sunset的索引值。你需要將這個詞作為乙個引數插入到圓括號之間。在嘗試和出錯的過程中,在完整的句子中找到包含這個詞的切片。
def solution(keyword, text):
pun = [i for i, j in enumerate(text) if j == '.' or j == '?' or j == '!']
sunset = [i for i, j in enumerate(text) if j == keyword]
ans =
flag = 0
for i in range(len(sunset)):
j = flag
while j < len(pun):
if sunset[i] < pun[j] and pun[j - 1] < sunset[i]:
flag = j + 1
break
j += 1
# print ans
for i in range(len(ans)):
print ('start from %d to end in %d' % (ans[i][0], ans[i][1]))
print (' '.join(text[ans[i][0]: ans[i][1]]))
solution('sunset',text9)
22. 找出聊天語聊庫(text5)中所有4個字母的詞。使用頻率分布函式(freqdist),以頻率從高到低顯示這些詞。
text5_freq = nltk.freqdist(w for w in text5 if len(w)==4)
print(sorted(text5_freq, key=lambda x:text5_freq[x], reverse=true))
24. 編寫表示式並找出text6中所有符合下列條件的詞。結果應該以詞鍊錶形式表示:['word1', 'word2'...]。
#a.ize結尾
text = [w for w in text6 if w.endswith('ize')]
#b.包含字母z
text = [w for w in text6 if 'z' in w]
#c.包含序列pt
text = [w for w in text6 if 'pt' in w]
#d.除了首字母外是全部小寫字母的詞(即titlecase)。
[w for w in text6 if w.istitle()]
27.定義乙個名為vocab_size(text)的函式,以文字作為唯一的引數,返回文字的詞彙量。
def vocab_size(text):
return len(set(w.lower() for w in text if w.isalpha()))
vocab_size(text1)
28.定義乙個函式percent(word, text),計算乙個給定的詞在文字**現的頻率,結果以百分比表示。
def percent(word,text):
print("%s" % (nltk.freqdist(text).freq(word)*100) ,"%")
return
percent('the',brown.sents(categories='news')[1])
python自然語言處理 第一章
from future import division import nltk nltk.download from nltk.book import 搜尋文字 text1.concordance monstrous 出現在相似上下文中德詞彙 text1.similar monstrous 兩個或兩...
Python自然語言處理第一章
nltk即natural language toolkit,是乙個先進的用於處理自然語言的python程式,和python中的其他庫一樣,我們可以呼叫它來處理各種文字資訊。nltk功能強大,它不僅為我們學習nlp提供了豐富的語料庫,也為我們處理這些語料庫資訊提供了大量的方法,比如concordanc...
《Python自然語言處理》第一章筆記
import nltk nltk.download 引入book包 from nltk.book import 搜尋文字,顯示指定單詞及其上下文 text1.concordance monstrous 查詢出現在相似上下文中的詞 text1.similar monstrous 查詢兩個或兩個以上詞彙...