《Python Artificial Intelligence Projects for Beginners》YouTube垃圾检测项目找不到analyze()函数问题
问题原因与解决方法
- 核心触发原因是
scikit-learn(简称sklearn)依赖库的版本迭代带来的API调整,配合代码写法疏漏共同导致报错:analyze()从来不是全局可调用的函数,它是CountVectorizer实例的内置方法。2018年该书出版时对应的sklearn 0.20及更早版本,允许直接通过实例调用该方法,原书示例的正确写法应为vectorizer.analyze(d["CONTENT"][349]),你运行的代码漏写了vectorizer.实例前缀。- sklearn在0.21版本及之后,官方直接移除了
CountVectorizer实例的analyze方法,改为要求先调用build_analyzer()生成分析器函数后再调用,哪怕补全实例前缀也会在新版本下报错。
- 修正后的适配新版sklearn的代码如下,直接替换原
analyze调用行即可,返回结果和旧版完全一致,不影响后续流程:
# 生成分析器函数 analyzer = vectorizer.build_analyzer() # 调用分析器处理文本 analyzer(d["CONTENT"][349])
内容的提问来源于stack exchange,提问作者Davide Dunne Sánchez
相关产品推荐
相关产品推荐

