43 lines
1.8 KiB
C++
43 lines
1.8 KiB
C++
#ifndef TOKEN_H
|
||
#define TOKEN_H
|
||
|
||
#include <string>
|
||
#include <vector>
|
||
#include <map>
|
||
|
||
class Tokenizer {
|
||
public:
|
||
std::map<std::string, int> wordToId;
|
||
std::map<int, std::string> idToWord;
|
||
|
||
Tokenizer() {
|
||
add("<EOS>"); add("[SYS]"); add("[USER]"); add("[AI]"); add(" "); add("\n");
|
||
add("."); add(","); add("!"); add("?"); add(":"); add(";"); add("-"); add("\""); add("("); add(")");
|
||
add("а"); add("б"); add("в"); add("г"); add("д"); add("е"); add("ё"); add("ж");
|
||
add("з"); add("и"); add("й"); add("к"); add("л"); add("м"); add("н"); add("о");
|
||
add("п"); add("р"); add("с"); add("т"); add("у"); add("ф"); add("х"); add("ц");
|
||
add("ч"); add("ш"); add("щ"); add("ъ"); add("ы"); add("ь"); add("э"); add("ю"); add("я");
|
||
add("и"); add("в"); add("не"); add("на"); add("я"); add("что"); add("тот"); add("быть");
|
||
add("с"); add("а"); add("весь"); add("это"); add("как"); add("она"); add("по"); add("но");
|
||
add("они"); add("к"); add("у"); add("ты"); add("из"); add("мы"); add("за"); add("вы");
|
||
add("привет"); add("дела"); add("робот"); add("хорошо"); add("спасибо");
|
||
add("да"); add("нет"); add("могу"); add("помочь"); add("знаю"); add("кто");
|
||
add("где"); add("когда"); add("почему"); add("хочу"); add("очень");
|
||
add("тебя"); add("зовут"); add("BiPy");
|
||
}
|
||
|
||
|
||
void add(std::string word);
|
||
int getID(std::string word);
|
||
std::string getWord(int id);
|
||
std::vector<int> textToTokens(const std::string& text);
|
||
};
|
||
|
||
class Embedder {
|
||
public:
|
||
std::vector<std::vector<double>> matrix;
|
||
Embedder(int vSize, int dim);
|
||
std::vector<double> get(int id);
|
||
};
|
||
|
||
#endif |