6 #ifndef _FCITX_LIBIME_CORE_USERLANGUAGEMODEL_H_ 7 #define _FCITX_LIBIME_CORE_USERLANGUAGEMODEL_H_ 13 #include <string_view> 15 #include <fcitx-utils/macros.h> 16 #include <libime/core/historybigram.h> 17 #include <libime/core/languagemodel.h> 18 #include <libime/core/libimecore_export.h> 22 class UserLanguageModelPrivate;
30 std::shared_ptr<const StaticLanguageModelFile> file =
nullptr);
35 void load(std::istream &in);
36 void save(std::ostream &out);
38 void setHistoryWeight(
float w);
39 float historyWeight()
const;
41 void setUseOnlyUnigram(
bool useOnlyUnigram);
42 bool useOnlyUnigram()
const;
44 const State &beginState()
const override;
45 const State &nullState()
const override;
46 float score(
const State &state,
const WordNode &word,
47 State &out)
const override;
48 bool isUnknown(WordIndex idx, std::string_view view)
const override;
50 bool containsNonUnigram(
const std::vector<std::string> &words)
const;
52 void setCodeExtractor(ValidationCodeExtractor extractor);
55 std::unique_ptr<UserLanguageModelPrivate> d_ptr;
60 #endif // _FCITX_LIBIME_CORE_USERLANGUAGEMODEL_H_