OrderedCover fullOrderedCoverFromCorpus(Corpus const& corpus) { std::map<std::string, OrderedDocCover> _map; for (auto i=corpus.begin() ; i!=corpus.end() ; ++i) { _map.insert(_map.end(), {i->first, fullOrderedDocCoverFromDoc(i->second)}); } return OrderedCover(_map); }
void writeCorpusToStream(std::ostream& os, Corpus const& corpus) { for (auto i=corpus.begin() ; i!=corpus.end() ; ++i) { if (i!=corpus.begin()) { os << std::endl; } os << i->first << std::endl; writeDocToStream(os, i->second, i->first); } }
Corpus corpusSample(Corpus const& corpus, std::vector<std::string> const& docIds) throw(std::runtime_error) { Corpus _sample; for (auto i=docIds.begin() ; i!=docIds.end() ; ++i) { auto j = corpus.find(*i); if (j == corpus.end()) { throw std::runtime_error(ERR_DOCUMENT_NOT_FOUND); } else { _sample[*i] = j->second; } } return _sample; }
Corpus readCorpusFromStream(std::istream& is) { Corpus corpus; std::string docName; Document doc; doc = readDocFromStream(is, docName); while (!is.eof() && !is.fail()) { corpus[docName] = doc; doc = readDocFromStream(is, docName); } if (corpus.find(docName) == corpus.end()) { corpus[docName] = doc; } return corpus; }