我正在创建一个程序,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?
所以我希望程序能够提出多个问题,并确定哪个动物是哪个。
答案 0 :(得分:1)
我认为您可以使用decision tree来执行此任务,您可以使用它根据自己的属性对动物进行分类,也可能有助于查看 Classification And Regression Tree (CART),这将有所帮助您可以决定进行分类的最佳属性。
答案 1 :(得分: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?
属性创建将是[purr,whiskers],动物将是[cat,dog]然后我们为每个属性循环输入
for each attribute in [cat,dog] :
animal=set(animal.intersection(dict[attribute ]))//in the first iteration animal would still be [cat,dog].
//然而在第二次迭代集([cat,dog] intersection([cat]))会给你一个只有一个元素的集合