hange the return value of KeywordExtractor::Extract from bool to void

This commit is contained in:
yanyiwu 2016-03-26 01:16:44 +08:00
parent 5102b8a5c3
commit e6a2b47b87
3 changed files with 9 additions and 8 deletions

View File

@ -1,5 +1,10 @@
# CppJieba ChangeLog # CppJieba ChangeLog
## next version
+ Change Jieba::Locate to be static function.
+ Change the return value of KeywordExtractor::Extract from bool to void.
## v4.5.3 ## v4.5.3
+ Upgrade limonp to v0.6.0 + Upgrade limonp to v0.6.0

View File

@ -38,18 +38,15 @@ class KeywordExtractor {
~KeywordExtractor() { ~KeywordExtractor() {
} }
bool Extract(const string& sentence, vector<string>& keywords, size_t topN) const { void Extract(const string& sentence, vector<string>& keywords, size_t topN) const {
vector<pair<string, double> > topWords; vector<pair<string, double> > topWords;
if (!Extract(sentence, topWords, topN)) { Extract(sentence, topWords, topN);
return false;
}
for (size_t i = 0; i < topWords.size(); i++) { for (size_t i = 0; i < topWords.size(); i++) {
keywords.push_back(topWords[i].first); keywords.push_back(topWords[i].first);
} }
return true;
} }
bool Extract(const string& sentence, vector<pair<string, double> >& keywords, size_t topN) const { void Extract(const string& sentence, vector<pair<string, double> >& keywords, size_t topN) const {
vector<string> words; vector<string> words;
segment_.Cut(sentence, words); segment_.Cut(sentence, words);
@ -81,7 +78,6 @@ class KeywordExtractor {
topN = min(topN, keywords.size()); topN = min(topN, keywords.size());
partial_sort(keywords.begin(), keywords.begin() + topN, keywords.end(), Compare); partial_sort(keywords.begin(), keywords.begin() + topN, keywords.end(), Compare);
keywords.resize(topN); keywords.resize(topN);
return true;
} }
private: private:
void LoadIdfDict(const string& idfPath) { void LoadIdfDict(const string& idfPath) {

View File

@ -43,7 +43,7 @@ int main(int argc, char** argv) {
cout << "[demo] Locate Words" << endl; cout << "[demo] Locate Words" << endl;
vector<cppjieba::Jieba::LocWord> loc_words; vector<cppjieba::Jieba::LocWord> loc_words;
jieba.Cut("南京市长江大桥", words, true); jieba.Cut("南京市长江大桥", words, true);
jieba.Locate(words, loc_words); cppjieba::Jieba::Locate(words, loc_words);
for (size_t i = 0; i < loc_words.size(); i++) { for (size_t i = 0; i < loc_words.size(); i++) {
cout << loc_words[i].word cout << loc_words[i].word
<< ", " << loc_words[i].begin << ", " << loc_words[i].begin