I’m currently using Java
to code a program that can have conversations and solve problems.
So far, the program can only have conversations. The solving problems is still in process.
The program is capable of learning, however, it’s how I made that happen that gives me doubts.
The way my program learns new words is it stores them in a TreeView
menu as branches.
Each branch
(word) has sub-branches that give the word meaning.
Each sub-branch has sort of like different tags to differentiate the relation to the main branch.
For example, if I teach it the word Hello
and type Hello>>Hi
, it then saves Hi
as a sub-branch in the main branch Hello
, but in the form of =s=Hi=s=
to tell the program it’s a synonym of Hello
, so it can use Hi
instead of Hello
. More synonyms can be added.
Though if you type, for example, Hello<>Greeting
, it stores the branch Greeting
in Hello
in the form of =m=Greeting=m=
. To show that Hello
is a type if greeting.
There is more, but too much to explain.
Just my cheap attempt on A.I.
Can this class as a program learning? Or have I got a long way to go?
2
Answers
As per definition of AI:- It’s the capacity to perform operations analogous to learning and decision making in humans.
Your program do seems to learn the new words and make decision on what type of word it is i.e. Hello, Hi –>Greeting
But more than learning, how you control its learning will be AI. For example if I use a bad word for greeting, it should not learn it. Controlled learning and decision-making do make your program a true AI program.
You have actually started to learn AI. And this what you do is called giving
ground terms
manually for the machine. But AI is something that the system learns by itself. For example, now you have taught thathi
is a way of greeting, if some other user greets it, it must greet him too. And yes you will be writing logic for that too. You cannot fully achieve AI such that the computer learns itself without writing any logic for it (only fictional characters likeJarvis
can do so).To be frank I am not deep into
machine learning
and AI. But to my perception, I think some sort of implementation which involves human like thinking would be better. For example, try to implement achess
game. In that you haveback tracking
. You can get a better understanding. Properties of each coin and their power is what you give asground terms
(base knowledge). And based on the moves of User, system must analyze future moves and predict user’s view andbacktrack
to make its move.Not sure whether I answered your question, but you seem to be doing cool stuff, thumbs up for you, move on and develop cool and small scale AI systems first which involves lot of
computation
andAlgorithm
stuffs.