mirror of
https://github.com/yanyiwu/cppjieba.git
synced 2025-07-18 00:00:12 +08:00
change trie.find args
This commit is contained in:
parent
bfbd63f3e8
commit
a3e0db22e8
@ -61,7 +61,7 @@ namespace CppJieba
|
|||||||
for (Unicode::const_iterator uItr = begin; uItr != end; uItr++)
|
for (Unicode::const_iterator uItr = begin; uItr != end; uItr++)
|
||||||
{
|
{
|
||||||
//find word start from uItr
|
//find word start from uItr
|
||||||
if (_trie.find(uItr, end, 0, tRes))
|
if (_trie.find(uItr, end, tRes, 0))
|
||||||
{
|
{
|
||||||
for(DagType::const_iterator itr = tRes.begin(); itr != tRes.end(); itr++)
|
for(DagType::const_iterator itr = tRes.begin(); itr != tRes.end(); itr++)
|
||||||
//for (vector<pair<size_t, const TrieNodeInfo*> >::const_iterator itr = tRes.begin(); itr != tRes.end(); itr++)
|
//for (vector<pair<size_t, const TrieNodeInfo*> >::const_iterator itr = tRes.begin(); itr != tRes.end(); itr++)
|
||||||
|
@ -122,7 +122,7 @@ namespace CppJieba
|
|||||||
{
|
{
|
||||||
SegmentChar schar(*it);
|
SegmentChar schar(*it);
|
||||||
size_t i = it - begin;
|
size_t i = it - begin;
|
||||||
_trie.find(it, end, i, schar.dag);
|
_trie.find(it, end, schar.dag, i);
|
||||||
//DagType::iterator dagIter;
|
//DagType::iterator dagIter;
|
||||||
if(schar.dag.end() == schar.dag.find(i))
|
if(schar.dag.end() == schar.dag.find(i))
|
||||||
{
|
{
|
||||||
|
@ -42,12 +42,6 @@ namespace CppJieba
|
|||||||
size_t freq;
|
size_t freq;
|
||||||
string tag;
|
string tag;
|
||||||
double logFreq; //logFreq = log(freq/sum(freq));
|
double logFreq; //logFreq = log(freq/sum(freq));
|
||||||
TrieNodeInfo():freq(0),logFreq(0.0)
|
|
||||||
{}
|
|
||||||
TrieNodeInfo(const TrieNodeInfo& nodeInfo):word(nodeInfo.word), freq(nodeInfo.freq), tag(nodeInfo.tag), logFreq(nodeInfo.logFreq)
|
|
||||||
{}
|
|
||||||
TrieNodeInfo(const Unicode& _word):word(_word),freq(0),logFreq(MIN_DOUBLE)
|
|
||||||
{}
|
|
||||||
};
|
};
|
||||||
|
|
||||||
inline ostream& operator << (ostream& os, const TrieNodeInfo & nodeInfo)
|
inline ostream& operator << (ostream& os, const TrieNodeInfo & nodeInfo)
|
||||||
@ -118,7 +112,7 @@ namespace CppJieba
|
|||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool find(Unicode::const_iterator begin, Unicode::const_iterator end, size_t offset, DagType & res) const
|
bool find(Unicode::const_iterator begin, Unicode::const_iterator end, DagType & res, size_t offset = 0) const
|
||||||
{
|
{
|
||||||
TrieNode* p = _root;
|
TrieNode* p = _root;
|
||||||
TrieNodeMap::const_iterator citer;
|
TrieNodeMap::const_iterator citer;
|
||||||
|
@ -26,7 +26,7 @@ TEST(TrieTest, Test1)
|
|||||||
word = "清华大学";
|
word = "清华大学";
|
||||||
vector<pair<size_t, const TrieNodeInfo*> > res;
|
vector<pair<size_t, const TrieNodeInfo*> > res;
|
||||||
map<size_t, const TrieNodeInfo* > resMap;
|
map<size_t, const TrieNodeInfo* > resMap;
|
||||||
map<size_t, const TrieNodeInfo* > map;
|
map<size_t, const TrieNodeInfo* > mp;
|
||||||
const char * words[] = {"清", "清华", "清华大学"};
|
const char * words[] = {"清", "清华", "清华大学"};
|
||||||
for(size_t i = 0; i < sizeof(words)/sizeof(words[0]); i++)
|
for(size_t i = 0; i < sizeof(words)/sizeof(words[0]); i++)
|
||||||
{
|
{
|
||||||
@ -40,8 +40,8 @@ TEST(TrieTest, Test1)
|
|||||||
vector<pair<size_t, const TrieNodeInfo*> > vec;
|
vector<pair<size_t, const TrieNodeInfo*> > vec;
|
||||||
ASSERT_TRUE(TransCode::decode(word, uni));
|
ASSERT_TRUE(TransCode::decode(word, uni));
|
||||||
//print(uni);
|
//print(uni);
|
||||||
ASSERT_TRUE(trie.find(uni.begin(), uni.end(), 0, map));
|
ASSERT_TRUE(trie.find(uni.begin(), uni.end(), mp, 0));
|
||||||
ASSERT_EQ(map, resMap);
|
ASSERT_EQ(mp, resMap);
|
||||||
// print(vec);
|
// print(vec);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user