2014-10-18 1 views
0

Я создаю программу, A.I. на самом деле, который учит разнице между животными и делает это через ряд вопросов, они будут определять, какие атрибуты имеют животные. Так что я хочу это способ сохранить животных с выбором вопросов атрибутов, например:Как определить разницу между животными на основе вопросов об атрибутах

dog : does it have a wet nose? 
     does it have whiskers? 

Все эти вопросы, которые ответ «да» являются атрибутами, как собака ... любые идеи? Также голые в виде, что некоторые животные имеют те же атрибуты, например:

dog : does it have a wet nose? 
     does it have whiskers? 
cat : does it purr? 
     does it have whiskers? 

Так что я хочу, чтобы программа, чтобы иметь возможность задать несколько вопросов и определить, какое животное есть что.

ответ

1

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

attributes=[bite,scratch,purr,whiskers,...] 
dic={ 
whiskers:[cat,dog] 
purr:[cat] 
scratch:[cat] 
bite:[cat,dog,rat]} 
dose it scratch 

на основе вашего формата вопроса, например, :

for each question: 
    for each word in question : 
     if word in attributes: 
     attributesFound.append(word) 
    animal=set(dic[attributesFound[0]]) 
    for each attribute in attributesFound: 
    animal=animal.intersection(dict[attribute ]) 

сказать, что у нас есть этот случай

 does it purr? 
     does it have whiskers? 

в ttributesFound будет [мурлыкать, усы], животное было бы [кошка, собака], то мы вступаем в течение каждого цикла атрибута

for each attribute in [cat,dog] : 
    animal=set(animal.intersection(dict[attribute ]))//in the first iteration animal would still be [cat,dog]. 

// Однако во втором сете итерации ([кошка, собака] пересечение ([кошка ])) оставит вам набор только с одним элементом, который будет кошкой

1

Я думаю, вы можете использовать decision tree для выполнения этой задачи, вы можете использовать его для классификации животных на основе его атрибутов, также может быть полезно взглянуть на Classification And Regression Tree (CART), это поможет вам решить, какие лучшие атрибуты для классификации.

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