我在Python中使用“nltk”做词性标注,下面的代码在打印时可以很好地工作。你知道吗
import nltk
import pos_tag
import nltk.tokenize
import numpy
f = open(r'C:\Users\sample_data.txt')
data = f.readlines()
#Parse the text file for NER with POS Tagging
for line in data:
tokens = nltk.word_tokenize(line)
tagged = nltk.pos_tag(tokens)
#print (tagged)
output = open(r"C:\Users\output3.csv", "w")
output.write(str(tagged))
f.close()
所以当我打印上面的代码时,输出看起来像这样,这正是我想要的。你知道吗
[('This', 'DT'), ('is', 'VBZ'), ('a', 'DT'), ('simple', 'JJ'), ('sentence', 'NN')]
[('I', 'PRP'), ('love', 'VBP'), ('this', 'DT'), ('company', 'NN'), ('.', '.'), ('This', 'DT'), ('company', 'NN'), ('is', 'VBZ'), ('so', 'RB'), ('good', 'JJ'), ('.', '.')]
[('I', 'PRP'), ('am', 'VBP'), ('not', 'RB'), ('inovlved', 'VBN'), ('with', 'IN'), ('this', 'DT'), ('work', 'NN'), ('.', '.'), ('So', 'RB'), ('hard', 'JJ'), ('!', '.')]
[('What', 'WP'), ('are', 'VBP'), ('you', 'PRP'), ('doing', 'VBG'), ('?', '.'), ('Are', 'NNP'), ('you', 'PRP'), ('nut', 'RB'), ('?', '.')]
[('Can', 'MD'), ('I', 'PRP'), ('borrow', 'VB'), ('your', 'PRP$'), ('jar', 'NN'), ('?', '.'), ('Just', 'NNP'), ('for', 'IN'), ('today', 'NN'), ('.', '.')]
但是当我使用代码中的最后三行编写它时,它只保存文本文件中的最后一个字符串(即,[('Can','MD'),('I','PRP'),('borrow','VB'),('your','PRP$'),('jar','NN'),('?','.'),('Just','NNP'),('for','IN'),('today','NN'),('.','.')])。你知道吗
我想将整个结果保存在txt或csv文件中,每个[]中的一个字符串应保存在txt或csv文件中的一行中。你知道吗
我对Python真的很陌生,所以会很感激你的帮助。你知道吗
编辑:要回答原始问题,您需要在原始代码中调用循环中的
output.write(str(tagged))
。你知道吗即使其他答案确实回答了这个问题,我还是想建议对您的实现进行一些更改
with
,因为它最终会自动关闭资源f
变量即可最终结果如下:
您应该将每一行保存在一个列表中,然后编写整个列表:
在
tagged_list
中,添加所有要写入的行。用'\n'.join(tagged)
写它们,用'\n'分隔(即每一行)您有缩进错误。你知道吗
相关问题 更多 >
编程相关推荐