txt文本数据集处理为csv的python实现

  • 科研需要,用大语言模型生成了一系列文本数据集,现需要将其整理为csv文件,python代码实现如下(简要版)
import csv
from datetime import datetime

# 数据列表
data = [
    {"日期": "2024-05-13", "时间戳": "08:00", "情绪": "平静", "地点": "家里", "记忆流内容": "早上好,今天天气很好,准备出门散步。"},
    {"日期": "2024-05-13", "时间戳": "12:30", "情绪": "焦虑", "地点": "公司", "记忆流内容": "忙碌的一天开始了,先处理一些邮件和会议。"},
    {"日期": "2024-05-13", "时间戳": "13:25", "情绪": "平静", "地点": "健身房", "记忆流内容": "下班后去健身房锻炼身体,放松一下。"},
    {"日期": "2024-05-13", "时间戳": "14:40", "情绪": "开心", "地点": "餐厅", "记忆流内容": "和朋友一起吃晚饭,聊聊近期的生活。"}
]
# 写入CSV文件
with open("data.csv", "w", newline="", encoding="utf-8") as csvfile:
    fieldnames = ["日期", "时间戳", "情绪", "地点", "记忆流内容"]
    writer = csv.DictWriter(csvfile, fieldnames=fieldnames)
    # 写入表头
    writer.writeheader()
    # 写入数据
    for row in data:
        writer.writerow(row)
print("CSV文件已生成。")
  • 运行上述代码,即可生成需要的csv文件
  • 4
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,下面是用Python代码实现THUCNews数据集文本分类的步骤: 1. 下载并解压THUCNews数据集,可以在这里下载:http://thuctc.thunlp.org/#数据集-1 2. 安装必要的Python库,包括jieba、sklearn和numpy。可以使用以下命令进行安装: ```python pip install jieba sklearn numpy ``` 3. 加载并预处理数据。使用Python的pandas库读取数据集,并使用jieba库进行中文分词和停用词过滤。将分词后的文本转换为词向量表示。 ```python import pandas as pd import jieba import numpy as np from sklearn.feature_extraction.text import TfidfVectorizer from sklearn.model_selection import train_test_split # 读取数据集 data = pd.read_csv('thucnews.csv') # 分词和停用词过滤 stopwords = [line.strip() for line in open('stopwords.txt', 'r', encoding='utf-8').readlines()] data['content'] = data['content'].apply(lambda x: [word for word in jieba.cut(x) if word not in stopwords]) # 将文本转换为词向量表示 corpus = data['content'].apply(lambda x: ' '.join(x)) vectorizer = TfidfVectorizer(max_features=5000) X = vectorizer.fit_transform(corpus).toarray() y = data['category'].values ``` 4. 划分训练集和测试集。使用sklearn库的train_test_split函数将数据集划分为训练集和测试集。 ```python # 划分训练集和测试集 X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42) ``` 5. 训练和评估分类器。使用sklearn库的SVM分类器进行训练和评估。 ```python from sklearn.svm import SVC from sklearn.metrics import classification_report # 训练分类器 clf = SVC(kernel='linear') clf.fit(X_train, y_train) # 在测试集上评估分类器 y_pred = clf.predict(X_test) print(classification_report(y_test, y_pred)) ``` 完整的代码如下所示: ```python import pandas as pd import jieba import numpy as np from sklearn.feature_extraction.text import TfidfVectorizer from sklearn.model_selection import train_test_split from sklearn.svm import SVC from sklearn.metrics import classification_report # 读取数据集 data = pd.read_csv('thucnews.csv') # 分词和停用词过滤 stopwords = [line.strip() for line in open('stopwords.txt', 'r', encoding='utf-8').readlines()] data['content'] = data['content'].apply(lambda x: [word for word in jieba.cut(x) if word not in stopwords]) # 将文本转换为词向量表示 corpus = data['content'].apply(lambda x: ' '.join(x)) vectorizer = TfidfVectorizer(max_features=5000) X = vectorizer.fit_transform(corpus).toarray() y = data['category'].values # 划分训练集和测试集 X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42) # 训练分类器 clf = SVC(kernel='linear') clf.fit(X_train, y_train) # 在测试集上评估分类器 y_pred = clf.predict(X_test) print(classification_report(y_test, y_pred)) ``` 注意:上面的代码中使用的是线性SVM分类器,可以根据需要选择其他分类器。此外,还需要下载停用词表文件stopwords.txt,可以从网上下载或自己构建。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值