2012-12-17 4 views
5

Próbuję się nauczyć NLTK - Natural Language Toolkit napisany w Pythonie i chcę zainstalować przykładowy zestaw danych, aby uruchomić kilka przykładów.NLTK: set proxy server

Moja gra internetowa korzysta z serwera proxy, a ja staram się określić adres proxy następująco:

>>> nltk.set_proxy('http://proxy.example.com:3128' ('USERNAME', 'PASSWORD')) 
>>> nltk.download() 

Ale otrzymuję błąd:

Traceback (most recent call last): 
    File "<stdin>", line 1, in <module> 
TypeError: 'str' object is not callable 

zdecyduję się ustawić ProxyBasicAuthHandler przed wywołaniem nltk.download():

import urllib2 

auth_handler = urllib2.ProxyBasicAuthHandler(urllib2.HTTPPasswordMgrWithDefaultRealm()) 
auth_handler.add_password(realm=None, uri='http://proxy.example.com:3128/', user='USERNAME', passwd='PASSWORD') 
opener = urllib2.build_opener(auth_handler) 
urllib2.install_opener(opener) 

import nltk 
nltk.download() 

Ale teraz mam HTTP Error 407 - Proxy Autentification Required.

Dokumentacja says o tym, że jeśli proxy jest ustawione na None, ta funkcja spróbuje wykryć proxy systemu. Ale to nie jest praca.

Jak mogę zainstalować przykładowy zestaw danych dla NLTK?

+0

ref https://stackoverflow.com/questions/41348621/ssl-error-downloading-nltk-data ssl ustawiony na false, jeśli to daje błąd – enjoy

Odpowiedz

7

wystąpił błąd ze strony internetowej, gdzie dostałeś te linie kodu dla pierwszej próbie (Widziałem, że ten sam błąd)

Linia z błędem jest

nltk.set_proxy('http://proxy.example.com:3128' ('USERNAME', 'PASSWORD')) 

Potrzebny jest przecinek, aby oddzielić argumenty. Poprawna linia powinna być:

nltk.set_proxy('http://proxy.example.com:3128', ('USERNAME', 'PASSWORD')) 

To zadziała dobrze.

+0

Wielkie dzięki! Dokumentacja projektu NLTK zawiera błędy. – ymn

+0

Możesz spróbować 'nltk.set_proxy ('http://proxy.example.com:3128', 'USERNAME', 'HASŁO')' Jeśli twoje hasło zawiera znaki specjalne, pamiętaj o przekonwertowaniu ich na wartości szesnastkowe. Na przykład% 40 dla @ –

0

Ustaw proxy systemu również w bashie, zmieniając odpowiednią zmienną środowiskową.

Niektóre z ustawień proxy, które trzymam to:

http_proxy=http://127.0.0.1:3129/ 
ftp_proxy=http://127.0.0.1:3129/ 
all_proxy=socks://127.0.0.1:3129/ 
https_proxy=http://127.0.0.1:3129/ 

Można dokonać zmian w środowisku zmienna stałe edytując plik ~/.bashrc. edit próbki:

export http_proxy=http://127.0.0.1:3129/ 
+0

ja już używać 'http_proxy 'zmienna środowiskowa i wiele programów (takich jak eclipse, git, wget itp.) używają tego. Ale wydaje mi się, że downloader NLTK nie używa zmiennej środowiskowej. – ymn

+0

W moim systemie działa idealnie. Używam również proxy. '>>> import nltk >>> nltk.download() NLTK Downloader ------------------------------- -------------------------------------------- d) Pobierz l) Lista c) Konfig. H) Pomoc q) Zamknij --------------------------------------- ------------------------------------ Downloader> ' – Sibi

3

Powyższe opcje nie sprawdziły się u mnie. Oto, co działało dla mnie w moim środowisku Windows. Spróbuj usunąć okrągłe nawiasy klamrowe. Teraz działa !

nltk.set_proxy('http://proxy.example.com:3128', 'USERNAME', 'PASSWORD') 
1

biegnę NLTK 3.0 i Python 3.4 uwierzytelniania proxy windows environment..and działa dobrze jeśli usunąć gałąź .. więc użyć tego skryptu

nltk.set_proxy('http://proxy.example.com:3128', 'username', 'password') 
7

ja też się ten sam błąd ale mam doskonale działające rozwiązanie. Musisz pobrać Nltk_data MANUALLY i umieścić go w katalogu usr/lib/nltk_data w linux i c: \ nltk_data, jeśli używasz Windows.
Oto kroki, które należy wykonać:
1. Pobierz plik zip nltk_data z tego linku Github
https://github.com/nltk/nltk_data/tree/gh-pages.
2.Od danych w formacie zip należy wyodrębnić.
3.Specjalnie dla użytkowników ubuntu, następujące polecenie do poręcznego poruszania się po systemie plików.
sudo nautilus to ułatwia kopiowanie/wklejanie. Teraz możesz łatwo skopiować do usr/share lub utworzyć folder.
4.Jeśli jesteś użytkownikiem systemu Linux, utwórz folder o nazwie nltk_data w usr/share i jeśli korzystasz z systemu Windows, utwórz go w c: /.
5. Teraz wklej całą zawartość nltk_data-gh-stron (którą właśnie wyodrębniono) w właśnie utworzonym folderze nltk_data.
6. Teraz z folderu nltk_data/packages skopiuj cały folder i wklej go do folderu nltk_data. Teraz gotowe.

Ponieważ jest to moja pierwsza odpowiedź, może nie być w stanie wyjaśnić tego procesu poprawnie. Jeśli masz problemy z wykonaniem tych czynności, prosimy o komentarz.

+0

Otrzymuję błąd na https://stackoverflow.com/q/48060011/1352127. Proszę pomóż – Shinchan

0

Jeśli chcesz ręcznie zainstalować Korpus NLTK.

1) Przejdź do http://www.nltk.org/nltk_data/ i pobierz żądany plik korpusu NLTK.

2) Teraz w powłoce Pythona sprawdzić wartość nltk.data.path

3) Wybierz jedną ścieżkę, która istnieje na komputerze i rozpakować pliki z danymi w katalogu corpora sub wewnątrz.

4) Teraz można importować dane from nltk.corpos import stopwords

referencyjny: https://medium.com/@satorulogic/how-to-manually-download-a-nltk-corpus-f01569861da9

0

biegnę NLTK 3.2.5 i Python 3.6 pod Windows 10 środowisku. używam tego skryptu:

nltk.set_proxy('http://user:[email protected]:3128') 
nltk.download()