presage
0.8.8
|
Tracks user interaction and context. More...
#include <contextTracker.h>
Public Member Functions | |
ContextTracker (Configuration *config, PredictorRegistry *predictorRegistry, PresageCallback *callback, const char[]=DEFAULT_WORD_CHARS, const char[]=DEFAULT_SEPARATOR_CHARS, const char[]=DEFAULT_BLANKSPACE_CHARS, const char[]=DEFAULT_CONTROL_CHARS) | |
~ContextTracker () | |
const PresageCallback * | callback (const PresageCallback *callback) |
bool | contextChange () |
std::string | getPrefix () const |
std::string | getToken (const int) const |
std::string | getExtraTokenToLearn (const int index, const std::vector< std::string > &change) const |
std::string | getFutureStream () const |
std::string | getPastStream () const |
bool | isCompletionValid (const std::string &) const |
std::string | getWordChars () const |
std::string | getSeparatorChars () const |
std::string | getBlankspaceChars () const |
std::string | getControlChars () const |
std::string | toString () const |
void | update () |
virtual void | update (const Observable *variable) |
void | set_logger (const std::string &value) |
void | set_sliding_window_size (const std::string &value) |
void | set_lowercase_mode (const std::string &value) |
![]() | |
virtual | ~Observer () |
Static Public Attributes | |
static const char * | LOGGER = "Presage.ContextTracker.LOGGER" |
static const char * | SLIDING_WINDOW_SIZE = "Presage.ContextTracker.SLIDING_WINDOW_SIZE" |
static const char * | LOWERCASE_MODE = "Presage.ContextTracker.LOWERCASE_MODE" |
Private Member Functions | |
bool | isWordChar (const char) const |
bool | isSeparatorChar (const char) const |
bool | isControlChar (const char) const |
bool | isBlankspaceChar (const char) const |
Private Attributes | |
std::string | wordChars |
std::string | separatorChars |
std::string | blankspaceChars |
std::string | controlChars |
bool | lowercase_mode |
const PresageCallback * | context_tracker_callback |
PredictorRegistry * | predictorRegistry |
ContextChangeDetector * | contextChangeDetector |
Logger< char > | logger |
Dispatcher< ContextTracker > | dispatcher |
Additional Inherited Members | |
![]() | |
Observer () | |
Tracks user interaction and context.
ContextTracker job is to track the history of user input and track context changes.
History is the sequence of characters input by the user. Context is defined by the token the system is attempting to predict. Context changes occur when certain characters are input.
Tracking user input history and context changes can be trickier than one would think. To ease this operation, characters are classified into these categories:
word characters blankspace characters separator characters control characters
Word characters become part of the current prefix. Word characters do not trigger a change in context.
Blankspace and separator characters trigger a context change and mark the end of the current prediction token.
Control characters are non-printable characters such up, down, left, right arrows and function keys.
Use-cases:
Full sentence: Yesterday I went to the market to buy an apple.
History:Yesterday I went to the| wi-2 "went" wi-1 "to" prefix "" postfix ""
: 'SPC' (space) History:Yesterday I went to the| wi-2 "to" wi-1 "the" prefix "" postfix ""
: 'm' History:Yesterday I went to the m| wi-2 "to" wi-1 "the" prefix "m" postfix ""
: 'a' History:Yesterday I went to the ma| wi-2 "to" wi-1 "the" prefix "ma" postfix ""
: 'rket' History:Yesterday I went to the market| wi-2 "to" wi-1 "the" prefix "market" postfix ""
: 'SPC' History:Yesterday I went to the market | wi-2 "the" wi-1 "market" prefix "" postfix ""
: 't' History:Yesterday I went to the market t| wi-2 "the" wi-1 "market" prefix "t" postfix ""
: 'LEFT_ARROW' History:Yesterday I went to the market |t wi-2 "the" wi-1 "market" prefix "" postfix ""
: 'LEFT_ARROW' History:Yesterday I went to the market| t wi-2 "to" wi-1 "the" prefix "market" postfix ""
: 's' History:Yesterday I went to the markets| t wi-2 "to" wi-1 "the" prefix "markets" postfix ""
Definition at line 155 of file contextTracker.h.
ContextTracker::ContextTracker | ( | Configuration * | config, |
PredictorRegistry * | predictorRegistry, | ||
PresageCallback * | callback, | ||
const char | wChars[] = DEFAULT_WORD_CHARS , |
||
const char | tChars[] = DEFAULT_SEPARATOR_CHARS , |
||
const char | bChars[] = DEFAULT_BLANKSPACE_CHARS , |
||
const char | cChars[] = DEFAULT_CONTROL_CHARS |
||
) |
Definition at line 36 of file contextTracker.cpp.
References blankspaceChars, callback(), context_tracker_callback, contextChangeDetector, controlChars, dispatcher, Configuration::find(), LOGGER, LOWERCASE_MODE, lowercase_mode, Dispatcher< class_t >::map(), predictorRegistry, PRESAGE_INVALID_CALLBACK_ERROR, separatorChars, set_logger(), set_lowercase_mode(), set_sliding_window_size(), PredictorRegistry::setContextTracker(), SLIDING_WINDOW_SIZE, and wordChars.
ContextTracker::~ContextTracker | ( | ) |
Definition at line 78 of file contextTracker.cpp.
References contextChangeDetector.
const PresageCallback * ContextTracker::callback | ( | const PresageCallback * | callback) |
Definition at line 101 of file contextTracker.cpp.
References context_tracker_callback.
Referenced by ContextTracker().
bool ContextTracker::contextChange | ( | ) |
Returns true if a context change occured.
Definition at line 113 of file contextTracker.cpp.
References ContextChangeDetector::context_change(), contextChangeDetector, and getPastStream().
Referenced by Presage::context_change(), Selector::select(), and Selector::update().
std::string ContextTracker::getBlankspaceChars | ( | ) | const |
Definition at line 309 of file contextTracker.cpp.
References blankspaceChars.
std::string ContextTracker::getControlChars | ( | ) | const |
Definition at line 314 of file contextTracker.cpp.
References controlChars.
std::string ContextTracker::getExtraTokenToLearn | ( | const int | index, |
const std::vector< std::string > & | change | ||
) | const |
Definition at line 214 of file contextTracker.cpp.
References getToken().
Referenced by SmoothedNgramPredictor::learn().
std::string ContextTracker::getFutureStream | ( | ) | const |
Definition at line 243 of file contextTracker.cpp.
References context_tracker_callback, and PresageCallback::get_future_stream().
std::string ContextTracker::getPastStream | ( | ) | const |
Definition at line 248 of file contextTracker.cpp.
References context_tracker_callback, and PresageCallback::get_past_stream().
Referenced by Presage::context(), contextChange(), and update().
std::string ContextTracker::getPrefix | ( | ) | const |
Definition at line 169 of file contextTracker.cpp.
References getToken().
Referenced by isCompletionValid(), DictionaryPredictor::predict(), DejavuPredictor::predict(), AbbreviationExpansionPredictor::predict(), RecencyPredictor::predict(), Presage::prefix(), Selector::Selector(), and Selector::thresholdFilter().
std::string ContextTracker::getSeparatorChars | ( | ) | const |
Definition at line 304 of file contextTracker.cpp.
References separatorChars.
std::string ContextTracker::getToken | ( | const int | index) | const |
Definition at line 174 of file contextTracker.cpp.
References blankspaceChars, context_tracker_callback, PresageCallback::get_past_stream(), lowercase_mode, and separatorChars.
Referenced by getExtraTokenToLearn(), getPrefix(), DejavuPredictor::init_memory_trigger(), PredictorActivator::parse_internal_commands(), SmoothedNgramPredictor::predict(), RecencyPredictor::predict(), and ARPAPredictor::predict().
std::string ContextTracker::getWordChars | ( | ) | const |
Definition at line 299 of file contextTracker.cpp.
References wordChars.
|
private |
Definition at line 283 of file contextTracker.cpp.
References blankspaceChars.
bool ContextTracker::isCompletionValid | ( | const std::string & | completion) | const |
Definition at line 254 of file contextTracker.cpp.
References getPrefix(), and Utility::strtolower().
|
private |
Definition at line 291 of file contextTracker.cpp.
References controlChars.
|
private |
Definition at line 275 of file contextTracker.cpp.
References separatorChars.
|
private |
Definition at line 267 of file contextTracker.cpp.
References wordChars.
void ContextTracker::set_logger | ( | const std::string & | value) |
Definition at line 83 of file contextTracker.cpp.
References endl(), logger, and setlevel().
Referenced by ContextTracker().
void ContextTracker::set_lowercase_mode | ( | const std::string & | value) |
Definition at line 95 of file contextTracker.cpp.
References endl(), Utility::isYes(), logger, and lowercase_mode.
Referenced by ContextTracker().
void ContextTracker::set_sliding_window_size | ( | const std::string & | value) |
Definition at line 89 of file contextTracker.cpp.
References contextChangeDetector, endl(), logger, and ContextChangeDetector::set_sliding_window_size().
Referenced by ContextTracker().
std::string ContextTracker::toString | ( | ) | const |
Definition at line 319 of file contextTracker.cpp.
References context_tracker_callback, PresageCallback::get_future_stream(), and PresageCallback::get_past_stream().
void ContextTracker::update | ( | ) |
Definition at line 118 of file contextTracker.cpp.
References blankspaceChars, ContextChangeDetector::change(), contextChangeDetector, endl(), getPastStream(), ForwardTokenizer::hasMoreTokens(), PredictorRegistry::Iterator::hasNext(), PredictorRegistry::iterator(), Predictor::learn(), logger, lowercase_mode, Tokenizer::lowercaseMode(), PredictorRegistry::Iterator::next(), ForwardTokenizer::nextToken(), predictorRegistry, separatorChars, and ContextChangeDetector::update_sliding_window().
Referenced by Presage::predict().
|
virtual |
Implements Observer.
Definition at line 324 of file contextTracker.cpp.
References Dispatcher< class_t >::dispatch(), dispatcher, endl(), Observable::get_name(), Observable::get_value(), and logger.
|
private |
Definition at line 204 of file contextTracker.h.
Referenced by ContextTracker(), getBlankspaceChars(), getToken(), isBlankspaceChar(), and update().
|
private |
Definition at line 219 of file contextTracker.h.
Referenced by callback(), ContextTracker(), getFutureStream(), getPastStream(), getToken(), and toString().
|
private |
Definition at line 221 of file contextTracker.h.
Referenced by contextChange(), ContextTracker(), set_sliding_window_size(), update(), and ~ContextTracker().
|
private |
Definition at line 205 of file contextTracker.h.
Referenced by ContextTracker(), getControlChars(), and isControlChar().
|
private |
Definition at line 224 of file contextTracker.h.
Referenced by ContextTracker(), and update().
|
static |
Definition at line 197 of file contextTracker.h.
Referenced by ContextTracker().
|
private |
Definition at line 222 of file contextTracker.h.
Referenced by set_logger(), set_lowercase_mode(), set_sliding_window_size(), and update().
|
static |
Definition at line 199 of file contextTracker.h.
Referenced by ContextTracker().
|
private |
Definition at line 207 of file contextTracker.h.
Referenced by ContextTracker(), getToken(), set_lowercase_mode(), and update().
|
private |
Definition at line 220 of file contextTracker.h.
Referenced by ContextTracker(), and update().
|
private |
Definition at line 203 of file contextTracker.h.
Referenced by ContextTracker(), getSeparatorChars(), getToken(), isSeparatorChar(), and update().
|
static |
Definition at line 198 of file contextTracker.h.
Referenced by ContextTracker().
|
private |
Definition at line 202 of file contextTracker.h.
Referenced by ContextTracker(), getWordChars(), and isWordChar().