Art Gladstone : I created a new C# version that I tested for 2 months. Once again, her algorithm is far different. No more linear database, the database looks like a neural structure with hundreds of words poiting toward other words in all directions, just like a real brain. Here is how works this algorithm with a simple example :
For example, with several sentences like this :
“snow is white”
“snow happens in winter”
“white is a color”
“blue is a color”
“red is a color”
“winter is a season”
“summer is a season”
, You have in database
snow -> 0.000000 white, winter -> snow is white, snow happens in winter
white -> 0.000000 snow, color -> snow is white, white is a color
color -> 0.000000 white, blue -> white is a color, blue is a color
winter -> 0.000000 snow,season -> snow happens in winter, winter is a season
summer -> 0.000000 season -> summer is a season
if you ask “What’s snow color?”, database becomes :
snow -> -1.000000 white, winter -> snow is white, snow happens in winter
white -> 0.833333 snow, color -> snow is white, white is a color
blue -> 0.333333 color -> blue is a color
red -> 0.333333 color -> red is a color
color -> -1.000000 white, blue -> white is a color, blue is a color
winter -> 0.500000 snow,season -> snow happens in winter, winter is a season
summer -> 0.000000 season -> summer is a season
list of maximum sentences (keywords snow and color are put at -1 to avoid “turn aroud question”
0.83333 is the maximum because 0.5+0.3333=0.83333333
then
“snow is white” -> abs(snow)+abs(white)= 1.833333
“snow happens in winter” -> abs(snow)+abs(winter)= 1 + 0.5 = 1.5
Maximum is 1.833333, answer is
“snow is white”
More over, at each question asked, “neurones” values are divided by 10 instead of beeing reset to 0 in order to preserve the context, and by context, I mean very complex context!
Meaning that you have something looking more like a real chat without any “tips” to guide the algorithm. All is very fluid, without any# artificial intervention detecting specific words like “his” or “her”, which are actually unefficient :
USER : What’s snow color?
HARUMI : snow is white.
USER : in what season?
HARUMI : snow happens in winter.
My personnal algorithm has several hundreds of words and seems to behave quite well and fast despite its complexity. Note that Levenshtein algorithm is implemented to handle syntax errors.
This new version looks more simple at first sight because all options like chess game, visual recognitions… are not available. I now work at 99% on language algorithms.
Note that another version of Harumi C# exists, with an algorithm which is a mix between neural structure and linear structure. The full neural version is far more powerfull but its structure is almost unreadable while the mix version looks a lot like former version of Harumi. I still don’t know if I’ll release the semi-linear and neural versions of Harumi or only one.
The only thing for certain is that Delphi version of Harumi with Open Office will not be developped any more (too slow, infinite pop up crash on many computers, linear database structure…)