您好,登錄后才能下訂單哦!
這篇文章給大家分享的是有關Python3文本聚類怎樣進行分類操作的內容。小編覺得挺實用的,因此分享給大家做個參考。一起跟隨小編過來看看吧。
主要有一下幾個步驟:
切詞
去除停用詞
構建詞袋空間VSM(vector space model)
TF-IDF構建詞權重,這部我沒有做,因為我的數據基本都是一類的,只是想細分,所以感覺不太適合,而且這個也有點難(捂臉)
使用K-means算法
下面開始代碼部分:
#引入基礎庫,在網上抄的代碼,除了1、2、6,其他的可能用不到 import numpy as np import pandas as pd import re import os import codecs import jieba #打開文件,文件在桌面上,可以自行修改路徑 f1=open("C:/Users/KangB/Desktop/wechat7/title.txt","r",encoding='GB2312',errors='ignore') f2=open("C:/Users/KangB/Desktop/wechat7/title_fenci.txt",'w',encoding='GB2312',errors='ignore') for line in f1: seg_list = jieba.cut(line, cut_all=False) f2.write((" ".join(seg_list)).replace("\t\t\t","\t")) #print(w) f1.close() f2.close() #取需要分詞的內容 titles=open("C:/Users/KangB/Desktop/wechat7/title_fenci.txt",encoding='GB2312',errors='ignore').read().split('\n') #查看內容,這里是一個list,list里面每個原素是分好的標題,查看下長度看有沒有錯誤 #titles #len(titles) #構建停詞函數,停詞表是自己在網上搜的 def get_custom_stopwords(stop_words_file): with open(stop_words_file,encoding='utf-8')as f: stopwords=f.read() stopwords_list=stopwords.split('\n') custom_stopwords_list=[i for i in stopwords_list] return custom_stopwords_list #停用詞函數調用 stop_words_file="C:/Users/KangB/Desktop/wechat7/stopwords.txt" stopwords=get_custom_stopwords(stop_words_file) #查看停用詞,也是list格式 #stopwords #構建詞向量,也就是把分好的次去除停詞轉化成kmeans可以接受的形式 from sklearn.feature_extraction.text import CountVectorizer count_vec=CountVectorizer(stop_words=stopwords) km_matrix= count_vec.fit_transform(titles) print(km_matrix.shape) #查看詞向量 #print(km_matrix.toarray()) #開始聚類啦 from sklearn.cluster import KMeans num_clusters = 4 #聚為四類,可根據需要修改 km = KMeans(n_clusters=num_clusters) km.fit(km_matrix) clusters = km.labels_.tolist() #查看聚類的結果,是list,這里省略,看看長度是不是和title一樣就行啦 #len(clusters) #最后把聚類結果寫在一個新的txt里面 f3 =open("C:/Users/KangB/Desktop/wechat7/title_clusters.txt", 'w',encoding='GB2312',errors='ignore') for i in clusters: f3.write(str(i)) f3.write("\n") f3.close()
感謝各位的閱讀!關于Python3文本聚類怎樣進行分類操作就分享到這里了,希望以上內容可以對大家有一定的幫助,讓大家可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。