2013-05-17 3 views
-2

Я хочу выполнить простой текстовый класс, который выполняет следующие функции: - проверьте, содержит ли каждое описание потерь описание ключевого слова, связанного с бедствием - если это так, то классифицируйте его в соответствии с к этой категории; в противном случае просто показать «Non-Disaster»Простая текстовая классификация в 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 

Идеальный конечный результат, если описание потерь «мой автомобиль был разрушен песчаным суеверным», соответствующий тип катастрофы будет «ураганом».

+0

Какую ошибку вы получаете, когда вы запускаете его? –

+1

'Пожалуйста, укажите, какая ошибка у меня есть в коде. - Вы получаете сообщение об ошибке? Что это? – That1Guy

+0

Неправильный код ... всего лишь секунд (будет редактировать) –

ответ

1

Чтобы сделать одноэлементный кортеж, вам нужно вставить запятую в круглых скобках:

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

Это решило проблему! Спасибо! – user1839897

Смежные вопросы