-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathmain.cpp
More file actions
68 lines (52 loc) · 2.71 KB
/
main.cpp
File metadata and controls
68 lines (52 loc) · 2.71 KB
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
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
#include "include/Tokenizer.h"
#include "./include/relevanceProcessor.h"
#include "./tools/setup.h"
#include <iostream>
int main() {
setupUTF();
// Пример строки с лишними пробелами и стоп-словами
std::string input = " Это пример строки, которая содержит лишние пробелы и стоп-слова! ";
Tokenizer::removeSpecialCharacters(input);
std::cout << "Строка после удаления специальных символов: \"" << input << "\"" << std::endl;
// Удаляем лишние пробелы
Tokenizer::removeExtraSpaces(input);
std::cout << "Строка после удаления лишних пробелов: \"" << input << "\"" << std::endl;
// Токенизируем строку
std::vector<std::string> tokens = Tokenizer::tokenize(input);
std::cout << "Токены: ";
for (const auto &token: tokens) {
std::cout << "\"" << token << "\" ";
}
std::cout << std::endl;
// Удаляем стоп-слова
Tokenizer tokenizer;
std::vector<std::string> filteredTokens = tokenizer.removeStopWords(tokens);
std::cout << "Токены после удаления стоп-слов: ";
for (const auto &token: filteredTokens) {
std::cout << "\"" << token << "\" ";
}
std::cout << std::endl;
// Преобразуем токены обратно в строку
const std::string result = Tokenizer::tokenizedToString(filteredTokens);
std::cout << "Строка после обработки: \"" << result << "\"" << std::endl;
// Искомая информация
const std::string seekedInfo = "machine learning";
// Создаем объект RelevanceProcessor
RelevanceProcessor processor(seekedInfo);
// Список документов для сравнения
std::vector<std::string> documents = {
"machine learning is a subset of artificial intelligence",
"artificial intelligence and machine learning are closely related",
"deep learning is a subset of machine learning",
"machine learning algorithms are used in various applications",
"artificial intelligence is the future of technology"
};
// Вычисляем релевантность для каждого документа
processor.calculate_relevance(documents);
// Выводим результаты релевантности
for (const auto &doc: documents) {
const float relevance = processor.get_relevance(doc);
std::cout << "Document: \"" << doc << "\" has relevance: " << relevance << std::endl;
}
return 0;
}