znsoft
2023-04-22 6bb021d2b143a58ece3a005af3a1135b0cdac4f2
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
#pragma once
 
class CRpTokenizer {
private:
 
    bool  m_Ready = false;
 
    vector<string>   m_ID2Token,m_ID2Punc;
    map<string, int>  m_Token2ID,m_Punc2ID;
 
 
public:
 
    CRpTokenizer(const char* szYmlFile);
 
    CRpTokenizer();
 
    bool OpenYaml(const char* szYmlFile);
 
    void read_yml(const YAML::Node& node);
 
    vector<string> ID2String(vector<int> Input);
    vector<int> String2IDs(vector<string> Input);
    int String2ID(string Input);
 
    vector<string> ID2Punc(vector<int> Input);
 
    string ID2Punc(int nPuncID);
    vector<int> Punc2IDs(vector<string> Input);
 
    vector<string> SplitChineseString(const string& strInfo);
 
    void strSplit(const string& str, const char split, vector<string>& res);
 
    void Tokenize(const char* strInfo, vector<string>& strOut, vector<int>& IDOut);
 
};