2013-05-17 24 views
-2

我想執行一個簡單的文本分類,執行以下操作: - 檢查每個「損失描述」是否包含與災難相關的關鍵字 - 如果存在,則根據其進行分類到那個類別;否則只顯示「無災難」Python中的簡單文本分類

請指出什麼錯誤我的代碼(在datarecord第一行只是字段名)或更有效的方式來編寫代碼:

disaster_cat = [(('lightning'),'lightning'), 
       (('hurricane', 'sandy', 'irene', 'isaac', 'gustav'),'Hurricane'), 
       (('tornado'),'Tornado'), 
       (('flood'),'Flood'), 
       (('wildfire', 'wild fire'),'Wild Fire')] 

disaster_type = 'Non-Disaster' 
for record in datarecords[1:]: 
    record.append(disaster_type) #pre-populate every field with 'Non-Disaster' 

for record in datarecords[1:]:  
    for pairs in disaster_cat:   
     for phrase in pairs[0]:    
      if phrase in record[loss_desc_idx]: #check to see if the loss description contains kw 
       record[-1] = pairs[1]   #if has kw, change disaster type 'Non-Disaster' 
               #to appropriate diaster category 

理想的最終結果,如果損失描述是「我的車被超級風暴沙摧毀」,相應的disaster_type將是「颶風」。

+0

你得到什麼錯誤,當您運行呢? –

+1

'請指出我在代碼中出現了什麼錯誤 - 您是否收到錯誤?它是什麼? – That1Guy

+0

錯誤的代碼...只需一秒(將編輯) –

回答

1

爲了使單元素元組,你需要插入的括號內逗號:

(('lightning',),'lightning') 
+0

這解決了這個問題!謝謝! – user1839897