IEMOCAP语料库介绍

该语料库包含的情感包括 anger, happiness, excitement, sadness, frustration, fear, surprise, other and neutral state
分别用ang、hap、exc、sad、fru、fea、sur、oth、neu来表示

如何查看标签数据

进入文件夹 IEMOCAP\Session1\dialog\EmoEvaluation ,可以看到文件:

这里以打开Ses01F_impro01.txt文件为例:

该 txt 表示 在 dialog/wav 文件夹下的对话文件 Ses01F_impro01.wav 被切割成 以上被标注成的语音文件及对应情感标签。例如 Ses01F_impro01_F000 表示,该文件在 sentences\wav\Ses01F_impro01 里边的 Ses01F_impro01_F000.wav

如何获取IEMOCAP?

百度网盘:,提取码:n0c0
官网申请:具体网址忘了,大家自行搜索一下吧,哈哈。

python提取IEMOCAP情感语料库标签

def get_txt_files(file_dir):L = []for root, dirs, files in os.walk(file_dir):for file in files:if os.path.splitext(file)[1] == '.txt':filename=os.path.join(root, file)# print(get_label(filename))L.append(filename)return Ldef get_IEMOCAP_filename(IEMOCAP_dir):all_data = []Sessions = ['Session1', 'Session2', 'Session3', 'Session4', 'Session5']target_dir = "/dialog/EmoEvaluation/"wav_dir = "/sentences/wav/"for Session in Sessions:file_dir = IEMOCAP_dir + Session + target_dir# 读取该Session下的所有txt文件txt_files = get_txt_files(file_dir)# 读取单个txt文件,获取情感标签for txt_file in txt_files:last_folder = (txt_file.split("/")[-1]).split(".")[0]# 转换到pandas,方便操作data = pd.read_csv(txt_file, delimiter="\n",skiprows=1, names='a')data['a'] = data['a'].astype(str)# 取第一列,其中包含切片后的语音文件+情感分类标签filter_data=[x for x in data['a'] if '[' in x]# 是否包含某字符串print(txt_file,len(filter_data))for file in filter_data:values = file.split("\t")filename = values[1] + ".wav"filename = IEMOCAP_dir + Session + wav_dir + last_folder + "/" + filenametarget = values[2]#将target进行编码target=get_IEMOCAP_4target(target)#剔除不达标的数据,主要包含oth(3个),dis(2个)if(target==None):print(target)continueresult=(filename,target)all_data.append(result)return all_datadef get_IEMOCAP_9target(target):# 'ang': 0, anger 愤怒# 'hap': 1, happiness 快乐,幸福# 'exc': 1, excitement 激动,兴奋# 'sad': 3, sadness 悲伤,悲痛# 'fru': 4, frustration 懊恼,沮丧# 'fea': 5, fear 害怕,畏惧# 'sur': 6, surprise 惊奇,惊讶# 'neu': 7, neutral state 中性# 'xxx': 8, other 其它if (target == "ang"):target = 0elif (target == "hap"):target = 1elif (target == "exc"):target = 2elif (target == "sad"):target = 3elif (target == "fru"):target = 4elif (target == "fea"):target = 5elif (target == "sur"):target = 6elif (target == "neu"):target = 7elif (target == "xxx"):target = 8else:print(target)target=Noneprint("关键词提取错误,经检查程序,已默认跳过该条数据")return targetdef get_IEMOCAP_4target(target):# 'ang': 0, anger 愤怒# 'hap': 1, happiness 快乐,幸福# 'sad': 2, sadness 悲伤,悲痛# 'neu': 3, neutral state 中性#if (target == "ang"):target = 0elif (target == "hap"):target = 1elif (target == "sad"):target = 2elif (target == "neu"):target = 3else:print(target)target=Noneprint("关键词提取错误,经检查程序,已默认跳过该条数据")return target

取到语音文件路径及其对用的标签

wav_path="./data/IEMOCAP/"
spec_path="./features/ICMOCAP_Spec(4kinds)/"
filenames=get_IEMOCAP_filename(wav_path)
#将文件路径和对应的标签进行拆解
filenames,targets=zip(*filenames)
for i,filename in enumerate(filenames):label=targets[i]    #label为标签,filename为文件名字***Continue your work...***接下来就可以自己的操作了哦~~~

这是取到的filenames的文件结构

总结

总共包含十一种感情标签,但论文中一般都比较四种情绪的分辨,也就是写出的get_IEMOCAP_4target函数,如果拓展情绪类别的话,可以使用get_IEMOCAP_9target获取数据中包含的九种情感标签,但在实际的标签提取过程中,还会发现有以下两种另外的情感标签:

异常情感标签 数量
oth 3
dis 2

参考

以下是一篇使用IEMOCAP进行情感识别的识别结果:

2022年4月28更新(pandas版本导致程序运行报错)

在后续的测试中 pandas 版本过高也会导致解析文件名字报错,博主所使用的 pandas 版本为0.20.3,如果已经安装了其他版本的pandas,则可以执行以下命令进行更换

pip install pandas==0.20.3

提取IEMOCAP情感语料库标签相关推荐

  1. 图像情感分析标签分布学习

    现实生活中,有部分分类问题相比起预测单标签,更需要预测多个标签或者样本关于各个标签的概率分布,也就是各标签对该样本的描述程度. 例如,对于图像情感分类任务而言,由于一张图像往往包含多种情感倾向,且不同 ...

  2. 柏林情感语料库(Emo-DB)Berlin Emotional Database 介绍

    柏林情感语料库(Emo-DB)Berlin Emotional Database 介绍 最近在做毕业设计,用到了这个数据集. 在写毕设论文的时候需要详细资料,去bing上面搜了一下官方介绍,现整理如下 ...

  3. C#正则表达式提取HTML中IMG标签的SRC地址(转)

    一般来说一个 HTML 文档有很多标签,比如"<html>"."<body>"."<table>"等,想 ...

  4. html的混合标记,HTML XPath:提取与多个标签混合的文本?

    目标:从特定元素(例如li)中提取文本,而忽略各种混合在标签中的内容,即展平第一级子级,并简单地分别返回每个展平型子级的串联文本. 例: CIA Central Intelligence Agency ...

  5. python soup提取叶子标签_python 利用beautifulSoup提取页面多个标签的文本内容

    初学beautifulsoup解析库,拿一个招聘网页练手,想达到提取多个标签的文本内容,但是目前只可以提取到单个标签的单个文本内容,多标签的文本如何提取? from requests.exceptio ...

  6. python提取网页中p标签中的内容_使用Python进行爬虫的初学者指南

    前言 爬虫是一种从网站上抓取大量数据的自动化方法.即使是复制和粘贴你喜欢的网站上的引用或行,也是一种web抓取的形式.大多数网站不允许你保存他们网站上的数据供你使用.因此,唯一的选择是手动复制数据,这 ...

  7. xpath 取标签下所有文字内容_xpath提取目录下所有标签内的内容,递归 //text()...

    利用xpath来提取所有标签里面的内容,即使标签头不同 #-*-coding:utf8-*- import re import os from lxml import etree html = ''' ...

  8. python爬虫获取标签规则_Python爬虫之数据提取-selenium定位获取标签对象并提取数据...

    ## selenium提取数据 知识点:了解 driver对象的常用属性和方法 掌握 driver对象定位标签元素获取标签对象的方法 掌握 标签对象提取文本和属性值的方法 1. driver对象的常 ...

  9. gensim提取一个句子的关键词_NLP(五):关键词提取补充(语料库和向量空间)...

    一.将语料库转化为向量(gensim) 在对语料库进行基本的处理后(分词,去停用词),有时需要将它进行向量化,便于后续的工作. from gensim importcorpora,similariti ...

最新文章

  1. 解决VMware虚拟机时间同步问题
  2. Linux C编程--进程介绍1--进程的创建
  3. WEB开发中的会话控制
  4. 体二极管的原理及应用
  5. oracle pl/sql 函数
  6. ue4导入倾斜摄影_干货 | 6款倾斜摄影裸眼3D采集软件推荐给大家
  7. 作者:张悦今,女,中央财经大学信息学院讲师。
  8. Kali Linux 网络扫描秘籍 第三章 端口扫描(一)
  9. opencv之CmakeLists.txt配置
  10. linux命令 chmod_Linux chmod命令示例
  11. 敏捷无敌(11)之兵不厌诈
  12. 【C语言】计算器实现
  13. “华为云杯”2020深圳开放数据应用创新大赛 ·粤港澳大湾区强降水临近预测赛题相关资料整理
  14. jQuery版本低引起的漏洞——CVE-2020-11022/CVE-2020-11023
  15. 【休憩时的练手】—— 制作简易的网易云音乐播放器
  16. 阿里巴巴 研发工程师Java暑期实习一面
  17. 华为云文字识别服务关键技术、能力和产品落地需要注意的事宜(OCR系列二)
  18. GC回收算法--当女友跟你提分手!
  19. 把int型转成如66ccff这样的颜色16进制颜色代码
  20. 经典的Embedding方法Word2vec

热门文章

  1. 安兔兔苹果html5排行榜,安兔兔iOS设备性能排行榜:iPhone XS Max仅第四,iPhone 8垫底...
  2. 2018年已过半,Kubernetes和云原生的巨浪要把云计算带向何处
  3. 【算法1-3】暴力枚举——PERKET
  4. 网络基础:套接字编程,UDP和TCP通信程序
  5. Arduino驱动OLED显示屏
  6. rm -rfi 防止误删除数据
  7. c++实验3—定期存款利息计算器
  8. 勒索软件、移动恶意软件攻击将在2020年激增
  9. 睿智的法杖v8.28ti
  10. [论文阅读笔记17]A Survey on Knowledge Graph-Based Recommender Systems