ChatGPT生成文本检测器算法挑战大赛

ChatGPT生成文本检测器算法挑战大

比赛链接:2023 iFLYTEK A.I.开发者大赛-讯飞开放平台 (xfyun.cn)

1、数据加载和预处理

import numpy as np
import pandas as pd
from sklearn.model_selection import train_test_split, cross_val_predict
from sklearn.linear_model import LogisticRegression
from sklearn.feature_extraction.text import TfidfVectorizer
from sklearn.metrics import classification_report
from sklearn.pipeline import Pipeline
from sklearn.model_selection import GridSearchCV# 加载数据
train_data = pd.read_csv('ChatGPT生成文本检测器公开数据-更新/train.csv')
test_data = pd.read_csv('ChatGPT生成文本检测器公开数据-更新/test.csv')# 数据预处理
train_data['content'] = train_data['content'].apply(lambda x: x[1:-1])
test_data['content'] = test_data['content'].apply(lambda x: x[1:-1])

2、训练集和验证集划分

# 划分训练集和验证集
train_text, valid_text, train_label, valid_label = train_test_split(train_data['content'], train_data['label'], test_size=0.2, random_state=42
)

3、Pipeline构建

使用Pipeline构建了一个包含TF-IDF向量化和逻辑回归模型的流水线。

# 使用Pipeline进行流水线构建
pipeline = Pipeline([('tfidf', TfidfVectorizer(token_pattern=r'\w{1,}', max_features=5000, ngram_range=(1, 2))),('model', LogisticRegression(max_iter=1000))
])

4、网格搜索参数

定义了要进行网格搜索的参数范围,其中包括TF-IDF的最大特征数和逻辑回归的正则化参数C。

# 网格搜索参数
param_grid = {'tfidf__max_features': [2000, 5000],'model__C': [0.1, 1, 10]
}

5、网格搜索交叉验证

使用GridSearchCV在训练集上执行网格搜索交叉验证,寻找最佳参数组合。

# 在训练集上进行网格搜索交叉验证
grid_search = GridSearchCV(pipeline, param_grid, cv=3, scoring='f1_macro')
grid_search.fit(train_text, train_label)

6、最佳模型获取

从网格搜索结果中选择出最佳模型。

# 最佳模型
best_model = grid_search.best_estimator_

7、预测和评估

使用最佳模型预测验证集的标签,并通过classification_report打印验证集的分类报告。

# 打印最佳参数
print("Best Parameters:", grid_search.best_params_)# 预测验证集
valid_predictions = best_model.predict(valid_text)# 打印验证集的分类报告
print("Validation Set Classification Report:")
print(classification_report(valid_label, valid_predictions))

8、测试集预测和保存

使用最佳模型对测试集进行预测,并将预测结果保存到CSV文件中。

# 使用最佳模型进行测试集预测
test_predictions = best_model.predict(test_data['content'])
test_data['label'] = test_predictions# 保存预测结果
test_data[['name', 'label']].to_csv('tfidf_predictions.csv', index=None)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/31613.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

API 测试 | 了解 API 接口概念|电商平台 API 接口测试指南

什么是 API? API 是一个缩写,它代表了一个 pplication P AGC 软件覆盖整个房间。API 是用于构建软件应用程序的一组例程,协议和工具。API 指定一个软件程序应如何与其他软件程序进行交互。 例行程序:执行特定任务的程序。例程也称…

flowable的ProcessEngine

一、ProcessEngine ProcessEngine 是 Flowable 引擎的核心对象,它是流程引擎的主入口,负责与各个服务进行交互和管理流程的整个生命周期。ProcessEngine 提供了各种方法和服务,以便于我们与流程引擎进行交互和操作。 下面是 ProcessEngine …

springboot 报错处理(长期更新 2023.8.11)

目录 一、HTTP 相关1.1、 数据传输方面1.1.1、 HttpMessageNotWritableException1.1.1.1、 springboot + stomp 场景1.1.2 org.springframework.messaging.converter.MessageConversionException1.1.2.1 WebSocket 数据传输场景一、HTTP 相关 1.1、 数据传输方面 1.1.1、 Htt…

VSCode-Python传参数进行Debug

新建demo.py import argparse def parse_args():description "debug example" parser argparse.ArgumentParser(descriptiondescription) help "The path of address"parser.add_argument(--host,help help) parser.add_ar…

IDEA新建类时自动设置类注释信息,署名和日期

IDEA设置路径 File --> Settings --> Editor --> File and Code Templates --> Include --> File Header 官方模板 这里 ${USER} 会读取计算机的用户名 ${DATE}是日期 ${TIME}是时间 /*** Author ${USER}* Date ${DATE} ${TIME}* Version 1.0*/

lua ipairs pairs

这两个函数都是用来遍历表格数组的,性能几乎没有区别,其他区别如下: iparis只会遍历数字索引,并在遇到第一个非数字索引时终止 paris则会遍历所有 local t {22,33,44,name沧浪水,urlwww.freecls.com,55,66}t[10] 100 for k,v…

从初学者到专家:Java运算符的完整指南

目录 1.算数运算符 2.增量运算符 2.1自增/自减运算符 4. 逻辑运算符 5.位运算符 6.移位运算符 7. 条件运算符 导言: Java作为一门广泛使用的编程语言,其运算符是编写代码时必不可少的一部分。本篇博客将为你详细介绍Java中的各种运算符&#xf…

js玩儿爬虫

前言 提到爬虫可能大多都会想到python,其实爬虫的实现并不限制任何语言。 下面我们就使用js来实现,后端为express,前端为vue3。 实现功能 话不多说,先看结果: 这是项目链接:https://gitee.com/xi1213/w…

“海纳“二维码生成器(绿色版本,离线无需安装)

介绍一款所见即所得的二维码生成器:"海纳"二维码生成器,免费、离线,简单、快捷。 主要功能: 图形界面,所见即所得;支持数字、字符、汉字等生成二维码;支持网址、邮件地址&#xff1…

【Minecraft】Fabric Mod开发完整流程2 - 创造模式物品栏与第一个方块

创造模式物品栏 添加到当前已有物品栏 再添加自定义的创造模式物品栏之前,请确保你的确有这个需求!否则建议直接添加到当前已有的物品栏内部 创建新文件:com/example/item/ModItemGroup.java package com.example.item;import net.fabricmc.…

Django-------自定义命令

每次在启动Django服务之前,我们都会在终端运行python manage.py xxx的管理命令。其实我们还可以自定义管理命令,这对于执行独立的脚本或任务非常有用,比如清除缓存、导出用户邮件清单或发送邮件等等。 自定义的管理命令不仅可以通过manage.p…

世界算力简史(下)

世界算力简史(上) 世界算力简史(中) 今天终于要完结了…… █ 1980-1990:PC时代 IBM-PC和“兼容机” 上一篇,我们说到,70年代微处理器崛起,使得个人电脑开始大量出现。 这种情况&…

多线程里使用数据库——QtWidgets

前言 之前没怎么在项目中使用数据库,对数据库这块只了解一点皮毛,只能说能用。这次涉及了在多线程中使用数据库,看了看源码,和吸取了网上的一些经验,整理封装了一下。 环境 Qt5.15.2 QSqlDatabase原理 因为不太懂数…

怎么裁剪视频大小尺寸?简单的裁剪方法分享

怎么裁剪视频的画面大小尺寸呢?有时当我们下载下来一段视频,由于视频的画面大小比例不同,会有很多的黑边,我们不管是观看还是进行二次编辑都非常影响体验,而调整视频画面比例以适应观众的设备或平台,比如将…

绽放趋势:Python折线图数据可视化艺术

文章目录 一 json数据格式1.1 json数据格式认识1.2 Python数据和Json数据的相互转换 二 pyecharts模块2.1 pyecharts概述2.2 pyecharts模块安装 三 pyecharts快速入门3.1 基础折线图3.2 pyecharts配置选项3.2.1 全局配置选项 3.4 折线图相关配置3.4.1 .add_yaxis相关配置选项3.…

检测文本是否由AI生成,GPT、文心一言等均能被检测

背景 目前很多机构推出了ChatGPT等AI文本检测工具,但是准确率主打一个模棱两可,基本和抛硬币没啥区别。 先说结论,我们对比了常见的几款AI检测工具,copyleaks检测相比较而言最准确。 检测文本 AI文本片段1 来源:G…

【Opencv入门到项目实战】(九):项目实战|信用卡识别|模板匹配|(附代码解读)

所有订阅专栏的同学可以私信博主获取源码文件 文章目录 0.背景介绍1.模板处理1.1模板读取1.2预处理1.3轮廓计算 2.输入图像处理2.1图形读取2.2预处理2.3轮廓计算2.4计算匹配得分 3.小结 0.背景介绍 接下来我们正式进入项目实战部分,这一章要介绍的是一个信用卡号识…

五粮液快闪酒吧亮相大运会,在传承中彰显创新精神

摇风、糖塑、弄窑、趣闻、琉璃、沉香、绣彩、刻花......一座以“中国风,巴蜀韵”为主题的快闪酒吧,是五粮液献给中外来宾的“和美之礼”,一项项身临其境的传统文化体验让全球友人仿佛“梦回大唐盛世,再现繁华风尚”。 &#xff0…

面试热题(反转链表)

给你单链表的头指针 head 和两个整数 left 和 right &#xff0c;其中 left < right 。请你反转从位置 left 到位置 right 的链表节点&#xff0c;返回 反转后的链表 。 链表的题&#xff0c;大部分都可以用指针或者递归可以做&#xff0c;指针如果做不出来的话&#xff0c;…

【腾讯云 Cloud Studio 实战训练营】深度体验 | 使用腾讯云 Cloud Studio 快速构建 Vue + Vite 完成律师 H5 页面

【腾讯云 Cloud Studio 实战训练营】深度体验 | 使用腾讯云 Cloud Studio 快速构建 Vue Vite 完成律师 H5 页面 写在前面的话一、腾讯云 Cloud Studio 介绍1.1 Cloud Studio 应用场景1.2 Cloud Studio 开发优势 二、沉浸式体验开发快速构建 H5 页面2.1 注册与登录 Cloud Studi…