import nltkimport numpy as npfrom sklearncluster import KMeansfrom sklearnmetricspairwise import cosine_similarity# 自定义文本输入text = 今天天气真好阳光明媚大家都很开心。我想去公园散步欣赏美景。# 分句sentences = nltksent_tokenizetext# 初始
这个错误是因为NLTK库中没有CountVectorizer这个类。CountVectorizer是sklearn库中的一个类,用于将文本转换为向量。需要将代码中的nltk改为sklearn即可解决问题。修改后的代码如下:
import nltk import numpy as np from sklearn.cluster import KMeans from sklearn.metrics.pairwise import cosine_similarity from sklearn.feature_extraction.text import CountVectorizer
自定义文本输入
text = """今天天气真好,阳光明媚,大家都很开心。我想去公园散步,欣赏美景。"""
分句
sentences = nltk.sent_tokenize(text)
初始化向量化模型
vectorizer = CountVectorizer(stop_words='english')
将句子转换为向量
X = vectorizer.fit_transform(sentences)
计算余弦相似度矩阵
similarity_matrix = cosine_similarity(X)
使用KMeans聚类算法进行聚类
num_clusters = int(np.ceil(len(sentences)**0.5)) kmeans = KMeans(n_clusters=num_clusters) kmeans.fit(X)
获取每个簇的中心向量
cluster_centers = kmeans.cluster_centers_
找到最接近中心向量的句子作为摘要
summary = '' for i in range(num_clusters): cluster = np.where(kmeans.labels_ == i)[0] cluster_similarity = cosine_similarity(X[cluster], cluster_centers[i].reshape(1, -1)) cluster_summary = sentences[cluster[np.argmax(cluster_similarity)]] summary += cluster_summary + ' '
输出摘要结果
print(summary
原文地址: https://www.cveoy.top/t/topic/hcbf 著作权归作者所有。请勿转载和采集!