#pragma once #include "yaml-cpp/yaml.h" class CTokenizer { private: bool m_Ready = false; vector m_ID2Token,m_ID2Punc; map m_Token2ID,m_Punc2ID; public: CTokenizer(const char* szYmlFile); CTokenizer(); bool OpenYaml(const char* szYmlFile); void read_yml(const YAML::Node& node); vector ID2String(vector Input); vector String2IDs(vector Input); int String2ID(string Input); vector ID2Punc(vector Input); string ID2Punc(int nPuncID); vector Punc2IDs(vector Input); vector SplitChineseString(const string& strInfo); void strSplit(const string& str, const char split, vector& res); void Tokenize(const char* strInfo, vector& strOut, vector& IDOut); };