m0_68688970 2022-04-07 15:46 采纳率: 100%
浏览 32
已结题

kmeans聚类出现AssertionError该如何解决

代码如下:
def get_tfidf():
try:
with open('./clean.txt', "r", encoding='ANSI') as fr:
lines = fr.readlines()
except FileNotFoundError:
print("no file like this")
transformer=TfidfVectorizer()
tfidf = transformer.fit_transform(lines)
# 转为数组形式
tfidf_arr = tfidf.toarray()
return tfidf_arr

def get_cluster(tfidf_arr,k):
kmeans = KMeansClusterer(num_means=k, distance=cosine_distance) # 分成k类,使用余弦相似分析
kmeans.cluster(tfidf_arr)
# 获取分类
kinds = pd.Series([kmeans.classify(i) for i in tfidf_arr])
fw = open('./cluster.txt', 'a+', encoding='ANSI')
for i, v in kinds.items():
fw.write(str(i) + '\t' + str(v) + '\n')
fw.close()

def cluster_text():
index_cluser = []
try:
with open('./cluster.txt', "r", encoding='ANSI') as fr:
lines = fr.readlines()
except FileNotFoundError:
print("no file like this")
for line in lines:
line = line.strip('\n')
line = line.split('\t')
index_cluser.append(line)
# index_cluser[i][j]表示第i行第j列
try:
with open('./clean.txt', "r", encoding='ANSI') as fr:
lines = fr.readlines()
except FileNotFoundError:
print("no file like this")
for index,line in enumerate(lines):
for i in range(28):
if str(index) == index_cluser[i][0]:
fw = open('Cluster' + index_cluser[i][1] + '.txt', 'a+', encoding='ANSI')
fw.write(line)
fw.close()

def get_title(cluster):
for i in range(cluster):
try:
with open('Cluster' + str(i) + '.txt', "r", encoding='ANSI') as fr:
lines = fr.readlines()
except FileNotFoundError:
print("no file like this")
all_words = []
for line in lines:
line = line.strip('\n')
line = line.split('\t')
for word in line:
all_words.append(word)
c = Counter()
for x in all_words:
if len(x) > 1 and x != '\r\n':
c[x] += 1

    print('主题' + str(i+1) + '\n词频统计结果:')
    # 输出词频最高的那个词,也可以输出多个高频词
    for (k, v) in c.most_common(1):  
        print(k,':',v,'\n')

if name == 'main':
# 定义聚类的个数
cluster = 10
# 获取tfidf矩阵
tfidf_arr = get_tfidf()

print(tfidf_arr)
print(tfidf_arr.shape)

# K-means聚类
get_cluster(tfidf_arr,cluster)
# 获取分类文件
cluster_text()
# 统计出主题词
get_title(cluster)

运行结果
tfidf矩阵可以输出
但是

img

img

  • 写回答

0条回答 默认 最新

    报告相同问题?

    问题事件

    • 系统已结题 4月15日
    • 创建了问题 4月7日

    悬赏问题

    • ¥15 onlyoffice编辑完后立即下载,下载的不是最新编辑的文档
    • ¥15 求caverdock使用教程
    • ¥15 Coze智能助手搭建过程中的问题请教
    • ¥15 12864只亮屏 不显示汉字
    • ¥20 三极管1000倍放大电路
    • ¥15 vscode报错如何解决
    • ¥15 前端vue CryptoJS Aes CBC加密后端java解密
    • ¥15 python随机森林对两个excel表格读取,shap报错
    • ¥15 基于STM32心率血氧监测(OLED显示)相关代码运行成功后烧录成功OLED显示屏不显示的原因是什么
    • ¥100 X轴为分离变量(因子变量),如何控制X轴每个分类变量的长度。