我有一句话“现在是完全不同的东西”。我想对其进行标记化、标记并将其存储到 excel 文件中以供进一步处理。
<pre>sent = "And now for something completely different" words = nltk.word_tokenize(sent) tags = nltk.pos_tag() print tags</pre>
上面的结果是嵌套列表格式中带有标签的单词。
[('And', 'CC'), ('now', 'RB'), ('for', 'IN'), ('something', 'NN'), ('completely', 'RB'), ('different', 'JJ')]
我想将这个结果列表存储到一个 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: Unsupported format, or currupt file: Expected BOF record; founf 'And\tCC\n'
谁能告诉我如何将标记列表写入输出文件,以便解决上述错误?
请您参考如下方法:
Excel 文件 (xlsx) 不仅仅是简单的平面文件,因此尝试将文本文件复制到 xlsx 是行不通的。您可以将文件另存为 csv 文件并在 Excel 中打开。我认为 pandas 对于解析和写入数据文件非常有用(显然它对于处理数据也很有用)。
import pandas as pd
df = pd.DataFrame(tags)
df.to_excel('output.xlsx', header=False, index=False)
