這篇文章給大家分享的是有關(guān)Python3文本聚類怎樣進(jìn)行分類操作的內(nèi)容。小編覺得挺實用的,因此分享給大家做個參考。一起跟隨小編過來看看吧。
站在用戶的角度思考問題,與客戶深入溝通,找到黎川網(wǎng)站設(shè)計與黎川網(wǎng)站推廣的解決方案,憑借多年的經(jīng)驗,讓設(shè)計與互聯(lián)網(wǎng)技術(shù)結(jié)合,創(chuàng)造個性化、用戶體驗好的作品,建站類型包括:成都做網(wǎng)站、成都網(wǎng)站建設(shè)、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣、域名申請、虛擬主機(jī)、企業(yè)郵箱。業(yè)務(wù)覆蓋黎川地區(qū)。
主要有一下幾個步驟:
切詞
去除停用詞
構(gòu)建詞袋空間VSM(vector space model)
TF-IDF構(gòu)建詞權(quán)重,這部我沒有做,因為我的數(shù)據(jù)基本都是一類的,只是想細(xì)分,所以感覺不太適合,而且這個也有點難(捂臉)
使用K-means算法
下面開始代碼部分:
#引入基礎(chǔ)庫,在網(wǎng)上抄的代碼,除了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() #取需要分詞的內(nèi)容 titles=open("C:/Users/KangB/Desktop/wechat7/title_fenci.txt",encoding='GB2312',errors='ignore').read().split('\n') #查看內(nèi)容,這里是一個list,list里面每個原素是分好的標(biāo)題,查看下長度看有沒有錯誤 #titles #len(titles) #構(gòu)建停詞函數(shù),停詞表是自己在網(wǎng)上搜的 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 #停用詞函數(shù)調(diào)用 stop_words_file="C:/Users/KangB/Desktop/wechat7/stopwords.txt" stopwords=get_custom_stopwords(stop_words_file) #查看停用詞,也是list格式 #stopwords #構(gòu)建詞向量,也就是把分好的次去除停詞轉(zhuǎn)化成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 #聚為四類,可根據(jù)需要修改 km = KMeans(n_clusters=num_clusters) km.fit(km_matrix) clusters = km.labels_.tolist() #查看聚類的結(jié)果,是list,這里省略,看看長度是不是和title一樣就行啦 #len(clusters) #最后把聚類結(jié)果寫在一個新的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()
感謝各位的閱讀!關(guān)于Python3文本聚類怎樣進(jìn)行分類操作就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,讓大家可以學(xué)到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!