1Kabman1
Feb 26th, 2023
59
0
Never
This is comment for paste задача 3
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1.     template<typename ConditionFind>
  2.     vector<Document> FindAllDocuments(const Query& query, DocumentStatus status, const ConditionFind& data  ) const {
  3.         map<int, double> document_to_relevance;
  4.         for (const string& word : query.plus_words) {
  5.             if (word_to_document_freqs_.count(word) == 0) {
  6.                 continue;
  7.             }
  8.             const double inverse_document_freq = ComputeWordInverseDocumentFreq(word);
  9.             for (const auto [document_id, term_freq] : word_to_document_freqs_.at(word)) {
  10.                // if (documents_.at(document_id).status == status) {
  11.                     document_to_relevance[document_id] += term_freq * inverse_document_freq;
  12.              //   }
  13.             }
  14.         }
  15.  
  16.         for (const string& word : query.minus_words) {
  17.             if (word_to_document_freqs_.count(word) == 0) {
  18.                 continue;
  19.             }
  20.             for (const auto [document_id, _] : word_to_document_freqs_.at(word)) {
  21.                 document_to_relevance.erase(document_id);
  22.             }
  23.         }
  24.  
  25.  
  26.         vector<Document> matched_documents;
  27.         for (const auto [document_id, relevance] : document_to_relevance) {
  28.             if( data (document_id, documents_.at(document_id).status, documents_.at(document_id).rating)) {
  29.                 matched_documents.push_back(
  30.                         {document_id, relevance, documents_.at(document_id).rating});
  31.             }
  32.  
  33.         }
  34.         return matched_documents;
  35.     }
  36. };
Advertisement
Add Comment
Please, Sign In to add comment