原创 《編寫高質量代碼 改善python程序的91個建議》讀書筆記

一、關於函數:不要在函數中定義可變對象爲默認值,使用異常替換返回錯誤,保證通過單元測試。python函數傳遞的是對象的引用。在類的初始化方法裏,參數的默認值應該爲None,因爲默認參數在函數被調用時候僅僅被評估一次。 二、編碼。 最開始使

原创 python 垃圾回收

在for循環中,每次讀取的數據佔據較大內存和磁盤,在該次循環結束後可以啓用內存回收,釋放內存。  python變量佔用了內存,僅僅通過del變量的方式,只是讓這個變量無法再使用;雖然很多書上都說是,del變量會使得變量的引用次數-1,如果

原创 解決 RuntimeWarning: invalid value encountered in double_scalars

在計算餘弦相似度函數時候,出現這個錯誤 # 計算餘弦相似度函數 def cos_like(self,array1, array2): num = float(np.matmul(array1, array2))

原创 使用sklearn 計算文本餘弦相似度

1. 首先對訓練集進行文本預處理 import pandas as pd import jieba stopwords = [line.strip() for line in open('./doc/stopword.txt', 'r'

原创 NLP 之命名實體識別

 對這個代碼的理解:https://blog.csdn.net/buppt/article/details/81180361 一.訓練集數據格式 19980101-01-001-004/m 12月/t 31日/t ,/w 中共中

原创 redis 發佈訂閱 python實現

一、首先實現一個redis類,提供給訂閱者和發佈者調用 import redis class RedisHelper: def __init__(self): # 鏈接服務端 self.__c

原创 相似度計算之餘弦相似度

 一、定義及概念: 餘弦取值範圍爲[-1,1]。求得兩個向量的夾角,並得出夾角對應的餘弦值,此餘弦值就可以用來表徵這兩個向量的相似性。夾角越小,趨近於0度,餘弦值越接近於1,它們的方向更加吻合,則越相似。當兩個向量的方向完全相反夾角餘弦取

原创 LDA使用一 文本聚類

算法流程: 1. 對給定的語料先分詞,得到分詞後的語料; 2. 構造詞典,corpus_tfidf, 最後構造 corpus_lda 3. Kmeans聚類,pred 是對語料的聚類結果列表。 pred = kmean.predict(

原创 PLSA原理

一、原理 來源:https://www.cnblogs.com/xueliangliu/archive/2012/08/01/2962162.html PLSA是個從文檔中發現topic的算法,它認爲文本可以分三個層次來理解。1,文檔(d

原创 中文NLP技術總結

一、分詞、去停用詞、消除數字、英文。 二、詞典:詞語和其索引ID的一一對應關係。假設共有N個詞語。 三、one-hot編碼: 在詞典基礎上,分詞之後的文章的詞頻向量。可以看成是M*N的單詞-文檔矩陣A。A(i,j)=第i篇文章中詞典索引爲

原创 gensim使用之一 tfidf 和lsi

1、給定訓練語料生成語料的tfidf向量和lsi向量; 2、對新的測試語料,用tfidf和lsi 判斷其和訓練語料的相似度。 import jieba from gensim import corpora, models from ge

原创 gensim 使用之二 從gensim到sklearn的格式轉換

從gensim到sklearn的格式轉換 一個很尷尬的問題是,gensim中的corpus數據格式,sklearn是無法識別的。即gensim中對向量的表示形式與sklearn要求的不符。 在gensim中,向量是稀疏表示的。例如[(0,

原创 win10的基本操作

1、通過cmd 進入某個文件夾

原创 matplotlib繪圖相關

1、在jupyter裏面使用這個可以,省去plt.show()這句話,但是在pycharm裏面,沒有此用法,需要自行plt.show()。 %matplotlib inline 2、plt.matshow(矩陣or數組),畫出這個矩陣,

原创 python 之生成器 yield

一、生成器的概念綜述 一個帶有 yield 的函數就是一個 generator,它和普通函數不同,生成一個 generator 看起來像函數調用,但不會執行任何函數代碼,直到對其調用 next()(在 for 循環中會自動調用 next(