Я работал над этим вопросом несколько дней, и у меня не осталось волос. По некоторым причинам nltk и pyinstaller не работают вместе.
Итак, мое первое решение этой проблемы - использовать что-то отличное от nltk, если возможно кодировать решение без nltk.
Если вы должны использовать NLTK, я решил эту проблему, введя путь nltk_data в данные.
Найдите свой путь nltk_data. Моя была в
C: \ Users \ имя пользователя \ AppData \ Roaming \ nltk_data
В файле hook-nltk.py (в каталоге pyinstaller) я закомментировал и добавил строки, которые будут выглядеть следующим образом.
import nltk
from PyInstaller.utils.hooks import collect_data_files
datas = collect_data_files('nltk', False)
'''
for p in nltk.data.path:
datas.append((p, "nltk_data"))
'''
datas.append(("C:\\Users\\nedhu\\AppData\\Roaming\\nltk_data", "nltk_data"))
hiddenimports = ["nltk.chunk.named_entity"]
Существует более глубокая проблема с циклом pyinstaller по списку путей к данным, но это решение работает как патч.