win64 安装 python + NLTK(附 python MemoryError 解决方法)

如果使用scikit模块进行自然语言处理的话,python最好安装32位的,这可以跟后面使用的 模块配套。
更为重要的是,一旦你的数据量比较大的时候,可能出现系统内存不够MemoryError 的情况,这个时候你就
需要使用64位系统,就像我现在做的工作一样。类似的问题:Python MemoryError when doing fitting with Scikit-learn 为了使用64位系统,又得重新安装整个处理的环境

1. pip 命令的安装

现在使用的python3.5版本已经安装了pip(估计以后的版本都带了),就可以直接在cmd中使用了,不需要 使用了,下面的内容留给需要的人看。
很简单的操作,很推荐:Install pip, setuptools, and wheel
1.下载get-pip.py
2.python get-pip.py
3.安装完成

2. 安装nltk、numpy、scipy和scikit_learn

多次的安装经验告诉我,nltknumpy 可以直接pip install 安装:
在cmd中输入
pip install numpy (以后的命令都是在cmd中运行)

Unofficial Windows Binaries for Python Extension Packages 上下载配套的scipyscikit_learn 的whl 文件

通过以下的方式查询scipyscikit_learn 的版本信息:
在python IDE中输入:

>>>import pip
>>>print(pip.pep425tags.get_supported())
[('cp35', 'cp35m', 'win32'), ('cp35', 'none', 'win32'), ('py3', 'none', 'win32'), ('cp35', 'none', 'any'), ('cp3', 'none', 'any'), ('py35', 'none', 'any'), ('py3', 'none', 'any'), ('py34', 'none', 'any'), ('py33', 'none', 'any'), ('py32', 'none', 'any'), ('py31', 'none', 'any'), ('py30', 'none', 'any')]

这样就知道scipyscikit_learn 都是下载cp35-cp35m-win32版本的
下载好这两个文件后,cd 进入文件目录,在cmd中输入:
pip install scipy-*.whl(输入scipy后,按tab键,可以自动补全文件名称) 安装scipy
同样的方式安装scikit_learn

备注: 一般的安装顺序就是nltk -> numpy -> scipy -> scikit_learn

3. 测试安装

在python IDE中输入:

import nltk
import numpy
import scipy

来分别测试 nltk 、 numpy 和 scipy 是否安装成功

from nltk.classify.scikitlearn import SklearnClassifier
from sklearn.naive_bayes import MultinomialNB

来测试 scikit_learn 是否安装成功

在windows 64位上安装 nltk ,安装scikit 就可以方便的测试各种分类器的性能了。到此,python自然环境
处理的环境的搭建就告一段落,以往后面的实验环节顺利!

更新(python MemoryError 问题的解决)

可能问题:将多个分类器的train() 方法放在了一起了。
解决方法:让每个分类器训练完后,直接给出准确度之后,再去进行其他分类器的训练。
例如:

        MNB_classifier = SklearnClassifier(MultinomialNB())
        BNB_classifier = SklearnClassifier(BernoulliNB())
        MNB_classifier.train(train_set)
        BNB_classifier.train(train_set)
        print("MultinomialNB accuracy percent:",nltk.classify.accuracy(MNB_classifier, test_set))
        print("BernoulliNB accuracy percent:",nltk.classify.accuracy(BNB_classifier, test_set))

修改为:

        MNB_classifier = SklearnClassifier(MultinomialNB())
        MNB_classifier.train(train_set)
        print("MultinomialNB accuracy percent:",nltk.classify.accuracy(MNB_classifier, test_set))

        BNB_classifier = SklearnClassifier(BernoulliNB())
        BNB_classifier.train(train_set)
        print("BernoulliNB accuracy percent:",nltk.classify.accuracy(BNB_classifier, test_set))

这样做之后MemoryError 的确没有了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值