如何从列表筛选末尾标签为'1'的数据并随机抽取1000条评论?
解决方法:筛选标签为'1'的评论并随机抽取1000条
嘿,我来帮你搞定这个需求!结合你给出的初始代码,咱们可以一步步实现筛选末尾标签为'1'的评论,再随机抽取1000条的功能:
步骤1:读取并预处理数据
先把你给出的文件读取和数据拆分逻辑整理好,这一步已经帮你跳过了表头(lines = lines[1:]),得到每条拆分后的条目列表:
with open('movie_ratings.txt', 'r') as f: lines = f.read().splitlines() # 跳过表头行 lines = lines[1:] # 按制表符拆分每行数据,得到二维列表 sentences = [line.split('\t') for line in lines]
步骤2:筛选末尾标签为'1'的评论
接下来咱们只保留那些末尾元素是'1'的条目,这里加个判断确保每条数据至少有一个元素,避免索引报错:
# 筛选末尾标签为'1'的评论 filtered_sentences = [s for s in sentences if len(s) > 0 and s[-1] == '1']
步骤3:随机抽取1000条评论
用Python自带的random模块来做随机抽取,random.sample()会自动处理符合条件的评论不足1000条的情况(这种时候会直接返回所有符合条件的评论):
import random # 随机抽取1000条,若不足则返回全部 sample_size = 1000 random_samples = random.sample(filtered_sentences, min(sample_size, len(filtered_sentences)))
额外小提示
如果你的评论内容是sentences里的某个特定字段(比如第二个元素),可以这样提取纯评论内容:
# 假设评论是每个条目的第二个元素(索引为1) random_comments = [sample[1] for sample in random_samples]
内容的提问来源于stack exchange,提问作者charlie
相关产品推荐
相关产品推荐

