2016-05-31 10 views
-3

Ich habe Python 2.7, das ist mein Code und wenn ich es ausführen, bekomme ich diesen Fehler: 'Weiter' nicht richtig in Schleife.Continue nicht richtig in Schleife

Ich weiß, dass 'weiter' sollte in der Schleife für sein, aber ich benutze es innerhalb if, was muss ich dann tun?

from numpy import zeros 
from scipy.linalg import svd 
from math import log 
from numpy import asarray, sum 
#from nltk.corpus import stopwords 
from sklearn.metrics.pairwise import cosine_similarity 
#from nltk.stem import PorterStemmer 
#from nltk.stem.isri import ISRIStemmer 
import nltk 
#from matplotlib import pyplot as plt 
from snowballstemmer import stemmer 


titles = [" ذهبت الاخت الى المدرسة","تقع المدرسة في الجبال", 
    "ذهب الام لزيارة ابنتها في المدرسة ","تحضر الام الكعكة" ] 

ar_stemmer = stemmer("arabic") 

stopwords = ['ثم','و','حتى','الى','على','في'] 

ignorechars = ''',:'!''' 



class LSA(object): 
    def __init__(self, stopwords, ignorechars): 
    self.stopwords = stopwords 
    self.ignorechars = ignorechars 
    self.wdict = {} 
    self.dcount = 0  


def parse(self, doc): 
    #tokens=nltk.word_tokenise(titles) 
    #words = doc.split(); 
    #ar_stemmer = stemmer("arabic") 
    for word in titles.split(" "): 
     # w = w.lower() 

    #for w in titles.split(" "): 
       stem = ar_stemmer.stemWord(word) 

     #st = ISRIStemmer() 
    #for w in words : 
      #join = w.decode('Windows-1256') 
      # w= st.stem(w.decode('utf-8')) 

    if stem in self.stopwords: 
     continue 
    elif stem in self.wdict: 
      self.wdict[stem].append(self.dcount) 
    else: 
      self.wdict[stem] = [self.dcount] 
      self.dcount += 1 
+1

Ihr Einzug ist ernsthaft durcheinander. Ziehen Sie den Code konsistent ein, um den Fehler zu beheben. – user2357112

+0

Abgehend von oben, ist Ihre if-Anweisung nicht wirklich in for-Schleife, Einzug noch ein, um ein Teil davon zu sein. – chrishorton

+0

Wie beschrieben, verarbeitet Ihre 'Parse'-Funktion nur den letzten Wert von' stem'. Ist das beabsichtigt? Ist dies nicht der Fall, müssen Sie die Anweisung 'if' auf die gleiche Ebene wie 'stem = ar_stem- mer.stemWord (word)' einrücken. –

Antwort

1

Es ist völlig unnötig continue in diesem Zusammenhang zu verwenden, nur pass verwenden.

+0

Danke, script8man. – YayaYaya

0

Dieser Fehler wird durch usingcontinue außerhalb for oder while Schleife verursacht. Das heißt: continue ist nur innerhalb einer for oder while Schleife zulässig.