导入BERTopic时触发HDBSCAN TypeError问题求助(Apple M2 Pro)
解决BERTopic导入时的TypeError(Apple M2 Pro)
问题原因
HDBSCAN 0.8.29与新版scikit-learn(1.2+)存在兼容性冲突。在scikit-learn 1.2及以上版本中,KDTree.valid_metrics和BallTree.valid_metrics从属性改为了可调用方法,但HDBSCAN 0.8.29仍尝试直接将它们当作列表拼接,触发类型错误。
解决方案
方案1:升级HDBSCAN到兼容版本
HDBSCAN 0.9.0及以上版本已修复该兼容性问题,执行命令升级:
pip install --upgrade hdbscan>=0.9.0
方案2:降级scikit-learn到1.1.x版本
若需保留HDBSCAN 0.8.29,可将scikit-learn降级至1.1系列(如1.1.3):
pip install scikit-learn==1.1.3
方案3:创建匹配的虚拟环境(推荐)
用conda或venv搭建新环境,指定兼容的依赖版本组合:
conda create -n bertopic_env python=3.10 conda activate bertopic_env pip install bertopic==0.15.0 hdbscan==0.9.0 umap-learn==0.5.3 scikit-learn==1.3.0
验证
安装完成后,重新运行导入命令:
from bertopic import BERTopic
无报错则问题解决。
内容的提问来源于stack exchange,提问作者Salihcan
相关产品推荐
相关产品推荐

