Changeset 1836
- Timestamp:
- 2001-01-15T12:56:57+13:00 (23 years ago)
- Location:
- trunk/gsdl/src/mgpp/text
- Files:
-
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/gsdl/src/mgpp/text/MGQuery.cpp
r1688 r1836 423 423 bool needFragFreqs, 424 424 FragRangeArray *fragLimits, 425 FragData &fragData) const { 425 FragData &fragData, 426 UCArrayVector &equivTerms) const { 426 427 fragData.Clear (); 428 equivTerms.erase(equivTerms.begin(), equivTerms.end()); 427 429 428 430 // get a list of term numbers 429 vector<unsigned long> equiv Words;430 FindWordNumbers (indexData, term, stemMethod, equiv Words);431 vector<unsigned long> equivNums; 432 FindWordNumbers (indexData, term, stemMethod, equivNums); 431 433 432 434 // get the information for each word and merge it with … … 434 436 FragData tempFragData1; 435 437 FragData tempFragData2; 436 vector<unsigned long>::iterator here = equivWords.begin(); 437 vector<unsigned long>::iterator end = equivWords.end(); 438 UCArray equivWord; 439 vector<unsigned long>::iterator here = equivNums.begin(); 440 vector<unsigned long>::iterator end = equivNums.end(); 438 441 while (here != end) { 439 442 // get the information for this word 440 443 ReadTermFragData (indexData, needFragFreqs, *here, 441 tempFragData1, fragLimits );442 444 tempFragData1, fragLimits, equivWord); 445 equivTerms.push_back(equivWord); 443 446 // combine with last results 444 447 tempFragData2 = fragData; … … 503 506 // read in the first term 504 507 FragData termData; 508 UCArrayVector equivTerms; 505 509 TermNodeArray::const_iterator termHere=terms.begin(), termEnd = terms.end(); 506 510 if (termHere != termEnd) { 507 (*termHere).Calculate (indexData, needFragFreqs, fragLimitsPtr, termData); 511 (*termHere).Calculate (indexData, needFragFreqs, fragLimitsPtr, 512 termData, equivTerms); 508 513 509 514 // convert initial fragment information … … 515 520 (*termHere).stemMethod, 516 521 (*termHere).termWeight, 522 equivTerms, 517 523 result); 518 524 … … 526 532 while (termHere != termEnd) { 527 533 (*termHere).Calculate (indexData, needFragFreqs, 528 fragLimitsPtr, comTermData );534 fragLimitsPtr, comTermData, equivTerms); 529 535 530 536 AndFragsToQueryResult (indexData, … … 535 541 (*termHere).stemMethod, 536 542 (*termHere).termWeight, 543 equivTerms, 537 544 result); 538 545 -
trunk/gsdl/src/mgpp/text/MGQuery.h
r1300 r1836 139 139 bool needFragFreqs, 140 140 FragRangeArray *fragLimits, 141 FragData &fragData) const; 141 FragData &fragData, 142 UCArrayVector &equivTerms) const; 142 143 void Free (); 143 144 void Print (ostream &s, int indent=0) const; -
trunk/gsdl/src/mgpp/text/Terms.cpp
r1775 r1836 42 42 UCArrayClear (tag); 43 43 UCArrayClear (term); 44 equivTerms.erase(equivTerms.begin(), equivTerms.end()); 44 45 stemMethod = 0; 45 46 matchDocs = 0; … … 49 50 ostream &operator<< (ostream &s, const TermFreqData &t) { 50 51 s << "<" << t.tag << ">\"" << t.term << "\"stem(" 51 << t.stemMethod << ")docs(" << t.matchDocs << ")" 52 << t.stemMethod << ")equiv terms("; 53 54 unsigned long i; 55 for (i=0; i<t.equivTerms.size(); i++) { 56 s << t.equivTerms[i] << ", "; 57 } 58 s <<")docs(" << t.matchDocs << ")" 52 59 << "count("<<t.termFreq<<")"; 53 60 return s; … … 58 65 (t1.term == t2.term) && 59 66 (t1.stemMethod == t2.stemMethod) && 67 (t1.equivTerms == t2.equivTerms) && 60 68 (t1.matchDocs == t2.matchDocs) && 61 69 (t1.termFreq == t2.termFreq)); … … 279 287 unsigned long termNum, 280 288 FragData &fragData, 281 FragRangeArray *fragLimits) { 289 FragRangeArray *fragLimits, 290 UCArray & termWord) { 282 291 fragData.Clear(); 283 292 … … 295 304 296 305 fragData.matchDocs = wordDictEl.levelFreqs[indexData.curLevelNum]; 297 306 termWord = wordDictEl.el; 298 307 // seek to the appropriate place in the inverted file 299 308 fseek (indexData.invfFile, wordDictEl.invf_ptr, SEEK_SET); … … 462 471 unsigned long stemMethod, 463 472 unsigned long termWeight, 473 UCArrayVector &equivTerms, 464 474 QueryResult &result) { 465 475 bool needRanks = (queryInfo.sortByRank || queryInfo.needRankInfo); … … 527 537 termFreqData.term = term; 528 538 termFreqData.stemMethod = stemMethod; 539 termFreqData.equivTerms = equivTerms; 529 540 termFreqData.matchDocs = termData.matchDocs; 530 541 termFreqData.termFreq = overallwordfreq; // will be zero if needRankInfo … … 541 552 unsigned long stemMethod, 542 553 unsigned long termWeight, 554 UCArrayVector &equivTerms, 543 555 QueryResult &result) { 544 556 bool needRanks = (queryInfo.sortByRank || queryInfo.needRankInfo); … … 636 648 termFreqData.term = term; 637 649 termFreqData.stemMethod = stemMethod; 650 termFreqData.equivTerms = equivTerms; 638 651 termFreqData.matchDocs = termData.matchDocs; 639 652 termFreqData.termFreq = overallwordfreq; -
trunk/gsdl/src/mgpp/text/Terms.h
r1688 r1836 58 58 UCArray term; // unstemmed term 59 59 int stemMethod; 60 UCArrayVector equivTerms; // the stemmed and casefolded variants of the term 60 61 unsigned long matchDocs; // tf for level - num levels 61 62 // containing this term … … 126 127 unsigned long termNum, 127 128 FragData &fragData, 128 FragRangeArray *fragLimits); 129 FragRangeArray *fragLimits, 130 UCArray &termWord); 129 131 130 132 void CombineFragData (bool needFragFreqs, … … 148 150 unsigned long stemMethod, 149 151 unsigned long termWeight, 152 UCArrayVector &equivTerms, 150 153 QueryResult &result); 151 154 … … 157 160 unsigned long stemMethod, 158 161 unsigned long termWeight, 162 UCArrayVector &equivTerms, 159 163 QueryResult &result); 160 164
Note:
See TracChangeset
for help on using the changeset viewer.