2016-05-26 27 views
-2

Ich versuche, die LDA Verteilung unter dem ersten Artikel von meiner Sammlung zu erhalten, aber ich in mehrere Fehler leite:IndentationError: zergliederte Block erwartet, wenn sie versuchen LDA zu reproduzieren für ein Dokument

meine Sammlung: doc_set ist a pandas.core.series.Series. Jedes Mal, wenn ich den einfachen Code laufen wollte:

print(ldamodel[doc_set[1]]) 

ich folgende Fehlermeldung aus: ValueError: The truth value of a Series is ambiguous. Use a.empty, a.bool(), a.item(), a.any() or a.all(). Was ich denke, dass ich es durch gelöst:

if doc_set is not None: 
print(ldamodel[doc_set[1]]) 

Trotzdem jetzt bekomme ich folgende Fehlermeldung: IndentationError: expected an indented block. Ich suche eher nach der Intuition des Fehlers als nach der Korrektur, ich kann meinen gesamten LDA nicht für die Reproduktion verwenden, weil er zu massiv ist. Danke im Voraus!

+2

Leerzeichen sind in Python entscheidend. Jeder Block muss eingerückt sein. Du hast 'if ...' gesagt, also solltest du vermutlich etwas in diesen Block legen. Da Sie Ihren 'print'-Aufruf nicht eingerückt haben, denkt Python, dass Sie nichts in den Block geschrieben haben. Einrücken Sie diese Zeile. – zondo

Antwort

1

Ihr Einzug ist falsch, weil Sie Ihre print-Anweisung nicht in den if-Block geschrieben haben. Wenn Sie die Zeile mit einem Doppelpunkt (:) beenden, müssen Sie die Einzugsebene erhöhen, sonst erhalten Sie eine IndentationError Ausnahme.
Dies wäre der richtige Code sein:

if doc_set is not None: 
    print(ldamodel[doc_set[1]]) 
1

Vertiefung sind in Python sehr eigenartig. Sie müssen die Hierarchie pflegen, indem Sie für jeden Block Leerzeichen oder Tabulatoren verwenden. Jeder Block kann nur entweder die Tabs oder (beliebig viele) Leerzeichen enthalten.

Im ersten Block des Codes habe ich vier Leerzeichen verwendet und in der Sekunde habe ich zwei verwendet.

Das gleiche gilt für die KOMMENTARE. Kommentare müssen entsprechend eingerückt sein.

print 'Starting module' 
if not configs: 
    ''' 
    sys.exit('Error in Configuration files.') 
    ''' 
    pass 

In diesem Fall soll die Zeile kommentiert werden und Python nicht beschweren. Andernfalls wird ein Fehler bezüglich der Einrückung ausgegeben.