因此,我试图使用Python中的NLTK来对文本文件进行语音标记。 这是我使用的代码
import nltk
from nltk import word_tokenize, pos_tag
f = open('all.txt')
raw = f.read()
text = word_tokenize(raw)
paosted = nltk.pos_tag(text)
saveFile = open('ol.txt', 'w')
saveFile.write(str(paosted))
saveFile.close()
该代码确实起作用了,但是问题在于它将所有文本保存在一行中,如所附图片所示。 as shown here ..我知道我应该使用“ \ n”函数,但是我是python的新手,也不知道如何做,所以任何帮助将不胜感激:) ..
-------- UPDATE -----------
好吧,人们一直非常乐于助人,并提供了一些解决方案,例如以下代码:
import nltk
from nltk import word_tokenize, pos_tag
f = open('all.txt')
raw = f.read()
text = word_tokenize(raw)
paosted = nltk.pos_tag(text)
saveFile.write(str(paosted).replace('),' , '),\n'))
saveFile.close()
但是我仍然需要以段落的形式使用它,因为我将在一个一致性软件中使用它。请看以下截图: https://i.stack.imgur.com/tU1NW.png
答案 0 :(得分:0)
paosted
是一个元组列表,您可以对其进行迭代并将每个元组写入一行中
例如:
paosted = nltk.pos_tag(text)
saveFile = open('ol.txt', 'w')
for line in paosted:
saveFile.write(str(line)+ "\n")
saveFile.close()
答案 1 :(得分:0)
相应地更新我的答案,
temp = []
for i in paosted:
temp.append("_".join(i))
" ".join(temp)
答案 2 :(得分:0)
谢谢大家!我按照您的一些指示进行操作,我得到的最佳结果是以下代码:
import nltk
from nltk import word_tokenize, pos_tag
f = open('all.txt')
raw = f.read()
text = word_tokenize(raw)
paosted = nltk.pos_tag(text)
saveFile = open('output.txt', 'w')
saveFile.write(str(paosted).replace("('.', '.')" , "\n"))
saveFile.close()