"NotImplementedError: Verwenden Sie label (), um auf eine Knotenbezeichnung zuzugreifen"

7

Ich muss alle Stadtnamen von einer Website extrahieren. Ich habe beautifulSoup mit RE in früheren Projekten verwendet, aber auf dieser Website sind die Ortsnamen Teil von normalem Text und haben kein spezifisches Format. Ich habe ein Geografie-Paket gefunden ( Ссылка ), das meine Anforderungen erfüllt.

Geografie verwendet Nltk-Paket. Ich habe alle Modelle und Pakete für nltk installiert, aber es wirft immer wieder diesen Fehler auf:

%Vor%

Jede Hilfe wäre willkommen

    
Faisal 07.12.2014, 09:27
quelle

3 Antworten

14

Sie können dies lösen, indem Sie ".node" durch ".label ()" ersetzen.

In Ihrem Problem können Sie versuchen,

zu ersetzen %Vor%

mit

%Vor%     
orefeng 01.06.2015 12:31
quelle
4

Nehmen Sie nicht an, dass alle Benutzer lib-Dateien ändern. Für den Kerl oder irgendjemanden, der Hilfe benötigt, müssen Sie darauf zugreifen, wo das Paket installiert ist. Sie möchten die extraktion.py ändern. Wenn Sie Windows 10 oder etwas Ähnliches verwenden, befindet sich die Datei unter C: \ Python27 \ Lib \ site-packages \ geography \ extraction.py. Es befindet sich normalerweise im selben Installationsverzeichnis wie Python. Wie zuvor schon erwähnt, ändern Sie (Zeile 31)

if (ne.node == 'GPE' oder ne.node == 'PERSON') und ne [0] [1] == 'NNP':

bis

if (ne.label () == 'GPE' oder ne.label () == 'PERSON') und ne [0] [1] == 'NNP':

Fertig. Glückliche Kodierung.

    
Quentin Mayo 19.01.2016 03:43
quelle
2

Es sieht so aus, als ob geograpy die Methode node eines nltk Tree -Objekts aufruft:

%Vor%

, das das nltk -Paket als veraltet markiert hat:

%Vor%

Das Paket ist kaputt. Sie können es selbst reparieren oder ein anderes verwenden.

    
Patrick Collins 07.12.2014 10:29
quelle

Tags und Links