Python2环境下nltk.stem无Stemmer属性、pyStemmer安装失败求助
解决方案
针对Python2环境下Stemmer模块调用、安装失败的问题,可按以下两类方案解决:
方案1:修复PyStemmer安装问题
PyStemmer安装报错通常是Python2源失效、缺少编译依赖导致,按步骤操作即可:
- 先安装系统级编译依赖:
- Debian/Ubuntu系系统执行:
sudo apt-get install python-dev libstemmer-dev build-essential - CentOS/RHEL系系统执行:
sudo yum install python-devel libstemmer-devel gcc make
- Debian/Ubuntu系系统执行:
- 用兼容Python2的国内镜像安装指定版本:
执行命令:python -m pip install pyStemmer==1.3.0 -i https://pypi.doubanio.com/simple/ --trusted-host pypi.doubanio.com - 若仍安装失败,可直接下载对应Python2.7版本的PyStemmer预编译wheel包,本地执行安装:
python -m pip install 本地wheel包路径.whl
安装完成后原有代码无需修改即可正常运行。
方案2:改用NLTK内置词干提取器(无需编译依赖)
如果不想处理PyStemmer的编译问题,可通过少量代码修改兼容原有调用逻辑,无需调整后续业务代码:
- 先安装适配Python2的最高版本NLTK:
执行命令:python -m pip install nltk==3.4.5 -i https://pypi.doubanio.com/simple/ --trusted-host pypi.doubanio.com - 修改原导入代码,将原有
import Stemmer替换为以下内容:
from nltk.stem import SnowballStemmer class Stemmer: @staticmethod def Stemmer(lang): return SnowballStemmer(lang)
- 原有
stemmer = Stemmer.Stemmer('english')及后续的词干提取调用代码完全无需修改,接口和PyStemmer完全兼容。
内容的提问来源于stack exchange,提问作者Bilal Memon
相关产品推荐
相关产品推荐

