2013-11-25 50 views
0

我想创建一个.arff文件,该文件显示来自我的python代码的10个最有用的单词。格式应该是这样的。试图使用python创建.arff文件

@attribute pattern1 {yes,no} 
@attribute pattern2 {yes,no} 
...... 
....... 
@attribute emotion {angry,disgusted,fearful,happy,sad,surprised} 

@data 
yes, no, no,......, yes, happy 
no, no, no,....., no, angry 
yes, yes, no,......, yes, sad 

每行应包含10个“真”或“假”值的列表,然后是情感。

这是我迄今为止所写的内容,但并未按要求显示。请帮助我。

f = open("emotions.txt", "w") 
f.write('''@RELATION Emotions\n 
    @ATTRIBUTE word{yes,no} 
    @ATTRIBUTE class {angry,sad,happy,surprised,fearful,disgusted} 
    @DATA\n''') 
for word in varall: 
f.write("%s\n" %word) 
f.close() 
+0

是如何在你的代码中定义'varall'? – jwodder

+0

作为列表varall = [] – user2998991

+0

有人可以帮我这个朋友吗? – user2998991

回答

0

你应该看看this library 它的目的只是为了这个问题,因为你的handcoding ARFF输出是不是一个好主意。

为了您的属性,你会做这样的事情:

arff_writer = arff.Writer(fileName, relation='Emotions', header_names=['pattern1','pattern2', ... 'emotion') 
arff_writer.pytypes[arff.nominal] = '{angry,disgusted,fearful,happy,sad,surprised}' 
arff_writer.write([arff.nominal('emotion')]) 

并为您的数据:

data = [[1,2,'a'], [3, 4, 'john']] 
arff.dump(open(fileName, 'w'), data, relation="whatever", header_names)