我想解析一些數據和格式使用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