我使用以下代码将列表打印到文件中。
for i in range(len(testing_data)):
predicted_tags = tagger2.tag(testing_data[i])
f.write(str(i)+"\t"+str(unicode(predicted_tags))+"\t"+
str(unicode(testing_data[i]))+"\n")
f.close()
当数据写入文件时,我得到u
个字符。例如:
0 [((u'The', u'DT'), 'NN'), ((u'Czech', u'JJ'), 'NN'), ((u'dam', u'NN'), 'NN'), ((u'ca', u'MD'), 'NN'), ((u"n't", u'RB'), 'NN'), ((u'be', u'VB'), 'NN'), ((u'operated', u'VBN'), 'NN'), ((u'*-69', u'-NONE-'), 'NN'), ((u'solely', u'RB'), 'NN'), ((u'at', u'IN'), 'NN'), ((u'peak', u'NN')]
如何摆脱u
字符?
答案 0 :(得分:0)
试试这个:
f.write(str(i)+"\t"+predicted_tags.encode('utf-8')+"\t"+testing_data[i].encode('utf-8')+"\n")
答案 1 :(得分:0)
您可以在第一部分格式化predicted_tags
,如下所示:
from operator import methodcaller
utf8 = methodcaller('encode', 'utf-8')
for i in range(len(testing_data)):
predicted_tags = tagger2.tag(testing_data[i])
f.write(str(i)+"\t"+
'[{}]'.format(', '.join('(({!r}, {!r}), {!r})'.format(
utf8(tag[0][0]), utf8(tag[0][1]), utf8(tag[1]))
for tag in predicted_tags)))
以及第二个testing_data[i]
之后的部分中'\t'
的类似内容。