Пример #1
0
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;
}
Пример #2
0
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;
}