2016-03-29 11 views
-3

Ich bin Neuling hier. Entschuldigung für diese dumme Frage.Zeigt die "Variable" nicht die Nummer Python

Ich versuche Wörter zu zählen, zum Beispiel "Positiv", "Negativ" und "Neutral" in vielen TXT-Datei (3979 Dateien). Nachdem ich es gezählt habe, möchte ich eines mit der höchsten Zählung auswählen.

Nehmen wir an, in einem gegebenen Text gibt es 5 Positive, 1 Negative und 0 Neutral.

Ich habe es in einer Liste wie

myRev = [Positive, Negative, Neutral] 

Dann, wenn ich

largest = max(myRev) 

und wenn ich largest nenne, wird es gibt

5 

In diesem Fall Ich möchte, dass der Wert angezeigt wird Positive, Negative Oder Neutral (>>> dies meine Hauptfrage ist)

Danach Ich mag würde die Positive, Negative oder Neutral in eine andere Liste setzen, die ich so hängen Sie in ...

ReviewList = [] 
ReviewList.append(maxNr)  

und ich wünsche, wenn ich die ReviewList werden so etwas wie

Reviewlist = [Positive, Negative, Neutral, Neutral,... Neutral] 

und so weiter

.. rufen

Was kann ich dafür tun? Ich bin so ahnungslos, und haben versucht, so viele wie möglich zu lesen, aber ich bin nur mehr verwirrt mit ihm bekommen ...

Hier ist meiner - nicht so zuversichtlich - Code:

listOfReview = [] 

for i in xrange(0,3979): 
    f = open("ReviewsOutput%i.txt" %i, "r") 
    myOutput = f.read() 
    Positive = myOutput.count("Positive") 
    Negative = myOutput.count("Negative") 
    Neutral = myOutput.count("Neutral") 
    myRev = [Positive, Negative, Neutral] 
    largest = max(myRev) 
    listOfReview.append(largest) 
    f.close 
+1

zeigen Sie uns etwas Code. – WhoAmI

+0

Hehe, ich bin nicht so überzeugt davon :( Aber ich habe meinen Code auf meine Frage hinzugefügt ... – Woro

+0

Werfen Sie einen Blick auf 'collections.Counter' ([Dokumentation] (https://docs.python.org/ 2/library/collections.html # counter-objects)). – Peter

Antwort

0

Sie verwenden können Wörterbuch { 'positiv': 5, 'negative': 1, 'negative': 0}

>>> review = {'positive':5, 'negative':1, 'negative':0} 
>>> maxNr = max(review, key=review.get) 
>>> maxNr 
'positive' 
>>> ReviewList = [] 
>>> ReviewList.append(maxNr) 
>>> ReviewList 
['positive'] 

Edit: Sie können dies versuchen:

listOfReview = [] 
review = {'Positive':0, 'Negative':0, 'Neutral':0} 

for i in xrange(0,3979): 
    f = open("ReviewsOutput%i.txt" %i, "r") 
    myOutput = f.read() 
    review['Positive'] = myOutput.count("Positive") 
    review['Negative'] = myOutput.count("Negative") 
    review['Neutral'] = myOutput.count("Neutral") 
    largest = max(review, key=review.get) 
    listOfReview.append(largest) 
    f.close 

Sie können die Anzahl der Bewertungen auch abrufen, indem Sie review [largest] aufrufen.

+0

Ich verstehe nicht wirklich, wie man das Wörterbuch benutzt.Weil das Tausende von Dateien sind, ist es unmöglich zu tun, wenn ich alles manuell hinzufügen würde etwas, was ich in der Schleife tun könnte, und es automatisch in eine Liste ... und alles anhängen. Das ist die Sache, die ich wirklich keine Ahnung habe. Sorry, aber ich habe wirklich keinen Hintergrund in Programmierung und ich brauche wirklich Schritt Schritt für Schritt für Tausende von Dateien .. – Woro

+0

@Woro werfen Sie einen Blick auf die Bearbeitung. – SDBot

+0

Hey, das löste mein Problem !! Ich endlich herausgefunden, es nach Stunden zu optimieren es. Vielen Dank @SDBot :) – Woro

Verwandte Themen