91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

資源簡介

該資源主要參考我的博客: [python] Kmeans文本聚類算法+PAC降維+Matplotlib顯示聚類圖像 http://blog.csdn.net/eastmount/article/details/50545937 包括輸入文檔txt,共1000行數據,每行都是分詞完的文本。 本文主要講述以下幾點: 1.通過scikit-learn計算文本內容的tfidf并構造N*M矩陣(N個文檔 M個特征詞); 2.調用scikit-learn中的K-means進行文本聚類; 3.使用PAC進行降維處理,每行文本表示成兩維數據; 4.最后調用Matplotlib顯示聚類效果圖。 免費資源,希望對你有所幫助~ By Eastmount

資源截圖

代碼片段和文件信息

#?coding=utf-8??
“““?
Created?on?2016-01-16?@author:?Eastmount
輸入:打開?All_BHSpider_Result.txt?對應1000個文本
?????001~400?5A景區?401~600?動物?601~800?人物?801~1000?國家
輸出:BHTfidf_Result.txt?tfidf值
參數:weight權重?這是一個重要參數
“““??
??
import?time??????????
import?re??????????
import?os??
import?sys
import?codecs
import?shutil
import?numpy?as?np
import?matplotlib
import?scipy
import?matplotlib.pyplot?as?plt
from?sklearn?import?feature_extraction??
from?sklearn.feature_extraction.text?import?TfidfTransformer??
from?sklearn.feature_extraction.text?import?CountVectorizer
from?sklearn.feature_extraction.text?import?HashingVectorizer?

if?__name__?==?“__main__“:
????
????#########################################################################
????#???????????????????????????第一步?計算TFIDF
????
????#文檔預料?空格連接
????corpus?=?[]
????
????#讀取預料?一行預料為一個文檔
????for?line?in?open(‘01_All_BHSpider_Content_Result.txt‘?‘r‘).readlines():
????????#print?line
????????corpus.append(line.strip())
????#print?corpus

????#參考:?http://blog.csdn.net/abcjennifer/article/details/23615947
????#vectorizer?=?HashingVectorizer(n_features?=?4000)

????
????#將文本中的詞語轉換為詞頻矩陣?矩陣元素a[i][j]?表示j詞在i類文本下的詞頻
????vectorizer?=?CountVectorizer()

????#該類會統計每個詞語的tf-idf權值
????transformer?=?TfidfTransformer()

????#第一個fit_transform是計算tf-idf?第二個fit_transform是將文本轉為詞頻矩陣
????tfidf?=?transformer.fit_transform(vectorizer.fit_transform(corpus))

????#獲取詞袋模型中的所有詞語??
????word?=?vectorizer.get_feature_names()
????

????#將tf-idf矩陣抽取出來,元素w[i][j]表示j詞在i類文本中的tf-idf權重
????weight?=?tfidf.toarray()

????#打印特征向量文本內容
????print?‘Features?length:?‘?+?str(len(word))
????resName?=?“BHTfidf_Result.txt“
????result?=?codecs.open(resName?‘w‘?‘utf-8‘)
????for?j?in?range(len(word)):
????????result.write(word[j]?+?‘?‘)
????result.write(‘\r\n\r\n‘)

????#打印每類文本的tf-idf詞語權重,第一個for遍歷所有文本,第二個for便利某一類文本下的詞語權重??
????for?i?in?range(len(weight)):
????????#print?u“-------這里輸出第“?i?u“類文本的詞語tf-idf權重------“??
????????for?j?in?range(len(word)):
????????????#print?weight[i][j]
????????????result.write(str(weight[i][j])?+?‘?‘)
????????result.write(‘\r\n\r\n‘)

????result.close()


????########################################################################
????#???????????????????????????????第二步?聚類Kmeans

????
????print?‘Start?Kmeans:‘
????from?sklearn.cluster?import?KMeans
????clf?=?KMeans(n_clusters=4)???#景區?動物?人物?國家
????s?=?clf.fit(weight)
????print?s

????‘‘‘
????print?‘Start?MiniBatchKmeans:‘
????from?sklearn.cluster?import?MiniBatchKMeans
????clf?=?MiniBatchKMeans(n_clusters=20)
????s?=?clf.fit(weight)
????print?s
????‘‘‘

????#中心點
????print(clf.cluster_centers_)
????
????#每個樣本所屬的簇
????label?=?[]???????????????#存儲1000個類標?4個類
????print(clf.labels_)
????i?=?1
????while?i?<=?len(clf.labels_):
????????print?i?clf.labels_[i-1]
????????label.append(clf.labels_[i-1])
????????i?=?i?+?1

????#用來評估簇的個數是否合適,距離越小說明簇分的越好,選取臨界點的簇個數??958.137281791
????print(clf.ine

?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----

?????文件????1046459??2016-01-17?09:14??python?kmeans\01_All_BHSpider_Content_Result.txt

?????文件???????4722??2016-01-20?05:02??python?kmeans\01_sklearn_tfidf_cluster_content.py

?????目錄??????????0??2016-01-20?05:02??python?kmeans

-----------?---------??----------?-----??----

??????????????1051181????????????????????3


評論

共有 條評論