我经常收到此错误" ValueError: not enough values to unpack (expected 2, got 1)in for(word,tag) in grp:"
这就是我所尝试过的
# - - 编码:utf-8 - -
import nltk
import itertools
导入ast
导入集合
导入系统
进口重新
进口时间
f=open('test.txt','r')
text1=f.read()
text2=text1.rstrip()
text3=text2.strip()
#text3=tuple(text1)
#print(text3)
print("text3")
train_data=text3
print(train_data)
f=open('test1.txt','r')
text5=f.read()
#text6=text5.splitlines()
text6=text5.strip()
text7=text6.rstrip()
orig_data=text7
答案 0 :(得分:2)
所以,train_data
只是一个str。请注意您如何从文件中读取它并且不做任何事情将其更改为代码。如果您想确认,请致电print(type(train_data))
。你会得到<class 'str'>
。
您可以使用for循环遍历str
,这就是您的第一个循环有效的原因,但在第二个循环中,您只是循环遍历原始str中的字符。
如果要将其用作实际数据,则必须将其解析并将其转换为Python数据结构。不要为此使用EVAL。而是使用ast
库(如果数据出错,则更安全,更稳定):
import ast
# … later …
train_data = ast.literal_eval(text3)
然后在您使用时继续使用train_data
。