一直有观看马前卒工作室睡前消息的习惯, 感觉他的内容很理性, 透露着马列科学社会风。 引爆全网的两个话题独山县债务问题、以岭药业连花清瘟胶囊事件。 数据可以拿来练习词频统计、词云图制作、情感分析、lda话题建模。已整理为csv文件,留给需要的人


一、原始数据

『睡前消息』截止2023年3月6日,已经更新至559期. 文稿资源来自 https://archive.bedtime.news/zh/main

原始数据集下载下来是这个样子


数据集文件夹的目录树结构

- 睡前消息文本 第1-100期
    |- 001-010期
       |- 2019 07 12 第一期.docx
       |- 2019 07 16 第二期.docx
       |- 2019 07 19 第三期.docx
       |- 2019 07 23 第四期.docx
       |- ...
    |- 011-020期
    |- 021-030期
    |-...
- 睡前消息文本 第101-200期
- 睡前消息文本 第201-300期
- 睡前消息文本 第301-400期
- 睡前消息文本 第401-500期
- 睡前消息文本 第501-最新
- bedtime_news.csv
- code.ipynb

一、整理数据

原始数据docx文件存储,数据集是2层文件夹结构。可以使用glob库提供文件路径识别功能

import os
import glob
import csv
from pdfdocx import read_docx

with open('bedtime_news.csv', 'w', encoding='utf-8', newline='') as csvf:
    fieldnames = ['date', 'name', 'text']
    writer = csv.DictWriter(csvf, fieldnames = fieldnames)
    writer.writeheader()

    # 使用glob模块查找所有的docx文件路径
    docx_files = glob.glob("**/*.docx", recursive=True)
    docx_files = [f for f in docx_files if 'DS' not in f]

    # 输出所有docx文件路径
    for file_path in docx_files:
        print(file_path)
        file_name = re.sub('\s', '', file_path.split('/')[-1])
        if file_name.startswith('22'):
            file_name = '2022'+ file_name[2:]
        date = re.findall('\d{8}', file_name)[0]
        episode = re.sub('.docx', '', file_name.replace(date, ''))
        text = read_docx(file_path)
        data = {"date": str(date), 
                "name": file_path,
                "text":text}
        writer.writerow(data)

二、导入csv

import pandas as pd

df = pd.read_csv("bedtime_news.csv", converters={'date': str})
df.head()

Run


len(df)

Run

522

获取方式

链接: https://pan.baidu.com/s/1Qor_FNBnGuTsq4NpF3vzVQ 提取码: t8pq


广而告之