2012-01-06 94 views
0

每當我試着用Python安裝2.6.6運行這個python腳本,在Windows 7企業版(64位),我不斷收到此錯誤問題與索引

問題簽名: 問題事件名稱:APPCRASH
應用名稱:python.exe
應用程序版本:0.0.0.0
應用程序時間戳:4c73f7b6
故障模塊名稱:_csr.pyd
故障模塊版本:0.0.0.0
故障模塊時間戳:4d6a645b
異常代碼:0000005
異常偏移:000c05d4

我試着重新安裝Python和所有的模塊,我的程序上(即gensim,nlptk,SciPy的並運行numpy的)

我不知道這是爲你們足夠的數據,但請讓我知道!

lsi = models.LsiModel(corpus, num_topics = num_Topics) 
index_lsi = similarities.MatrixSimilarity(lsi[corpus]) 

for k, v in dict_Queries.items(): 
     File.write("Check Key: " +k+ "\n") 
     print "Running.... \n" 
     vec_bow = dict.doc2bow(v.split(), allow_update=True) 

#In the last iteration, the code below the line doesn't run and i think the vec_lsi 
#is the source of the problem but I don't know why? 
     vec_lsi = lsi[vec_bow] 

     #indexing the LSI 
     sims = index_lsi[vec_lsi] 
     sims = sorted(enumerate(sims), key = lambda item: -item[1]) 

     if not cut_Off == 0: 
      sims = sims[0:cut_Off] 
     else: 
      pass 

     for t in sims: 

      dup_info = dict_tcs.get(t[0]) 

      if t[1] > 0.75: 
       #print "Key: " + k + " Link: " + dup_info + "\n" 
       File.write("Adding: "+str(t)+ " To LSI actual \n") 
       if dict_Actual_LSI.has_key(k): 
        links = dict_Actual_LSI.get(k) 
        links.append(dup_info) 
       else: 
        links = [] 
        links.append(dup_info) 
        dict_Actual_LSI[k] = links 
     print "Added\n" 

在最後一次迭代中,線下的代碼不能運行,我認爲vec_lsi是問題的根源,但我不知道爲什麼?

謝謝

+0

做什麼工作? 「打印」你好世界「工作? – 2012-01-06 21:52:26

+0

Exactly-例如,嘗試'蟒蛇-c「打印「你好,世界」'在命令行 – 2012-01-06 22:13:25

+0

是這樣的作品,所以它是我的代碼裏面的東西? – Shahab 2012-01-09 14:13:43

回答

3

異常代碼c0000005的意思是「訪問衝突」。這通常意味着某些代碼嘗試讀取或寫入它沒有訪問權限的內存地址。這可能是由於指針損壞,未初始化的內存或索引超出數組邊界的本機代碼。

,該故障是在該模塊_csr.pyd。這是SciPy的一部分,聽起來像是用於處理稀疏數組。這表明發生錯誤是因爲SciPy被指向無效內存。沒有看到你的程序,很難猜測這可能發生了什麼。

作爲下一個步驟,你可以嘗試牽制什麼在飛機墜毀前發生,立即通過添加一些打印語句到你的程序 - 打印出它您可以縮小在碰撞發生的進步。如果幸運的話,那麼SciPy爲什麼會試圖訪問無效內存就會變得清晰起來。

+0

錯誤不幸的是我不能表現出我的全部代碼,一堆的原因外屏幕,但就像你說的那樣,這可能比我的代碼更像SciPy的bug? – Shahab 2012-01-12 21:19:57

+1

這可能是SciPy中的一個錯誤,但它可能同樣是gensim中的錯誤,或者甚至是您自己的代碼中的錯誤,具體取決於您如何將輸入提供給gensim以及它保證了什麼。解決這個問題的最佳方法是將程序和數據減少到最小,但仍然可以產生崩潰,然後將簡化的代碼和數據提供給SciPy或gensim開發人員。 – Weeble 2012-01-13 11:20:54

+0

是的,感謝您的建議,代碼與gensim網站上列出的內容以及之前爲我工作的方法非常相似,因此我會將問題轉達給他們。 – Shahab 2012-01-13 14:56:26