2016-05-31 9 views
-3

私はPython 2.7を持っています。これは私のコードです。実行すると、このエラーが発生します: 'continue'が正しくループしていません。ループで正しく続行しない

「continue」はループ内にあるはずですが、私はifの中で使っています。

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

あなたのインデントが大きく乱雑です。コードを一貫してインデントして、エラーを解決してください。 – user2357112

+0

上記のように、if文は実際にはforループにはなく、もう1つはインデントされています。 – chrishorton

+0

書かれているように、 'parse'関数は' stem'の最後の値だけを処理します。それは意図的なのでしょうか?そうでない場合、 'if'ステートメントを' stem = ar_stemmer.stemWord(word) 'と同じレベルにインデントします。 –

答えて

1

それはちょうどpassを使用し、そのコンテキストでcontinueを使用する全く不要です。

+0

ありがとう、script8man。 – YayaYaya

0

このエラーは、ループforまたはwhileの外側にusingcontinueが原因で発生します。つまり、continueは、forまたはwhileループ内でのみ許可されます。

関連する問題