首页 > 其他分享 >TextAttack的使用功能

TextAttack的使用功能

时间:2023-08-07 22:34:19浏览次数:35  
标签:功能 TextAttack -- dataset 攻击 使用 csv

一、背景

TextAttack是弗吉尼亚大学和MIT开发的一个关于快速实现文本对抗攻击的一个工具包。国内有一个清华开发的工具OpenAttack。但是目前比较活跃的是TextAttack,写这篇博客的时候,TextAttack还做了更新。

二、安装

TextAttack发行了PyPI的包,直接通过下面的指令安装,要求是Python高于3.6的版本:

pip install textattack

三、使用

3.1 端到端的使用

TextAttack可以使用以下的指令在端到端实现攻击。

textattack attack
--model bert-base-uncased
--num-examples -1
--transformation word-swap-embedding
--constraints use repeat stopword max-words-perturbed^max_num_words=3 embedding^min_cos_sim=0.8 part-of-speech
--goal-function untargeted-classification
--attack-recipe textfooler
--log-to-csv ./bert_convid_textfooler.csv
--dataset-from-file subjectivity_data_trans.py
参数名 含义
model 指定使用的模型,可以从huggingface下载,也可以在本地加载,需要使用pytorch
num-examples 转换的数量,-1表示所有
transformation 对文本输入的转换,分为转义和同义词两大类
constraints 对抗攻击需要的约束
goal-function 攻击的目标
attack-recipe 攻击的方法,可用的攻击方法
log-to-csv 输出到文件的信息
dataset-from-file 使用自定的数据集,也可以使用内置的数据,如果使用内置的数据就是在模型后面带上数据集

3.2 dataset-from-file的例子

使用下面的代码,就可以完成加载自己的数据集。

import pandas as pd
from textattack.datasets import Dataset
dataset_name = "convid"
# 读取自定义数据集
pf = pd.read_csv(f"./{dataset_name}_test.csv")
dataset = Dataset(list(zip(pf["text"], pf["label"])))

标签:功能,TextAttack,--,dataset,攻击,使用,csv
From: https://www.cnblogs.com/future-dream/p/17610191.html

相关文章

  • K8S使用ceph-csi持久化存储之RBD
    Kubernetes集成Ceph一般有两种方案:Ceph组件运行在Kubernetes中,可以使用Rook;还有就是Kubernetes集成外部的Ceph集群。Ceph版本[root@master~]#ceph-vcephversion14.2.22(ca74598065096e6fcbd8433c8779a2be0c889351)nautilus(stable)Kubernetes版本[root@master~]#k......
  • 2023-8-7 记录一次面试题,使用Sql进行递归
     题目如图所示,是数据库源,这次考官需要我用Sql,完成一次数据查询需要根据Excel数据查询结果如上图,这时候我看到了父子关系,很容易就联想到了需要使用父子关系,既然是父子关系,一般来说应该递归跑不掉了,使用Sql进行递归代码如下:WITHTEST_CTEAS(SELECT地区表1.地区编号,地区......
  • 如何使用Microsoft List的评级功能促进用户的协作和决策
    博客链接:https://blog.51cto.com/u_13637423MicrosoftLists是一个多功能的应用程序列表,可以使团队有效地组织、跟踪和共享相关信息,在MicrosoftLists中有一个非常重要且有趣的功能:Rate(评级)功能,用户可以针对列表中的项目完成评级并提供反馈。本文将给大家介绍如何启用MicrosoftLis......
  • nacos 系列:.net core 6.0 使用 nacos
    目录安装Nuget包配置appsettings.json添加服务和配置测试官方示例:https://kgithub.com/nacos-group/nacos-sdk-csharp安装Nuget包dotnetaddpackagenacos-sdk-csharp.AspNetCoredotnetaddpackagenacos-sdk-csharp.Extensions.Configuration配置appsettings.json......
  • 如何在浏览器扩展中使用 eval 函数
    思路是把iframe作为沙箱环境,让eval在iframe中执行。以ChromeManifestV2为例。V3可参考UsingevalinChromeextensions-ChromeDevelopers。1.在manifest文件中列出沙箱html{...,"sandbox":{"pages":["sandbox.html"]},...}2.加载......
  • Mir 2.14 正式发布,Ubuntu 使用的 Linux 显示服务器
    Canonical公司最近发布了Mir2.14,这是该项目的最新版本。Mir2.14在Wayland方面通过ext-session-lock-v1协议增加了对屏幕锁定器(screenlockers)的支持,并最终支持Wayland拖放。此外还整合了渲染平台的实现,放弃了之前在RaspberryPi设备上使用的DispmanX平......
  • 解决在Edge浏览器中使用不了(找不到)new bing的情况
    1.问题我们有时候看不到下图圈出部分的信息,无法找到NewBing的入口(这边是空的)2.解决方式1.选择右上角的三条杠,并选择其中的settings2.将其中的country一项改为外国即可......
  • 解决Vmware使用中的卡顿问题
    打开首选项到内存,将其修改为图中的设置打开优先级,设置如图打开对应虚拟机设置,如图做两步设置全部设置完成后,再次打开虚拟机使用发现完全不卡了!......
  • Sql去重查询数据,存在部分字段相同 max(id)  和 group by配合使用
    Sql去重查询数据原文链接:https://blog.51cto.com/u_15910936/5932613最近在工作过程中,面试过程中, 部分求职者或者同事,对sql怎么去重查询,不是太熟练今天下午忙里偷闲,整理了一下 其实sql基本的查询,还是蛮有意思,  下面是我大致整理的几种去重查询 1.存在2条一样的数据, 使......
  • python使用正则表达式
    Python使用正则表达式##py_regex.py#py_learn##CreatedbyZ.Steveon2023/8/717:18.##1.Python使用正则表达式,需要导入的模块re模块#2.正则表达式基本方法:#-match()#-search()#-findall()importredeftest_re():s="hellop......