Python 3.x 删除python中的停止词时遇到问题
我需要从电影文本中删除停止词,停止词和文本在单独的文本文件中Python 3.x 删除python中的停止词时遇到问题,python-3.x,Python 3.x,我需要从电影文本中删除停止词,停止词和文本在单独的文本文件中 def stopWords(): fi = open('stoplist.txt', 'r') stopWords = [] for line in fi: line = line.strip() stopWords.append(line) fi.close return None def readText(): stopWords() fi
def stopWords():
fi = open('stoplist.txt', 'r')
stopWords = []
for line in fi:
line = line.strip()
stopWords.append(line)
fi.close
return None
def readText():
stopWords()
fi = open('holy-grail.txt', 'r')
removeStopWords = ''.join(fi)
for word in stopWords:
removeStopWords = removeStopWords.replace(" " + word + " ", " ")
transcript = []
for line in fi:
line = line.strip().lower().split(':')
transcript.append(line)
fi.close
return transcript
运行此代码时,我收到错误消息:
回溯(最近一次呼叫最后一次):
文件“”,第1行,在
readText()
文件“C:\Users\Adam Sitzmann\Desktop\hw9\hw9.py”,第14行,readText格式
对于stopWords中的单词:
TypeError:“function”对象不可编辑此处:
对于stopWords中的单词
您尝试迭代函数。代码中存在命名冲突stopWords
既是一个函数也是一个变量。以不同的方式命名变量
编辑:
由于您是python新手,我想提出一些改进建议:
1.您不需要写入并返回None
。没有返回的函数将始终为您提供无
。
2.话虽如此,值得注意的是,您可以使用return
传递stopWords()函数的输出以进一步处理它。
3.命名约定:python中常用下划线的\u名称
代替camelCase
来表示stopWords中的单词:
您正在迭代函数对象。。。并且不使用函数的结果…您需要调用stopwords()
。您为什么不在stopwords
中返回fi
?按原样,当函数退出时,该列表将被丢弃