我目前正在使用Java
编写一个能够进行对话和解决问题的程序。
到目前为止,程序只能进行对话。解决问题的功能还在开发中。虽然程序能够学习,但我对实现方式有些怀疑。
我的程序学习新词的方式是将它们存储在TreeView
菜单中作为分支。每个分支
(词)都有子分支来赋予词义。每个子分支都有不同的标签来区分与主分支的关系。
例如,如果我教它词Hello
并输入Hello>>Hi
,它会将Hi
作为子分支存储在主分支Hello
下,形式为=s=Hi=s=
,以告知程序这是Hello
的同义词,因此它可以用Hi
代替Hello
。可以添加更多的同义词。
不过,如果你输入,例如Hello<>Greeting
,它会将分支Greeting
以=m=Greeting=m=
的形式存储在Hello
下,以表明Hello
是一种问候方式。还有更多内容,但解释起来太多了。
这只是我对人工智能的拙劣尝试。
这可以被视为程序学习吗?还是我还有很长的路要走?
回答:
你实际上已经开始学习人工智能了。你所做的是手动为机器提供基础术语
。但人工智能是指系统自己学习。例如,现在你已经教它hi
是一种问候方式,如果其他用户向它问候,它也必须回应问候。你也需要为此编写逻辑。你无法完全实现人工智能,使计算机在不编写任何逻辑的情况下自己学习(只有像Jarvis
这样的虚构角色才能做到)。
坦白说,我对机器学习
和人工智能的了解并不深入。但在我看来,我认为涉及人类思维方式的实现会更好。例如,尝试实现一个国际象棋
游戏。在其中你有回溯
。你可以更好地理解。每个棋子的属性和力量是你作为基础术语
(基础知识)提供的。根据用户的移动,系统必须分析未来的移动,预测用户的意图,并回溯
以做出自己的移动。
不确定我是否回答了你的问题,但你似乎在做很酷的事情,为你点赞,继续前进并首先开发一些涉及大量计算
和算法
的小规模人工智能系统。