所以我今天早上学会了如何用pickle把列表转储到一个你不能用的文本文件bc中。我正在youtube上看一个视频,用Python和nltkp.4进行自然语言处理。您可以看到完整的输出应该是什么。他没有将数据推送到txt文件,但我想进一步了解更多。你知道吗
样品端子输出: [('PRESIDENT','NNP'),('GEORGE','NNP'),('W','NNP'),('BUSH','NNP'), (“'S”,'POS')注:假设整个演讲都是这样,在终端中也会这样。你知道吗
完整文件输出: €]q(X(qh†qX ApplauseqX NNPq†qX.qh†qX)qh†q e
我的代码:
import nltk
from nltk.corpus import state_union
from nltk.tokenize import PunktSentenceTokenizer
import pickle
output = open('stoutput.txt', 'wb')
train_text = state_union.raw('2005-GWBush.txt')
sample_text = state_union.raw('2006-GWBush.txt')
custom_sent_tokenizer = PunktSentenceTokenizer(train_text)
tokenized = custom_sent_tokenizer.tokenize(sample_text)
def process_content():
try:
for i in tokenized:
words = nltk.word_tokenize(i)
tagged = nltk.pos_tag(words)
print(tagged)
pickle.dump(tagged, open('stoutput.txt', 'wb'))
except Exception as e:
pickle.dump(e, open('stoutput.txt', 'wb'))
print(str(e))
process_content()
任何帮助都非常感谢,因为我知道这需要时间。谢谢你的阅读。你知道吗
pickle
用于序列化Python对象,taged是一个list对象,因此您看到的是强制为字符编码的列表的字节流表示,这解释了为什么字符串'palaude'和'NNP'(列表元素)被一堆乱七八糟的信息包围。如果您想要print(l)得到的表示,那么忘记pickle并将列表强制写入字符串尽管您可能希望
with
语句位于for循环之外。你知道吗编辑:如果您的目标是能够在以后的Python会话或脚本中使用此数据,但您希望它的可读性比pickle提供的更高,我建议您将列表转换为CSV,请参见this question以获取说明。你知道吗
相关问题 更多 >
编程相关推荐