似乎无法调用 pre_process 函数,出现未定义的名称
Can't seem to call the pre_process function, comes up with undefined name
def removeStopWords(words):
return list(set([w for w in words if not w in sw.words('english')]))
def pre_process(x_user):
words = []
with open("words.txt",'r') as data_file:
textdata = data_file.readlines()
for line in textdata:
try:
words.append(line.split()[0].lower())
except:
pass
completed_words = removeStopWords(words)
print(completed_words)
def GButton_6_command(self):
x_user = root.entry.get()
pr = pre_process
pr.user_words(x_user)
model = pkl.load(open('Training_model.pkl', 'rb'))
pred = model.predict(pr.user_words)
print(pred)
代码旨在获取用户输入并将 ML 程序应用于用户输入。
上面是 gui,它可以工作,但是当我尝试调用 pre_process 时,
它将其归类为未定义的名称,我只是想找出原因。
我注意到 pr = pre_process
处的错误,您刚刚存储了对函数的引用,要调用该函数,您必须在函数名称后添加左括号和右括号,在您的情况下应该是 pr = pre_process()
.
我觉得你用的是类,所以你可以用self.pre_process()
此外,我不建议您采用这样的函数变量值 pr.user_words(x_user)
,我建议您在函数中使用 return
语句来 return 变量的值您调用的函数。
def removeStopWords(words):
return list(set([w for w in words if not w in sw.words('english')]))
def pre_process(x_user):
words = []
with open("words.txt",'r') as data_file:
textdata = data_file.readlines()
for line in textdata:
try:
words.append(line.split()[0].lower())
except:
pass
completed_words = removeStopWords(words)
print(completed_words)
def GButton_6_command(self):
x_user = root.entry.get()
pr = pre_process
pr.user_words(x_user)
model = pkl.load(open('Training_model.pkl', 'rb'))
pred = model.predict(pr.user_words)
print(pred)
代码旨在获取用户输入并将 ML 程序应用于用户输入。 上面是 gui,它可以工作,但是当我尝试调用 pre_process 时, 它将其归类为未定义的名称,我只是想找出原因。
我注意到 pr = pre_process
处的错误,您刚刚存储了对函数的引用,要调用该函数,您必须在函数名称后添加左括号和右括号,在您的情况下应该是 pr = pre_process()
.
我觉得你用的是类,所以你可以用self.pre_process()
此外,我不建议您采用这样的函数变量值 pr.user_words(x_user)
,我建议您在函数中使用 return
语句来 return 变量的值您调用的函数。