Python期中作业——基于用户观看时长和影视时长,计算每个用户在不同时段对每个节目的观看权重....缓慢更新。。。

基于用户观看时长和影视时长…

1、基于用户观看时长和影视时长,计算每个用户在不同时段对每个节目的观看权重。

例如:
(1)用户A在上午看了20分钟的节目A,节目A的影视时长为40分钟,则可以定义用户A对节目A的偏好权重为20/40=0.5。

(2)用户B在上午分别看了20分钟、30分钟的节目A,节目A的影视时长为40分钟,则可以定义用户B对节目A的偏好权重为(20+30)/(40+40)=0.625。

2、统计用户在不同时段观看节目的总时长,并绘制出图形(形式不限)

3、统计用户观看节目的标签词频,并绘制词云。

1.首先对文本筛选出我们要的部分

fi = open("data.csv","r")
fo = open("result4.txt","w")

txt = fi.readlines()#读取全文本
ls = []   #存储第一次筛选后的数据
x = []     #存储第二次筛选后的数据


for row in txt: #对csv文件逐行读取
    ls.append(row.strip("\n").split(","))  #去除末尾的换行符并将每个列表用逗号分隔

for line in ls[1:]:  #从第一个开始读取到结束
    x.append(line[6])  #读取第标签所在数值
fo.write("{}".format(x))
fi.close()
fo.close()

此步骤得到此文件:
在这里插入图片描述

2.将标签成功提取后,简单几步将文件生成词云,中文需要用到jieba库进行分词:(先上代码)

import jieba #中文文本分词才要用的第三方库
import wordcloud
# from scipy.misc import imread

# mask = imread("aixin2.jpg")

f = open("F:\\迅雷下载\\py学期大作业\\result3.txt","r")
txt = f.read()#一次性读入变量txt里

# mask=mask,
pic = wordcloud.WordCloud(width = 1000,font_path="msyh.ttc",height=700)

pic.generate("".join(jieba.lcut(txt)))
pic.to_file("pywcloud.png")#生成词云文件

f.close()

生成词云图片如下:
在这里插入图片描述

其他网站
搜索到另外的做法(numpy系统是python的一种开源的数值计算扩展,这种工具可以用来存储和处理大型矩阵。这里在处理的时候将给出形状的图片表示为一个大型矩阵,再有颜色的地方来进行填词==(导包 :import numpy as np)==。导包之后需添加一个遮罩层,遮罩层就是用来限制生成图片的形状 。)
先生成result3文件,上一步有操作:

from wordcloud import WordCloud
import PIL .Image as image
import numpy as np
import jieba

def trans_CN(text):
    word_list = jieba.cut(text)
    # 分词后在单独个体之间加上空格
    result = " ".join(word_list)
    
    return result;


with open("F:\\迅雷下载\\py学期大作业\\result3.txt") as fp:
    text = fp.read()
    text  = trans_CN(text)
    # print(text)
    mask = np.array(image.open("F:\\迅雷下载\\py学期大作业\\aixin2.jpg"))#这里是用一张爱心图作为背景
    wordcloud = WordCloud(
        mask=mask,
        font_path = "C:\\Windows\\Fonts\\msyh.ttc"
    ).generate(text)
    
    image_produce = wordcloud.to_image()
    image_produce.show()

效果如图:
在这里插入图片描述


链接:https://pan.baidu.com/s/1p1aDhTy9eiJ0bjY_7hCe9A
提取码:quv7 (源文件,有需要练习的拿走)

在这里插入图片描述

原创文章 51 获赞 82 访问量 1万+

猜你喜欢

转载自blog.csdn.net/weixin_46313446/article/details/105932981