python - 从 Python 2 迁移到 3 : Must reinstall NLTK directory?

标签 python nltk jupyter-notebook

当从 Python 2 迁移到 3 时,我知道我必须为 Python 3 重新安装 NLTK,但是是否也需要重新安装大量目录?

我使用的是 Mac OS 10.12.5,并且一直在 Sublime3 中使用 Python 2.7。我现在正在转向 Python 3,有时在 Sublime3 中工作,有时在 Jupyter Notebook 中工作。问题是我为 2.7 安装了 NLTK,但现在我要转向 3,我不想为 python 3 再次重新安装巨大的 NLTK 目录。所以我想知道为 3 安装 NLTK 是否可能且容易,但是仍然使用整个解析器/语料库/等。我已经有了。

感谢您的帮助,如果可能的话请指导教程!

最佳答案

NLTK 数据目录保持不变,因此无需重新安装数据。

但是代码在 Python2 和 Python3 的 python dist-package 中的位置不同。

因此,您需要做的就是使用 pippip3 安装 nltk:

pip install -U nltk
pip3 install -U nltk

但是您只需要安装nltk_data目录一次,例如:

# Let's delete the existing nltk_data directory and start afresh:
alvas@ubi:~$ ls nltk_data/
chunkers  grammars  misc    sentiment  taggers
corpora   help      models  stemmers   tokenizers
alvas@ubi:~$ rm nltk_data/ 

# Install the NLTK code for pip3 (Python3) and pip (Python2)
alvas@ubi:~$ pip3 install -U nltk
Requirement already up-to-date: nltk in /usr/local/lib/python3.5/dist-packages
Requirement already up-to-date: six in ./.local/lib/python3.5/site-packages (from nltk)

alvas@ubi:~$ pip2 install -U nltk
Requirement already up-to-date: nltk in /usr/local/lib/python2.7/dist-packages
Requirement already up-to-date: six in /usr/local/lib/python2.7/dist-packages (from nltk)


# Now, download the NLTK directory in Python2

alvas@ubi:~$ python
Python 2.7.12 (default, Nov 19 2016, 06:48:10) 
[GCC 5.4.0 20160609] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import nltk
>>> nltk.download('popular')
[nltk_data] Downloading collection u'popular'
[nltk_data]    | 
...
[nltk_data]    | Downloading package averaged_perceptron_tagger to
[nltk_data]    |     /home/alvas/nltk_data...
[nltk_data]    |   Unzipping taggers/averaged_perceptron_tagger.zip.
[nltk_data]    | 
[nltk_data]  Done downloading collection popular
True

# Now in Python3, when we try to re-download the nltk_data directory
# We see that it doesn't re-download it =)

>>> import nltk
>>> nltk.download('popular')
[nltk_data] Downloading collection 'popular'
[nltk_data]    | 
[nltk_data]    | Downloading package cmudict to
[nltk_data]    |     /home/alvas/nltk_data...
[nltk_data]    |   Package cmudict is already up-to-date!
...
[nltk_data]    |     /home/alvas/nltk_data...
[nltk_data]    |   Package averaged_perceptron_tagger is already up-
[nltk_data]    |       to-date!
[nltk_data]    | 
[nltk_data]  Done downloading collection popular
True
<小时/>

我可以只下载 Python2 的 Python 包并使其在 Python3 中运行吗?

不幸的是,没有。在 Python 2 中安装包/库独立于 Python 3 的环境,反之亦然。这不仅适用于 nltk,也适用于其他库。

不要将 Python 3 视为 Python 2 的更高版本,而应将它们视为两种不同的语言;P

关于python - 从 Python 2 迁移到 3 : Must reinstall NLTK directory?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45392362/

相关文章:

python - 在 IPython 中安装 conda 包

python - Pandas 向前填充具有特定值的时间戳列(1 秒)

Python 将变量日期传递给函数

Python 语言问题 : attributes of object() vs Function

python - 使用 NLTK 对阿拉伯语单词进行标记

python - 使用nltk计算python中csv文件中单词的出现次数

python - 大量在线对话文本的情感分析

python - 绘图时如何从 jupyter notebook 中显示的 matplotlib 输出行中删除

python - Scipy 和 Ipython 笔记本 : how to save and load results?

python - 评估时间序列之间的同步性