如何将原始按照word为单位索引标识的数据集修改为以char单位

news2025/1/11 14:09:38

目录

问题描述:

问题解决:


问题描述:

原始数据集中,数据的标注是以word为单位,且计数从1开始的。如下图:

如何修改为以char为单位的,从0开始计数的数据格式:

问题解决:

# 将英文数据集中,原本按照word存储的数据集,按照char格式存储,处理成与中文一样的格式
path = '/home/qtxu/Sentiment-SPN/data/Camera-COQE/dev.txt'
path_w = '/home/qtxu/Sentiment-SPN/data/Camera-COQE/dev_char.txt'

from pdb import set_trace as stop

def obtain_index(cur_ele):  # '[10&&would 11&&not , 17&&difference]' ## '[10&&not , 16&&clearer]'  ##[13&&did 14&&n't , 20&&as 21&&well 22&&as]
    len_ele = len(cur_ele)

    if ' ,' in cur_ele: # 针对几个带有逗号的特殊处理
        start_index = cur_ele.find(',')
        cur_ele = '['+cur_ele[start_index+2:]


    if len_ele == 2:
        index_list = []
        span_str = ''
        return index_list,span_str
    else:
        cur_ele = cur_ele[1:-1]
        # try:
        index_list = [int(ele.split('&&')[0])-1 for ele in cur_ele.split(' ')]
        span_str = ' '.join(ele.split('&&')[1] for ele in cur_ele.split(' '))
        # except:
        #     stop()
        return index_list, span_str


def word_to_char(sentence, span, span_index):
    if len(span)==0:
        return '[]'
    else:
        span_start_index = span_index[0]
        front_str = ' '.join(sentence.split(' ')[:span_start_index])
        span_len = len(front_str)
        result_str = ""
        if span_start_index == 0:
            i = 0
        else:
            i = 1

        for char in span:
            start_index = span_len + i
            cur_char = f"{start_index}&&{char} "
            result_str += cur_char
            i += 1

        # 移除末尾的空格
        result_str = '['+result_str.rstrip()+']'
        return result_str
   
with open(path, 'r') as fr, open(path_w, 'w') as fw:
    lines = fr.readlines()
    for line in lines:
        try:
            sent, label = line.strip().split('\t')
            fw.write(line)
        except:
            if '[[];[];[];[];[]]' in line:
                fw.write(line)
            else:
                # stop()

                cur_line = line.strip()[1:-1]
                sub,obj,asp,op,polarity = cur_line.split(';')
                sub_index, sub_span =  obtain_index(sub)
                obj_index, obj_span =  obtain_index(obj)
                asp_index, asp_span =  obtain_index(asp)
                op_index, op_span =  obtain_index(op)
                sub_char= word_to_char(sent, sub_span,sub_index)
                obj_char= word_to_char(sent, obj_span,obj_index)
                asp_char= word_to_char(sent, asp_span,asp_index)
                op_char= word_to_char(sent, op_span,op_index)
                char_quintuple = '['+ str(sub_char) + ';' + str(obj_char) +';'+ str(asp_char) +';'+str(op_char) +';' + polarity + ']'
                # polarity
                fw.write(char_quintuple+'\n')
                # print(sub_char)

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

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

相关文章

网站接公网+配置域名访问宝宝级教程

网站接入公网并配置域名访问【详细教程】 安装Nginx上传网页文件配置Nginx腾讯云配置域名映射接入公网备案流程 本教程将以腾讯云服务器和腾讯云域名为例,介绍如何快速将网站接入公网并配置域名访问。我们将使用xshell工具进行操作,并涵盖安装nginx、上传…

NSS [HXPCTF 2021]includer‘s revenge

NSS [HXPCTF 2021]includer’s revenge 题目描述&#xff1a;Just sitting here and waiting for PHP 8.1 (lolphp). 题目源码&#xff1a;&#xff08;index.php&#xff09; <?php ($_GET[action] ?? read ) read ? readfile($_GET[file] ?? index.php) : inclu…

《JVM》第二篇 JVM内存模型深度剖析与优化

目录 一. JDK体系结构与跨平台特性介绍二. JVM内存模型深度剖析三. 从Jvisualvm来研究下对象内存流转模型四. GC Root与STW机制五. JVM参数设置通用模型 一. JDK体系结构与跨平台特性介绍 二. JVM内存模型深度剖析 按照线程是否共享来划分 TLAB(Thread Local Allocation Buffe…

USB总线-Linux内核USB3.0主机控制器驱动框架分析(十二)

1.概述 如下图所示&#xff0c;Linux内核中USB主机体系结构由五部分组成&#xff0c;分别为Application Software、USB Class Driver、USB Core(USB Driver)、USB Host Controller Driver、USB Host Controller。应用程序处于用户空间&#xff0c;通过系统调用访问Class Drive…

C进阶-数据的存储

数据类型介绍 内置类型&#xff1a; //数据类型中的内置类型 // char //字符数据类型 // short //短整型 // int //整型 // long //长整型 // long long //更长的整型 // float //单精度浮点数 // double //双精度浮点数 //数据类型中的内置类型 单位是字节 // char //字…

使用 ggbreak 包进行Y轴多次截断

简介 最近在科研中需要比较不同模型的预测性能&#xff0c;我们使用相对偏差&#xff0c;均方根误差等来比较结果。此时&#xff0c;可能会得到以下结果&#xff1a; 上图出现以下问题&#xff1a; 问题一&#xff1a;由于经典模型&#xff08;Normal&#xff09;在复杂数据中…

【Unity基础】5.动画曲线

【Unity基础】5.动画曲线 大家好&#xff0c;我是Lampard~~ 欢迎来到Unity基础系列博客&#xff0c;所学知识来自B站阿发老师~感谢 &#xff08;一&#xff09;曲线编辑 (1) 动画曲线 上周我们创建了一个简单动画&#xff0c;让我们的矩形在第0帧时Y轴从0的位置&#…

ElementUI基本介绍及登录注册案例演示

目录 前言 一.简介 二.优缺点 三.Element完成登录注册 1. 环境配置及前端演示 1.1 安装Element-UI模块 1.2 安装axios和qs(发送get请求和post请求) 1.3 导入依赖 2 页面布局 2.1组件与界面 3.方法实现功能数据交互 3.1 通过方法进行页面跳转 3.2 axios发送get请求 …

008_第一代软件系统架构

第一代软件系统架构 文章目录 第一代软件系统架构项目介绍软件架构和软件构架系统框架硬件组成运行系统基础库软件层 系统架构 关键字&#xff1a; Qt、 Qml、 关键字3、 关键字4、 关键字5 项目介绍 欢迎来到我们的 QML & C 项目&#xff01;这个项目结合了 QML&…

SD-MTSP:萤火虫算法(FA)求解单仓库多旅行商问题MATLAB(可更改数据集,旅行商的数量和起点)

一、萤火虫算法&#xff08;FA&#xff09;简介 萤火虫算法(Firefly Algorithm&#xff0c;FA)是Yang等人于2009年提出的一种仿生优化算法。 参考文献&#xff1a;田梦楚, 薄煜明, 陈志敏, et al. 萤火虫算法智能优化粒子滤波[J]. 自动化学报, 2016, 42(001):89-97. 二、单仓…

Go-Python-Java-C-LeetCode高分解法-第七周合集

前言 本题解Go语言部分基于 LeetCode-Go 其他部分基于本人实践学习 个人题解GitHub连接&#xff1a;LeetCode-Go-Python-Java-C Go-Python-Java-C-LeetCode高分解法-第一周合集 Go-Python-Java-C-LeetCode高分解法-第二周合集 Go-Python-Java-C-LeetCode高分解法-第三周合集 …

力扣:105. 从前序与中序遍历序列构造二叉树(Python3)

题目&#xff1a; 给定两个整数数组 preorder 和 inorder &#xff0c;其中 preorder 是二叉树的先序遍历&#xff0c; inorder 是同一棵树的中序遍历&#xff0c;请构造二叉树并返回其根节点。 来源&#xff1a;力扣&#xff08;LeetCode&#xff09; 链接&#xff1a;力扣&am…

RASP初识

需要了解的东西. 是什么 拦截日志&#xff1a;rasp/logs/alarm/alarm.log RASP&#xff08;Runtime application self-protection&#xff09;运行时应用自我保护。 官方英译应用程序不应将大部分运行时保护委托给外部设备。应用程序应该能够自我保护&#xff08;即&#xf…

排序:希尔排序(Shell Sort)算法分析

1.算法思想 希尔排序:先追求表中元素部分有序再逐渐逼近全局有序. 希尔排序∶先将待排序表分割成若干形如 L [ i , i d , i 2 d . . . . , i k d ] L[i,i d,i 2d ...., i kd] L[i,id,i2d....,ikd]的“特殊”子表&#xff0c; 对各个子表分别进行直接插入排序。缩小增量…

1018 锤子剪刀布

一.问题&#xff1a; 大家应该都会玩“锤子剪刀布”的游戏&#xff1a;两人同时给出手势&#xff0c;胜负规则如图所示&#xff1a; 现给出两人的交锋记录&#xff0c;请统计双方的胜、平、负次数&#xff0c;并且给出双方分别出什么手势的胜算最大。 输入格式&#xff1a; …

Baumer工业相机堡盟工业相机如何通过BGAPI SDK设置相机的图像剪切(ROI)功能(C++)

Baumer工业相机堡盟工业相机如何通过BGAPI SDK设置相机的图像剪切&#xff08;ROI&#xff09;功能&#xff08;C&#xff09; Baumer工业相机Baumer工业相机的图像剪切&#xff08;ROI&#xff09;功能的技术背景CameraExplorer如何使用图像剪切&#xff08;ROI&#xff09;功…

急救车工业路由器应用提升急救效率:车联网、数据采集与远程诊疗

急救车作为医院里医疗急救过程中的重要组成部分&#xff0c;在智慧医疗物联网领域中急救车应用4G工业路由器实现网络部署与数据采集&#xff0c;通过工业4G路由器能够实时采集到病患的生理数据、救护现场音频与视频、GPS定位以及车辆运行状态等重要信息。这些数据将被传输到医疗…

【产品资料】产品经理面试问题(一)

今天和大家免费分享产品经理常见的面试题目&#xff0c;含回答思路分析和回答事例。 更多的产品文档、原型模板、视频教程等资源&#xff0c;请关注公众号&#xff1a;Axure高保真原型