最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python如何使用k-means方法將列表中相似的句子歸類

 更新時間:2019年08月08日 15:25:01   作者:愛吃橙子的人吖  
這篇文章主要介紹了Python如何使用k-means方法將列表中相似的句子聚為一類,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下

前言

由于今年暑假在學習一些自然語言處理的東西,發(fā)現(xiàn)網(wǎng)上對k-means的講解不是很清楚,網(wǎng)上大多數(shù)代碼只是將聚類結(jié)果以圖片的形式呈現(xiàn),而不是將聚類的結(jié)果表示出來,于是我將老師給的代碼和網(wǎng)上的代碼結(jié)合了一下,由于網(wǎng)上有許多關于k-means算法基礎知識的講解,因此我在這里就不多講解了,想了解詳細內(nèi)容的,大家可以自行百度,在這里我只把我的代碼給大家展示一下。

k-means方法的缺點是k值需要自己找,大家可以多換換k值,看看結(jié)果會有什么不同

代碼

# coding: utf-8
import sys
import math
import re
import docx
from sklearn.cluster import AffinityPropagation
import nltk
from nltk.corpus import wordnet as wn
from nltk.collocations import *
import numpy as np
reload(sys)
sys.setdefaultencoding('utf8')
from sklearn.feature_extraction.text import CountVectorizer
#要聚類的數(shù)據(jù)
corpus = [
 'This is the first document.',#0
 'This is the second second document.',#1
 'And the third one.',#2
 'Is this the first document?',#3
 'I like reading',#4
 'do you like reading?',#5
 'how funny you are! ',#6
 'he is a good guy',#7
 'she is a beautiful girl',#8
 'who am i',#9
 'i like writing',#10
 'And the first one',#11
 'do you play basketball',#12
]
#將文本中的詞語轉(zhuǎn)換為詞頻矩陣
vectorizer = CountVectorizer()
#計算個詞語出現(xiàn)的次數(shù)
X = vectorizer.fit_transform(corpus)#獲取詞袋中所有文本關鍵詞
word = vectorizer.get_feature_names()
#類調(diào)用
transformer = TfidfTransformer()
#將詞頻矩陣X統(tǒng)計成TF-IDF值
tfidf = transformer.fit_transform(X)
#查看數(shù)據(jù)結(jié)構(gòu) tfidf[i][j]表示i類文本中的tf-idf權重
weight = tfidf.toarray()
# print weight
# kmeans聚類
from sklearn.cluster import KMeans
# print data
kmeans = KMeans(n_clusters=5, random_state=0).fit(weight)#k值可以自己設置,不一定是五類
# print kmeans
centroid_list = kmeans.cluster_centers_
labels = kmeans.labels_
n_clusters_ = len(centroid_list)
# print "cluster centroids:",centroid_list
print labels
max_centroid = 0
max_cluster_id = 0
cluster_menmbers_list = []
for i in range(0, n_clusters_):
 menmbers_list = []
 for j in range(0, len(labels)):
  if labels[j] == i:
   menmbers_list.append(j)
 cluster_menmbers_list.append(menmbers_list)
# print cluster_menmbers_list

#聚類結(jié)果
for i in range(0,len(cluster_menmbers_list)):
 print '第' + str(i) + '類' + '---------------------'
 for j in range(0,len(cluster_menmbers_list[i])):
  a = cluster_menmbers_list[i][j]
  print corpus[a]

運行結(jié)果:

以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

相關文章

最新評論

康乐县| 利津县| 长垣县| 鹤山市| 洪雅县| 镇赉县| 利津县| 莆田市| 韶山市| 丹凤县| 鞍山市| 德安县| 万源市| 仁布县| 玛沁县| 靖远县| 夏河县| 龙陵县| 平武县| 华容县| 枝江市| 安义县| 昌图县| 静乐县| 木里| 洛川县| 汕尾市| 胶南市| 拜泉县| 富川| 资源县| 古浪县| 乌什县| 济南市| 紫金县| 钟山县| 屯昌县| 张家界市| 获嘉县| 沂南县| 赤水市|