Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- map<string, size_t> WordCount(string FileName, news & News) {
- istringstream ist(News.info); // Вычленяет из строки слово
- map<string, size_t> wCount; // Ассоциативный массив для подсчёта слов
- set<string> exclude = {
- //English
- "THE", "the", "The", "But", "BUT", "but", "And", "AND", "and", "if", "IF", "If", "else", "Else", "ELSE", "of", "OF", "Of", "Is", "IS", "is", "AS", "As", "as",
- "When", "WHEN", "when", "that", "THAT", "That", "a", "A", "ARE", "are", "Are", "to", "TO", "To", "for", "FOR", "For",
- //and so on
- //Символы
- "!", "?", ",", ".", ":", ";", "*", "-"
- //Русский
- "И", "и", "за", "За", "При", "при", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "",
- };
- while (ist >> News.info) {
- if (exclude.find(News.info) == exclude.end())
- ++wCount[News.info];
- }
- return wCount;
- }
- void CopyToVec(std::string FileName)
- {
- std::fstream InputFile(FileName); // Создание переменной и открытие файла через фстрим
- if (InputFile.is_open()){
- vector<news> VecNews; // Создание вектора новостей
- news News;
- int k = 0;
- vector <map<string, size_t>> VecMap;
- while (k++<10 && !InputFile.eof())
- {
- getline(InputFile, News.title);
- if (News.title.empty() || News.title[0] == ' ' || News.title.size() == 0 || News.title == "")
- {
- continue;
- }
- cout << News.title[0] << endl;
- getline(InputFile, News.data);
- cout << News.data[0] << endl;
- getline(InputFile, News.info);
- cout << News.info[0] << endl;
- VecMap.push_back(WordCount(FileName, News));
- if (VecMap[VecMap.size() - 1].size() == 0)
- cout << "Achtung!" << News.title << "-" << News.data <<"-" << News.info << "-" << endl;
- VecNews.push_back(News);
- }
- int VecResult=0;
- vector < vector <double> > VecCos(VecMap.size() - 1);
- for (int ivec = 0; ivec < VecMap.size() - 1; ++ivec) {
- VecCos[ivec].resize(VecMap.size());
- for (int jvec = ivec + 1; jvec < VecMap.size(); ++jvec)
- VecCos[ivec][jvec] = CosСompare(VecMap, VecResult, ivec, jvec);
- }
- for (int ivec = 0; ivec < VecMap.size() - 1; ++ivec) {
- for (int jvec = ivec + 1; jvec < VecMap.size(); ++jvec)
- cout << VecCos[ivec][jvec];
- }
- }
- else
- std::cout << "Unable to open file.";
- InputFile.close();
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement