Python

2016-03-29 9 views
-3

numarasının "değişkeni" gösterilmemesi burada yeniyim. Bu aptal soru için üzgünüm.Python

Birçok .txt dosyasında (3979 dosya), örneğin "Olumlu", "Olumsuz" ve "Tarafsız" gibi sözcükleri saymaya çalışıyorum. Saydıktan sonra, en yüksek sayımı olanı seçmek istiyorum.

Belirli bir metinde 5 Olumlu, 1 Negatif ve 0 Tarafsız olduğunu varsayalım.

ben

largest = max(myRev) 

kullanırsanız gibi

myRev = [Positive, Negative, Neutral] 

Sonra bir liste koymak ve ben largest çağırdığınızda, bu durumda

5 

verir edecek , Değerini göstermek istiyorum Positive, Negative Ya Neutral (>>> budur benim ana soru) Ben koymak istiyorum Bundan sonra

Positive, Negative veya böyle eklenmiyor başka listeye Neutral ...

ReviewList = [] 
ReviewList.append(maxNr)  

ve ben böyle devam

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

ve benzeri ReviewList haline şey ararsanız keşke ..

Bunun için ne yapabilirim?

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

Bize bazı kodları göster. – WhoAmI

+0

Hehe, Ben bu konuda çok emin değilim :( Ama benim soruma kodumu ekledim ... – Woro

+0

'collections.Counter' bir göz atın ([belgeler] (https://docs.python.org/ 2/library/collections.html # counter-objects)) – Peter

cevap

0

Sen kullanabilirsiniz: - bu yüzden emin değil - kod ben burada

benim içinde ... yani clueless ve mümkün olduğu kadar çok okuma denedim ama sadece onunla daha karıştı alıyorum Sözlük { 'olumlu': 5, 'olumsuz': 1, 'olumsuz': 0}

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

Düzenleme: Bu deneyebilirsiniz:

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 

Ayrıca inceleme sayısını [en büyük] arayarak da alabilirsiniz.

+0

Sözlüğü nasıl kullanacağımı gerçekten anlamıyorum, çünkü bu binlerce dosya, el ile hepsini ekleyeceksem bunu yapmak imkansız. döngü içinde yapabildiğim bir şey ol ve otomatik olarak bir listeye ekle ... ve hepsine ekle.O gerçekten hiçbir fikrim yok. Üzgünüm, ama programlamada hiç arka planım yok ve gerçekten adım atmam gerekiyor Binlerce dosya için bunu yapmak için adım adım .. – Woro

+0

@Woro Düzenleme bir göz atın – SDBot

+0

Hey, bu benim sorunum çözüldü! Sonunda tweaking saat sonra anladım. Çok teşekkür ederim @SDBot :) – Woro