Podczas próby załadowania punkt
tokenizera ...
import nltk.data
tokenizer = nltk.data.load('nltk:tokenizers/punkt/english.pickle')
... a LookupError
został podniesiony:
> LookupError:
> *********************************************************************
> Resource 'tokenizers/punkt/english.pickle' not found. Please use the NLTK Downloader to obtain the resource: nltk.download(). Searched in:
> - 'C:\\Users\\Martinos/nltk_data'
> - 'C:\\nltk_data'
> - 'D:\\nltk_data'
> - 'E:\\nltk_data'
> - 'E:\\Python26\\nltk_data'
> - 'E:\\Python26\\lib\\nltk_data'
> - 'C:\\Users\\Martinos\\AppData\\Roaming\\nltk_data'
> **********************************************************************
>>> nltk.download()
Odpowiedzi:
Miałem ten sam problem. Wejdź do powłoki Pythona i wpisz:
Następnie pojawi się okno instalacji. Przejdź do zakładki „Modele” i wybierz „punkt” w kolumnie „Identyfikator”. Następnie kliknij Pobierz i zainstaluje niezbędne pliki. Wtedy powinno działać!
źródło
tokenizer = nltk.data.load('nltk:tokenizers/punkt/english.pickle')
Należy wtedy praca i można używać tokenizer tak:tokenizer.tokenize('The cat. The mat. It Sat.')
. Tutaj nltk próbuje rozwiązać ścieżkę względną wtokenizers/punkt/english.pickle
kilku lokalizacjach. Np. W Windows wygląda w%APPDATA%\nltk_data\tokenizers\punkt\english.pickle
lubC:\nltk_data\tokenizers\punkt\english.pickle
(tak samo dla D: i E :). Jeśli więc upewnisz się, że plik punkt.zip jest rozpakowany w taki sposób, że jedna z tych lokalizacji istnieje, powinien być w stanie ją znaleźć.NLTK_DATA
zmienną środowiskową tak, aby wskazywała na folder nltk_data, który%NLTK_DATA%\tokenizers\punkt\english.pickle
istnieje.ssh
połączenie) nie będzie okna GUI, a tym samym zakładki „Modele”.Możesz to zrobić w ten sposób.
Możesz pobrać tokenizatory, przekazując
punkt
jako argument dodownload
funkcji. Tokenizery słów i zdań są wtedy dostępne wnltk
.Jeśli chcesz pobrać wszystko znaczy
chunkers
,grammars
,misc
,sentiment
,taggers
,corpora
,help
,models
,stemmers
,tokenizers
, nie przechodzą żadnych argumentów, takich jak ten.Zobacz to, aby uzyskać więcej informacji. https://www.nltk.org/data.html
źródło
python -c "import nltk; nltk.download('punkt')" [nltk_data] Downloading package punkt to /home/my_user/nltk_data... [nltk_data] Error downloading 'punkt' from [nltk_data] <https://raw.githubusercontent.com/nltk/nltk_data/gh- [nltk_data] pages/packages/tokenizers/punkt.zip>: HTTP Error [nltk_data] 503: first byte timeout
Oto, co właśnie teraz zadziałało:
zdania_tokenized to lista z listą tokenów:
Zdania zaczerpnięto z przykładowego notatnika ipython dołączonego do książki „Mining the Social Web, 2nd Edition”
źródło
Z wiersza poleceń bash uruchom:
źródło
nltk_data
w moim katalogu domowym i zapisuje w nim punkt. Mam Fedorę 27, Py3.6.To działa dla mnie:
W systemie Windows otrzymasz także narzędzie do pobierania nltk
źródło
Simple
nltk.download()
nie rozwiąże tego problemu. Wypróbowałem poniżej i zadziałało:w
nltk
folderze utwórztokenizers
folder i skopiuj plikpunkt
dotokenizers
folderu.To zadziała.! struktura folderów musi być taka, jak pokazano na rysunku! 1
źródło
nltk ma wstępnie wyszkolone modele tokenizatorów. Model jest pobierany z wewnętrznie predefiniowanych źródeł internetowych i przechowywany w ścieżce zainstalowanego pakietu nltk podczas wykonywania następujących możliwych wywołań funkcji.
Np. 1 tokenizer = nltk.data.load ('nltk: tokenizers / punkt / english.pickle')
Np. 2 nltk.download ('punkt')
Jeśli zadzwonisz do powyższego zdania w swoim kodzie, upewnij się, że masz połączenie internetowe bez żadnych zabezpieczeń firewall.
Chciałbym podzielić się lepszymi alternatywnymi sposobami rozwiązania powyższego problemu z lepszym, głębszym zrozumieniem.
Wykonaj następujące kroki i korzystaj z tokenizacji angielskich słów za pomocą nltk.
Krok 1: Najpierw pobierz model „english.pickle”, korzystając ze ścieżki internetowej.
Przejdź do łącza „ http://www.nltk.org/nltk_data/ ” i kliknij „pobierz” w opcji „107. Modele tokenizera punktów”
Krok 2: Wypakuj pobrany plik „punkt.zip”, znajdź z niego plik „english.pickle” i umieść na dysku C.
Krok 3: skopiuj wklej następujący kod i wykonaj.
Daj mi znać, jeśli napotkasz jakiś problem
źródło
Na Jenkins można to naprawić, dodając następujący kod do Virtualenv Builder w zakładce Build :
python -m nltk.downloader punkt
źródło
Natknąłem się na ten problem, gdy próbowałem zrobić tagowanie pos w nltk. Sposób, w jaki to poprawiłem, polega na utworzeniu nowego katalogu wraz z katalogiem korpusu o nazwie "taggers" i skopiowaniu max_pos_tagger do taggerów katalogów.
mam nadzieję, że to też działa dla Ciebie. powodzenia !!!.
źródło
W Spyder przejdź do aktywnej powłoki i pobierz nltk za pomocą poniższych 2 poleceń. import nltk nltk.download () Następnie powinieneś zobaczyć otwarte okno pobierania NLTK jak poniżej, przejdź do zakładki 'Modele' w tym oknie i kliknij 'punkt' i pobierz 'punkt'
źródło
Sprawdź, czy masz wszystkie biblioteki NLTK.
źródło
Dane tokenizera punktowego są dość duże i przekraczają 35 MB , może to być duża sprawa, jeśli tak jak ja używasz nltk w środowisku takim jak lambda, które ma ograniczone zasoby.
Jeśli potrzebujesz tylko jednego lub kilku tokenizatorów językowych, możesz drastycznie zmniejszyć rozmiar danych, uwzględniając tylko te języki
.pickle
pliki .Jeśli potrzebujesz tylko obsługi języka angielskiego, rozmiar danych nltk można zmniejszyć do 407 KB (dla wersji python 3).
Kroki
nltk_data/tokenizers/punkt
jeśli używasz Pythona 3 dodaj kolejny folder,PY3
aby wyglądać jak nowa struktura katalogównltk_data/tokenizers/punkt/PY3
. W moim przypadku utworzyłem te foldery w katalogu głównym mojego projektu..pickle
plik zip i przenieś pliki dla języków, które chcesz obsługiwać, dopunkt
właśnie utworzonego folderu. Uwaga: użytkownicy Pythona 3 powinni używać pikli zPY3
folderu. Po załadowaniu plików językowych powinien wyglądać mniej więcej tak: przykład-folder-strukturanltk_data
folder do ścieżek wyszukiwania, zakładając, że dane nie znajdują się na żadnej ze wstępnie zdefiniowanych ścieżek wyszukiwania . Możesz dodać swoje dane za pomocą zmiennej środowiskowejNLTK_DATA='path/to/your/nltk_data'
. Możesz również dodać niestandardową ścieżkę w czasie wykonywania w Pythonie, wykonując:UWAGA: Jeśli nie musisz ładować danych w czasie wykonywania lub łączyć danych z kodem, najlepiej byłoby utworzyć
nltk_data
foldery we wbudowanych lokalizacjach, których szuka nltk .źródło
nltk.download()
nie rozwiąże tego problemu. Wypróbowałem poniżej i zadziałało:w
'...AppData\Roaming\nltk_data\tokenizers'
folderze wyodrębnij pobranypunkt.zip
folder w tej samej lokalizacji.źródło
W
Python-3.6
widzę sugestię w pliku śledzenia. To bardzo pomocne. Dlatego powiem wam, abyście zwrócili uwagę na błąd, który otrzymaliście, w większości przypadków odpowiedzi dotyczą tego problemu;).A potem, jak sugerowali inni ludzie tutaj albo używając terminala Python, albo używając polecenia, takiego jak
python -c "import nltk; nltk.download('wordnet')"
możemy zainstalować je w locie. Wystarczy raz uruchomić to polecenie, a następnie zapisze dane lokalnie w katalogu domowym.źródło
Miałem podobny problem podczas korzystania z przypisanego folderu do wielu pobrań i musiałem ręcznie dołączyć ścieżkę danych:
pojedyncze pobranie, można uzyskać w następujący sposób (działa)
Ten kod działa, co oznacza, że nltk pamięta ścieżkę pobierania przekazaną w funkcji pobierania. Z drugiej strony, jeśli pobiorę kolejny pakiet, otrzymam podobny błąd, jak opisał użytkownik:
Wielokrotne pobieranie powoduje błąd:
Błąd:
Nie znaleziono punktu zasobu. Aby uzyskać zasoby, użyj narzędzia NLTK Downloader:
import nltk nltk.download ('punkt')
Teraz, jeśli dołączę ścieżkę danych NTLK do mojej ścieżki pobierania, działa:
To działa ... Nie wiem, dlaczego działa w jednym przypadku, ale nie w drugim, ale komunikat o błędzie wydaje się sugerować, że nie sprawdza się w folderze pobierania po raz drugi. Uwaga: przy użyciu windows8.1 / python3.7 / nltk3.5
źródło