Advertisement
Guest User

Untitled

a guest
Apr 27th, 2015
195
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.43 KB | None | 0 0
  1. map<string, size_t> WordCount(string FileName, news & News) {
  2.     istringstream ist(News.info);                               // Вычленяет из строки слово
  3.     map<string, size_t> wCount;                                 // Ассоциативный массив для подсчёта слов
  4.     set<string> exclude = {
  5.         //English
  6.         "THE", "the", "The", "But", "BUT", "but", "And", "AND", "and", "if", "IF", "If", "else", "Else", "ELSE", "of", "OF", "Of", "Is", "IS", "is", "AS", "As", "as",
  7.         "When", "WHEN", "when", "that", "THAT", "That", "a", "A", "ARE", "are", "Are", "to", "TO", "To", "for", "FOR", "For",
  8.         //and so on
  9.         //Символы
  10.         "!", "?", ",", ".", ":", ";", "*", "-"
  11.         //Русский
  12.         "И", "и", "за", "За", "При", "при", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "",
  13.     };
  14.     while (ist >> News.info) {
  15.             if (exclude.find(News.info) == exclude.end())
  16.                 ++wCount[News.info];
  17.     }
  18.     return wCount;
  19. }
  20.  
  21.  
  22. void CopyToVec(std::string FileName)
  23. {  
  24.     std::fstream InputFile(FileName); // Создание переменной и открытие файла через фстрим
  25.     if (InputFile.is_open()){
  26.         vector<news> VecNews; // Создание вектора новостей
  27.         news News;
  28.         int k = 0;
  29.         vector <map<string, size_t>> VecMap;
  30.         while (k++<10 && !InputFile.eof())
  31.         {
  32.             getline(InputFile, News.title);
  33.  
  34.             if (News.title.empty() || News.title[0] == ' ' || News.title.size() == 0 || News.title == "")
  35.             {
  36.                 continue;
  37.             }
  38.             cout << News.title[0] << endl;
  39.             getline(InputFile, News.data);
  40.             cout << News.data[0] << endl;
  41.             getline(InputFile, News.info);
  42.             cout << News.info[0] << endl;
  43.  
  44.             VecMap.push_back(WordCount(FileName, News));
  45.             if (VecMap[VecMap.size() - 1].size() == 0)
  46.                 cout << "Achtung!" << News.title << "-" << News.data <<"-" << News.info << "-" << endl;
  47.  
  48.             VecNews.push_back(News);
  49.  
  50.         }
  51.        
  52.        
  53.         int VecResult=0;
  54.  
  55.         vector < vector <double> > VecCos(VecMap.size() - 1);
  56.         for (int ivec = 0; ivec < VecMap.size() - 1; ++ivec) {
  57.             VecCos[ivec].resize(VecMap.size());
  58.             for (int jvec = ivec + 1; jvec < VecMap.size(); ++jvec)
  59.                 VecCos[ivec][jvec] = CosСompare(VecMap, VecResult, ivec, jvec);
  60.         }
  61.         for (int ivec = 0; ivec < VecMap.size() - 1; ++ivec) {
  62.             for (int jvec = ivec + 1; jvec < VecMap.size(); ++jvec)
  63.                 cout << VecCos[ivec][jvec];
  64.  
  65.         }
  66.     }
  67.     else
  68.         std::cout << "Unable to open file.";
  69.     InputFile.close();
  70. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement