1 Star 0 Fork 7

邓飞骏 / Python练习

forked from SHTLLS / Python练习 
加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
4-3某电视剧弹幕信息文本处理.py 3.09 KB
一键复制 编辑 原始数据 按行查看 历史
SHTLLS 提交于 2020-11-26 14:08 . '格式'
# 任务详情
# 给定某电视剧的弹幕信息(共12集),完成下方指定任务。
# 传入某集电视剧series_num。比如series_num=2,表示对第2集的弹幕内容分词并统计其词频,返回词频排名第N的词语。
# N = (series_num * 9 - 2) % 10。例如:series_num=2,N=(2 * 9 - 2) % 10,N = 6,返回弹幕词频排名第6的词语。
# 某电视剧弹幕信息列名含义如下:
# 列名 含义
# 索引
# contents 弹幕内容
# likeCount 点赞数量
# tv_name 集数
# 任务要求
# 1. 程序接收变量series_num,int类型;返回结果是str类型
# 2. 需要使用下方给出的中文分词常用停用词库筛选结果,即停用词不纳入词频统计范围
# 3. 只统计字数大于等于2的词语
# 3. 任务所需文件在下方给出,文件为utf-8编码格式的csv文件,需要使用pandas读取文件
# 4. 某电视剧弹幕信息和中文分词常用停用词库可以使用requests库或pandas库读取
# 5. 提示:某电视剧弹幕信息文件存在部分数据为空的情况,可以预选除去空值或用空字符串填充填充空值
# 测试用例
# 输入:2 输出:'片头'
# 输入:1 输出:'感觉'
#
# 链接:http://72.itmc.org.cn:80/JS001/static/data/python/3030/112/fj_3222_hiddren_corner__danmu.csv
# 停用词:http://72.itmc.org.cn:80/JS001/static/data/python/3030/112/fj_cn_stopwords.txt
#
# # 1.运行或提交代码不需要自己编写测试用例,后台自动进行测试检查。
# 2.您编写代码的区域可以不限定在类或者函数体内,保证输入与输出符合任务要求即可。
# 3.点击“运行代码”按钮,可以查看程序设计是否正确,运行次数越多,任务得分越低。
# 4.点击“提交代码”按钮,系统将保存代码,并记录任务数据。
# 5.点击右上方“结束任务”按钮,系统将在后台计算任务得分,任务结束。
# -*- coding: utf-8 -*-
import jieba
import requests
import pandas as pd
from jieba import analyse
class Solution:
def TvSeriesMsgTask(self, series_num: int) -> str:
url = "http://72.itmc.org.cn:80/JS001/static/data/python/3030/112/fj_3222_hiddren_corner__danmu.csv"
stopurl = "http://72.itmc.org.cn:80/JS001/static/data/python/3030/112/fj_cn_stopwords.txt"
stopdata = pd.read_csv(stopurl, sep="\n", header=None)
stoplist = stopdata[0].tolist()
data = pd.read_csv(url)
data.dropna(inplace=True)
data = data[data['tv_name'] == series_num]
datalist = "".join(str(line) for line in data['contents'])
datalist = jieba.lcut(datalist)
list1 = {}
for i in datalist:
if (len(i) >= 2) and (i not in stoplist):
# 方法1(主)
list1[i] = list1.get(i, 0) + 1
# 方法1(次)
# if i in list1.keys():
# list1[i] += 1
# else:
# list1[i] = 1
list2 = sorted(list1.items(), key=lambda x: x[1], reverse=True)
N = (series_num * 9 - 2) % 10
return list2[N - 1][0]
print(Solution.TvSeriesMsgTask(Solution, 2))
Python
1
https://gitee.com/obsery/python-exercises.git
git@gitee.com:obsery/python-exercises.git
obsery
python-exercises
Python练习
master

搜索帮助