NAME
AI::FreeHAL::Engine - Engine of FreeHAL, a self-learning conversation simulator which uses semantic nets to organize its knowledge.
SYNOPSIS
runner.pl shell
DESCRIPTION
FreeHAL is a self-learning conversation simulator which uses semantic nets to organize its knowledge.
FreeHAL uses a semantic network, pattern matching, stemmers, part of speech databases, part of speech taggers, and Hidden Markov Models, in order to imitate a very close human behavior within conversations. Online- as Download-Versions are supporting the synthesing of the speech. Through communicating (via keyboard) the program enhances his knowledge-database. It supports the languages German and English.
In opposite to the most free and commercial chatbots FreeHAL learns self-reliant conception of causal relations on its own.
FreeHAL runs on Microsoft Windows, GNU/Linux, Unix, BSD and Mac and is licensed under the GNU GPL v3.
This package contains:
FUNCTIONS
build_builtin_table($language)
Returns a hash reference containing word <-> part of speech pairs.
$language is a language string, e.g. "en" or "de".
get_verb_conjugation_table()
Returns an array containing arrays of two words, e.g.:
[
[ 'am', 'are' ]
]
is_verbose()
Returns a boolean whether FreeHAL should be verbose.
get_client_response( $CLIENT_ref )
Returns the next line sent from socket reference $CLIENT_ref.
load_pos()
Detect part of speech files (lang_XY/*.{brain,memory}) and load them.
ascii($sent)
Returns $sent without non-ascii characters.
try_use_lowlatency_mode()
Returns nothing.
First it checks whether low-latency mode is enabled. If success, $data->{abilities}->{'tagger'} is set to 2 and part-of-speech files are loaded.
is_name($name)
Checks whether $name is a name. A boolean will be returned.
split_sentence($CLIENT_ref, $text)
$text will be parsed using two parsers:
- Parse::RecDescend
-
First FreeHAL tries to parse $text using a parser built with Parse::RecDescend. A generic grammer for english and german is used.
- Traditional Parser
-
This parser is used by FreeHAL since Spring 2008. It can parse every sentence, but has also some bugs. That's why we try to replace it with a new one in future.