我有一句话'现在是完全不同的事情'我想标记它,标记它并将其存储到excel文件中以便进一步处理。
<pre>sent = "And now for something completely different"
words = nltk.word_tokenize(sent)
tags = nltk.pos_tag()
print tags</pre>
上面的结果是带有嵌套列表格式标签的单词。
[(&#39;和&#39;,&#39; CC&#39;),(&#39;现在&#39;,&#39; RB&#39;),&#39; for && #39;,&#39; IN&#39;),(&#39;某些&#39;,&#39; NN&#39;), (&#39;完全&#39;,&#39; RB&#39;),(&#39;不同&#39;,&#39; JJ&#39;)
我想将此结果列表存储到excel文件中,其中一列中包含单词,另一列中包含标签。
我尝试了以下代码来实现上述目标。
fd = open("output.txt",'w')
i=0
for words in tags:
for word in words:
i+=1
fd.write(word)
if i==1:
fd.write('\t')
fd.write('\n')
i=0
上面的代码将字和标签完美地写入输出文件。如果我使用shutil方法从文本文件复制到excel格式,它将完美执行。当我尝试阅读转换后的问题。我收到以下错误。
XLRDError:不支持的格式或压缩文件:预期的BOF记录; founf&#39;和\ tCC \ n&#39;
有谁能告诉我如何将标记列表写入输出文件,以便我可以解决上述错误?
答案 0 :(得分:4)
Excel文件(xlsx)不仅仅是简单的平面文件,因此尝试将文本文件复制到xlsx将无法正常工作。您可以将文件另存为csv并在Excel中打开它。我认为pandas对于解析和编写数据文件非常有用(显然它对于处理数据也很有用)。
import pandas as pd
df = pd.DataFrame(tags)
df.to_excel('output.xlsx', header=False, index=False)
答案 1 :(得分:1)
而是写入excel格式。您已将文件写入制表符分隔值。 Excel知道如何阅读。我建议您使用“.tsv”扩展名保存文件,然后在Excel中打开它。