Переход с 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