Переход с Python 2 на 3: нужно переустанавливать каталог NLTK?

При переходе с Python 2 на 3 я знаю, что мне нужно переустановить NLTK для Python 3, но нужно ли также переустанавливать массивный каталог?

Я на Mac OS 10.12.5 и работаю с Python 2.7 в Sublime3. Сейчас я делаю переход на Python 3, иногда работаю в Sublime3, а иногда в Jupyter Notebook. Дело в том, что я установил NLTK для 2.7, но теперь, когда я перехожу на 3, я не хочу переустанавливать огромный каталог NLTK снова для python 3. Поэтому мне интересно, возможно ли и легко установить NLTK для 3, но по-прежнему использовать весь парсер / корпус / и т. д. У меня уже есть.

Цените вашу помощь и направление к учебнику, если это возможно!

1 ответ

Каталог данных NLTK остается прежним, поэтому нет необходимости переустанавливать данные заново.

Но код по-разному находится в дистрибутиве python для Python2 и Python3.

Так что все, что вам нужно сделать, это установить nltk с помощью pip а также pip3:

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

Могу ли я просто загрузить пакет Python для Python2 и заставить его работать в Python3?

К сожалению нет. Установка пакета / библиотеки в Python 2 не зависит от среды Python 3 и наоборот. Это относится не только к nltk но и другие библиотеки тоже.

Не думайте о Python 3 как о более поздней версии Python 2, думайте о них как о двух разных языках;P

Другие вопросы по тегам