在做Aspect-level情感分类时一般会用到SemEval 2014数据集。官网给的数据集都是XML格式,我们要对其进行解析。
首先看一下数据结构。
一个XML文件里包含多个sentence,每个sentence里包含text、aspectCategories和aspectTerms子节点,即我们需要提取出来的内容。
下面是代码。
首先,导入库。
import xml.etree.cElementTree as ET
Python标准库中,提供了ElementTree的两种实现。一个是纯Python实现的xml.etree.ElementTree,另一个是速度更快的C语言实现的xml.etree.cElementTree。第二种速度更快,而且内存消耗较少。
接下来读文件,获取根节点。
path = 'data/restaurants-trial.xml'
tree = ET.parse(path)
root = tree.getroot()
子节点是嵌套的,我们可以通过索引访问特定的子节点。
如:
root[0][0].text
输出是第一个sentence中text节点的内容。
然后获取XML中的元素,保存到数组中即可。
获取aspectCategory
data = []
for sentence in