From eff8d45267d3a13ee2b46202df5ed74cf1c516b3 Mon Sep 17 00:00:00 2001 From: wyy Date: Mon, 10 Feb 2014 11:16:24 +0800 Subject: [PATCH] fix bug: cmp function pair -> pair --- src/KeywordExtractor.hpp | 1 + test/unittest/TKeywordExtractor.cpp | 45 ++--------------------------- 2 files changed, 3 insertions(+), 43 deletions(-) diff --git a/src/KeywordExtractor.hpp b/src/KeywordExtractor.hpp index d962502..228df79 100644 --- a/src/KeywordExtractor.hpp +++ b/src/KeywordExtractor.hpp @@ -142,6 +142,7 @@ namespace CppJieba std::copy(wordmap.begin(), wordmap.end(), std::inserter(keywords, keywords.begin())); topN = MIN(topN, keywords.size()); partial_sort(keywords.begin(), keywords.begin() + topN, keywords.end(), _cmp); + keywords.resize(topN); return true; } private: diff --git a/test/unittest/TKeywordExtractor.cpp b/test/unittest/TKeywordExtractor.cpp index 9a2b586..3b9c184 100644 --- a/test/unittest/TKeywordExtractor.cpp +++ b/test/unittest/TKeywordExtractor.cpp @@ -3,49 +3,9 @@ using namespace CppJieba; -const char* KEYWORD_EXT_TEST_SENTENCE = "我来自北京邮电大学。 学号123456"; + TEST(KeywordExtractorTest, Test1) -{ - KeywordExtractor extractor("../dict/jieba.dict.utf8", "../dict/hmm_model.utf8", "../dict/idf.utf8"); - const char* res[] = {"学号", "北京邮电大学"}; - vector words; - ASSERT_TRUE(extractor); - ASSERT_TRUE(extractor.extract(KEYWORD_EXT_TEST_SENTENCE, words, 2)); - ASSERT_EQ(words, vector(res, res + sizeof(res)/sizeof(res[0]))); -} - -TEST(KeywordExtractorTest, Test2) -{ - KeywordExtractor extractor("../dict/jieba.dict.utf8", "../dict/hmm_model.utf8", "../dict/idf.utf8"); - const char* res[] = {"学号", "北京邮电大学", "123456", "来自"}; - vector words; - ASSERT_TRUE(extractor); - ASSERT_TRUE(extractor.extract(KEYWORD_EXT_TEST_SENTENCE, words, 9)); - ASSERT_EQ(words, vector(res, res + sizeof(res)/sizeof(res[0]))); -} - - -TEST(KeywordExtractorTest, Test3) -{ - ifstream ifs("../test/testdata/weicheng.utf8"); - ASSERT_TRUE(!!ifs); - string str((istreambuf_iterator(ifs)), (istreambuf_iterator())); - KeywordExtractor extractor("../dict/jieba.dict.utf8", "../dict/hmm_model.utf8", "../dict/idf.utf8"); - const char* res[] = {"柔嘉", "小姐", "孙小姐", "方鸿渐", "鸿渐"}; - const char* res2 = "[\"柔嘉:5611.34\", \"小姐:4268.75\", \"孙小姐:3789.41\", \"方鸿渐:3030.35\", \"鸿渐:2552.93\"]"; - vector keywords; - string resStr; - vector > keywords2; - extractor.extract(str, keywords, 5); - extractor.extract(str, keywords2, 5); - ASSERT_EQ(keywords, vector(res, res + sizeof(res)/sizeof(res[0]))); - resStr << keywords2; - ASSERT_EQ(res2, resStr); - -} - -TEST(KeywordExtractorTest, Test4) { KeywordExtractor extractor("../dict/jieba.dict.utf8", "../dict/hmm_model.utf8", "../dict/idf.utf8"); string s("我是蓝翔技工拖拉机学院手扶拖拉机专业的。不用多久,我就会升职加薪,当上总经理,出任CEO,迎娶白富美,走上人生巅峰。"); @@ -54,6 +14,5 @@ TEST(KeywordExtractorTest, Test4) size_t topN = 5; extractor.extract(s, wordweights, topN); res << wordweights; - print(res); - ASSERT_EQ(res, "[\"CEO:11.7392\", \"白富美:11.7392\", \"蓝翔:11.7392\", \"迎娶:10.0505\", \"加薪:10.6426\"]"); + ASSERT_EQ(res, "[\"CEO:11.7392\", \"蓝翔:11.7392\", \"白富美:11.7392\", \"升职:10.8562\", \"加薪:10.6426\"]"); }