我想解析一些数据和格式使用nltk,但我似乎无法通过函数迭代分配多个返回多个变量(请参阅下面的def预处理函数。)我试着重写我的代码,这通常会导致大的调试,但似乎我正在碰撞一个故意在那里的Python墙。分配多个返回变量,但一次一个?
def get_7text():
with open('parsed_text/Larrys Pizza & Sports Parlor_text.csv','r') as file:
reader = csv.reader(file)
dict = [row for row in reader]
file.close()
my_dict = [l[0] for l in dict]
text= my_dict[0]
new_dict=ast.literal_eval(text)
for k,v in new_dict.items():
exec(k + '=v')
return Monday,Tuesday,Wednesday,Thursday,Friday,Saturday,Sunday
def preprocess():
for day in Days:
day = str(day)
day = sent_tokenize(day)
day = [word_tokenize(s.lower()) for s in day]
day = [pos_tag(s) for s in day]
return day
#code here
Monday,Tuesday,Wednesday,Thursday,Friday,Saturday,Sunday = get_7text()
Days=[Monday,Tuesday,Wednesday,Thursday,Friday,Saturday,Sunday]
Days=preprocess()
Get7text()返回7个字符串,我可以成功地分配。我曾经首先让它返回7个键的字典,但格式化对于NLTK的POS标记等是烦人的。
问题是这样的。每当我运行预处理,程序只保留列表中的第一个项目,并忘记其他6.我试图强制该函数将每个返回的输出分配给名为Days的变量列表,但无济于事。我还注意到,在天数=预处理()之后,天除了第一个元素(周二到周日是1个字符串的空列表)之外都会丢失。但是,Days [3]或Days [5]会正确打印预期数据。
我期待有更好的表示方法。网上没有帖子提及它,反正它似乎是一个粗略的事情。
为什么'回归日'?它将在处理第一个元素后返回,因为它位于for循环中。 –
我明白你的观点。谢谢! – wip