2012-12-17 6 views
5

Ich versuche zu lernen NLTK - Natural Language Toolkit in Python geschrieben und ich möchte Beispieldatensatz installieren, um einige Beispiele auszuführen.NLTK: Proxy-Server

Meine Web-Verbindung verwendet einen Proxy-Server, und ich bin versuchen, die Proxy-Adresse angeben, wie folgt:

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

Aber ich bekomme Fehler:

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

ich entscheiden, eine ProxyBasicAuthHandler einstellen bevor nltk.download() Aufruf:

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() 

Aber jetzt bekomme ich HTTP Error 407 - Proxy Autentification Required.

Dokumentation says Wenn der Proxy auf None eingestellt ist, versucht diese Funktion, den Systemproxy zu erkennen. Aber es ist keine Arbeit.

Wie kann ich Beispieldatensatz für NLTK installieren?

+0

ref https://stackoverflow.com/questions/41348621/ssl-error-downloading-nltk-data gesetzt ssl auf false, wenn es Fehler geben – enjoy

Antwort

7

Es ist ein Fehler mit der Website, wo Sie für Ihren ersten Versuch, diese Zeilen Code bekamen (ich habe gesehen, dass gleicher Fehler)

Die Leitung fehlerhaft ist

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

Sie benötigen ein Komma, um die Argumente zu trennen. Die richtige Zeile sollte

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

Das wird gut funktionieren.

+0

Vielen Dank! Die Dokumentation des NLTK-Projekts enthält Fehler. – ymn

+0

Sie können versuchen 'nltk.set_proxy ('http://proxy.example.com:3128', 'USERNAME', 'PASSWORD')' Wenn Ihr Passwort Sonderzeichen enthält denken Sie daran, sie in Hex-Werte zu konvertieren. Zum Beispiel% 40 für @ –

0

Legen Sie den Proxy des Systems in bash fest, indem Sie die entsprechende Umgebungsvariable ändern.

Einige der Proxy-Einstellungen, die ich halten sind:

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/ 

Sie die Änderungen in der Umgebungsvariablen dauerhaft machen können Ihre Datei ~/.bashrc bearbeite. Beispiel edit:

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

Ich verwende bereits 'http_proxy 'Umgebungsvariable und viele Programme (wie Eclipse, Git, Wget, etc.) verwenden es. Aber es scheint mir, dass NLTK Downloader keine Umgebungsvariable verwenden. – ymn

+0

In meinem System funktioniert es perfekt. Ich benutze auch einen Proxy. '>>> import nltk >>> nltk.download() NLTK Downloader ------------------------------- -------------------------------------------- d) Download l) Liste c) Konfiguration h) Hilfe q) Beenden --------------------------------------- ------------------------------------ Downloader> ' – Sibi

3

Die oben vorgeschlagenen Optionen funktionierten nicht für mich. Hier ist, was in meiner Windows-Umgebung für mich funktionierte. Versuchen Sie, die runden Klammern zu entfernen. es funktioniert jetzt !

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

Ich betreibe NLTK 3.0 und Python 3.4 in Windows environment..and Proxy-Authentifizierung gut läuft, wenn ich den Zweig entfernen .. so verwenden dieses Skript

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

auch ich die gleichen Fehler aber ich habe eine perfekt funktionierende Lösung. Sie müssen die nltk_data MANUELL herunterladen und in das Verzeichnis usr/lib/nltk_data in linux und c: \ nltk_data stellen, wenn Sie windows verwenden.
Hier sind die Schritte, die Sie befolgen müssen:
1.Download der nltk_data zip-Datei von diesem Github-Link
https://github.com/nltk/nltk_data/tree/gh-pages.
2. Da die Daten in Zip-Form vorliegen, müssen Sie sie extrahieren.
3.Speziell für Ubuntuutzer, folgender Befehl, um das Dateisystem auf praktische Weise zu navigieren.
sudo nautilus macht es Copy/Paste-Prozess praktisch. Jetzt können Sie einfach nach usr/share kopieren oder einfach einen Ordner erstellen.
4. Nun, wenn Sie ein Linux-Benutzer sind, dann erstellen Sie einen Ordner namens nltk_data in usr/share und wenn Sie Windows verwenden, erstellen Sie dasselbe in c: /.
5. Nun fügen Sie den gesamten Inhalt der nltk_data-gh-Seiten (die Sie gerade extrahiert haben) in den Ordner nltk_data ein, den Sie gerade erstellt haben.
6. Jetzt Formular nltk_data/packages Ordner kopieren Sie alle Ordner und fügen Sie sie in nltk_data Ordner. Jetzt sind Sie fertig.

Da dies meine erste Antwort ist, kann ich den Prozess möglicherweise nicht richtig erklären. Wenn Sie Schwierigkeiten haben, diese Schritte auszuführen, geben Sie bitte ein.

+0

Ich erhalte den Fehler bei https://stackoverflow.com/q/48060011/1352127. Bitte helfen Sie – Shinchan

0

Wenn Sie NLTK Corpus manuell installieren möchten.

1) Gehen Sie zu und laden Sie Ihre gewünschte NLTK Corpus-Datei herunter.

2) nun in einem Python-Shell den Wert von nltk.data.path

3) überprüft eines des Pfades wählen, die auf Ihrem Computer vorhanden ist, und die Daten-Dateien in das Unterverzeichnis corpora innen entpacken. Jetzt

4) können Sie die Daten importieren from nltk.corpos import stopwords

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

0

Ich betreibe NLTK 3.2.5 und Python 3.6 unter Windows 10-Umgebung. Ich benutze dieses Skript:

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