建设网站策划案,怎么做类似淘宝网站吗,wordpress版权说明,南平网站开发公司试验任务概述#xff1a;如下为所给CSDN博客信息表#xff0c;分别汇总了ai, algo, big-data, blockchain, hardware, math, miniprog等7个标签的博客。对CSDN不同领域标签类别的博客内容进行词频统计#xff0c;绘制词频统计图#xff0c;并根据词频统计的结果绘制词云图。… 试验任务概述如下为所给CSDN博客信息表分别汇总了ai, algo, big-data, blockchain, hardware, math, miniprog等7个标签的博客。对CSDN不同领域标签类别的博客内容进行词频统计绘制词频统计图并根据词频统计的结果绘制词云图。 数据表链接https://download.csdn.net/download/m0_52051577/88669409?spm1001.2014.3001.5503 import pandas as pd
datapd.read_csv(open(D://实训课//实训课数据csdn.csv),sep,) //导入数据
data //数据预览 如图数据信息包括class、url、title、content四个类标签分别表示博客所属领域类别、对应链接、博文题目和博客内容。下面第一步对这些博文按类别进行分类。 sessiondata.loc[:,class].values
set(session)//对数据表的class类别列切分
def classma(i):class1data.loc[data[class]class_list[i],:]print(class1)return class1
//定义切分函数按类别列作为索引返回每一类别对应的数据信息
class_list[ai, algo, big-data, blockchain, hardware, math, miniprog]
# for i in range(len(class_list)):
# classma(i)
aiclassma(0) 分类结果如下图所示 导入停用词表对所分类数据进行停用词处理。 file_pathD:/..csv
def getStopword(file_path):stop_list[line[:-1] for line in open(file_path/哈工大停用词表 .txt,r,encodingUTF-8)]return stop_list
getStopword(file_path)
import jieba
def preProcess(all_data,stop_list):xdataall_data[content]result_datalist(xdata)result[]for doc in result_data:docdoc.strip()cut_listjieba.lcut(doc)doc_result[word for word in cut_list if word not in stop_list]result.append(doc_result)return result# getStopword(file_path)
result1preProcess(ai,getStopword(file_path))
print(result1) 导入jieba库对去除停用词后的数据进行分词处理并返回分词后的结果。 后续是对分词后的词频进行统计并计算每个分词的tf-idf值这里引入一个tf-idf值的概念 TF词频指的是一个词语在文档中出现的频率它认为在一个文档中频繁出现的词语往往与文档的主题相关性更高。 from gensim.models.tfidfmodel import TfidfModel
from gensim import corpora
def calculate(resultx):dictionarycorpora.Dictionary(resultx)corpus[dictionary.doc2bow(text) for text in resultx]tf_idf_model TfidfModel(corpus, normalizeFalse)word_tf_tdf list(tf_idf_model[corpus])print(词典:, dictionary.token2id)print(词频:, corpus)print(词的tf-idf值:, word_tf_tdf)return dictionary.token2id,corpus,word_tf_tdf
idic,corpus,word_tf_tdfcalculate(result1) 如上图找出每个分词和与之相关联的词对应的下标。 max_pic[]
max_fre[]
def search(resultx,a):maxmum[]idic,corpus,word_tf_tdfcalculate(resultx)for row in word_tf_tdf[a]:maxmum.append(row[1])for col in word_tf_tdf[a]:if col[1]max(maxmum):print(max(maxmum))max_fre.append(max(maxmum))max_sigcol[0]max_pic.append(max_sig)return max_pic,max_fre
for i in range(len(word_tf_tdf)):search(result1,i)
print(max_pic)
print(max_fre) 对所有相关联的数对进行检索采用特征提取方法对数据排序。并采用最大关联分析找出每一个标签中与属性相关最大的词。 返回的是对应词的下标和对应的tf-idf值。 dictionary_sidic
key_words[]
for key,value in dictionary_s.items():if value in max_pic:key_words.append(key)
key_words.pop(-1)
print(key_words) 构造关键词列表根据之前返回的关联度最大词汇对应的下标回到原数据表中定位找出对应的词汇。 # 构造词频字典
dict_zipdict(zip(key_words,max_fre))
print(dict_zip) 最后根据词汇、词频列表绘制词云图。 # 绘制词云
from wordcloud import WordCloud
import matplotlib.pyplot as plt
def draw(y):my_cloud WordCloud(background_colorwhite, # 设置背景颜色 默认是blackwidth900, height600,max_words100, # 词云显示的最大词语数量font_pathsimhei.ttf, # 设置字体 显示中文max_font_size99, # 设置字体最大值min_font_size16, # 设置子图最小值random_state50 # 设置随机生成状态即多少种配色方案).generate_from_frequencies(y)# 显示生成的词云图片plt.imshow(my_cloud, interpolationbilinear)# 显示设置词云图中无坐标轴plt.axis(off)plt.show()
draw(dict_zip) 注以上为AI标签列对应的词云图其他标签列词云图绘制的实现方式同此方法。就不再赘述。