1. 程式人生 > >python自然語言處理-讀書筆記6

python自然語言處理-讀書筆記6

# -*- coding:utf-8 -*-
# __author__ = 'lipzhang'

#4.1 回到基礎
#賦值

#等式

#條件語句
#all()函式和any()函式可以應用到一個連結串列(或其他序列),來檢查是否全部或任一項 目滿足一些條件:
# sent = ['No', 'good', 'fish', 'goes', 'anywhere', 'without', 'a', 'porpoise', '.']
# print(all(len(w) > 4 for w in sent))
# print(any(len(w)> 4 for w in sent))

#4.2 序列
#for item in s          遍歷 s 中的元素
#for item in sorted(s)  按順序遍歷 s 中的元素
#for item in set(s)     遍歷 s 中的無重複的元素
#for item in reversed(s)            按逆序遍歷 s 中的元素
#for item in set(s).difference(t)   遍歷在集合s 中不在集合t的元素
#for item in random.shuffle(s)      按隨機順序遍歷 s 中的元素
#我們可以在這些序列型別之間相互轉換。例如:tuple(s)將任何種類的序列轉換成一個 元組,list(s)將任何種類的序列轉換成一個連結串列。我們可以使用 join()函式將一個字串鏈 錶轉換成單獨的字串,例如:':'.join(words)。
# words = 'I turned off the spectroroute'.split()
# wordlens = [(len(word), word) for word in words]
# wordlens.sort()
# print(wordlens)
# print(' '.join(w for (_, w) in wordlens))
# import nltk
# #產生器表示式
# text = '''"When I use a word," Humpty Dumpty said in rather a scornful tone,"it means just what I choose it to mean - neither more nor less."'''
# print(max(w.lower() for w in nltk.word_tokenize(text)))

#風格的問題
#函式:結構化程式設計的基礎
# import re
# def get_text(file):
#     """Read text from a file, normalizing whitespace and stripping HTML markup."""
#     text = open(file).read()
#     text = re.sub('\s+', ' ', text)
#     text = re.sub(r'<.*?>', ' ', text)
#     return text

#函式的輸入和輸出
#變數的作用域:名稱解析的LGB 規則:本地 (local),全域性(global),然後內建(built-in)

#引數型別檢查
# def tag(word):
#     assert isinstance(word, str), "argument to tag() must be a string" #使用 assert 語句和 Python的 basestring 的型別一起,它是 uni code和 str的產生型別。 如果assert 語句失敗,它會產生一個不可忽視的錯誤而停止程式執行。
#     if word in ['a', 'the', 'all']:
#         return 'det'
#     else:
#         return 'noun'


#python庫的樣例
#Matplotlib 繪圖工具
#NetworkX
# import networkx as nx
# import matplotlib
# from nltk.corpus import wordnet as wn
# def traverse(graph, start, node):
#     graph.depth[node.name] = node.shortest_path_distance(start)
#     for child in node.hyponyms():
#         graph.add_edge(node.name, child.name)
#         traverse(graph, start, child)
# def hyponym_graph(start):
#     G = nx.Graph()
#     G.depth = {}
#     traverse(G, start, start)
#     return G
# def graph_draw(graph):
#     nx.draw(graph, node_size=[16 * graph.degree(n) for n in graph], node_color=[graph.depth[n] for n in graph],
#                      with_labels=False)
#     matplotlib.pyplot.show()
# dog = wn.synset('dog.n.01')
# graph = hyponym_graph(dog)
# graph_draw(graph)
from numpy import array
cube = array([ [[0,0,0], [1,1,1], [2,2,2]],[[3,3,3], [4,4,4], [5,5,5]],[[6,6,6], [7,7,7], [8,8,8]] ])
print(cube[1,1,1])
from numpy import linalg

a = array([[4, 0], [3, -5]])
u,s,vt = linalg.svd(a)#矩陣的svd分解
print(u)
print(s)
print(vt)