Changeset 16058
- Timestamp:
- 2008-06-18T17:11:11+12:00 (16 years ago)
- Location:
- gsdl/trunk/src/recpt
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
gsdl/trunk/src/recpt/dynamicclassifieraction.cpp
r16057 r16058 370 370 } 371 371 372 // After processing any hierarchical metadata values, we're left with the child classifer nodes 373 map<text_t, int, lttext_t> child_classifier_nodes = process_metadata_values (classifier_options, metadata_values_response.docInfo); 372 // After processing any hierarchical metadata values we're left with the child classifer nodes 373 map<text_t, int, lttext_t> child_classifier_nodes; 374 text_t current_position = args["dcn"]; 375 ResultDocInfo_tarray::iterator metadata_value_iterator = metadata_values_response.docInfo.begin(); 376 while (metadata_value_iterator != metadata_values_response.docInfo.end()) 377 { 378 text_t metadata_value = (*metadata_value_iterator).OID; 379 380 // If we're not at the top-level we need to remove the current position from the metadata values 381 if (current_position != "" && starts_with(metadata_value, current_position + "|")) 382 { 383 metadata_value = substr(metadata_value.begin() + (current_position + "|").size(), metadata_value.end()); 384 } 385 386 // Is this metadata value hierarchical? 387 text_t::iterator hierarchy_split_position = findchar(metadata_value.begin(), metadata_value.end(), '|'); 388 if (hierarchy_split_position != metadata_value.end()) 389 { 390 // Yes, so use the first part of the hierarchy only 391 metadata_value = substr(metadata_value.begin(), hierarchy_split_position); 392 } 393 394 // Create a node for this metadata value if we haven't seen it before 395 if (child_classifier_nodes.find(metadata_value) == child_classifier_nodes.end()) 396 { 397 child_classifier_nodes[metadata_value] = 0; 398 } 399 400 // Increment the occurrence count 401 child_classifier_nodes[metadata_value] += (*metadata_value_iterator).result_num; 402 403 metadata_value_iterator++; 404 } 374 405 375 406 // Display the child classifier nodes … … 387 418 child_classifier_nodes_iterator++; 388 419 } 389 }390 391 392 map<text_t, int, lttext_t> dynamicclassifieraction::process_metadata_values (text_tmap classifier_options,393 ResultDocInfo_tarray metadata_values)394 {395 map<text_t, int, lttext_t> metadata_values_grouped;396 397 text_t current_position = classifier_options["current_position"];398 ResultDocInfo_tarray::iterator metadata_value_iterator = metadata_values.begin();399 while (metadata_value_iterator != metadata_values.end())400 {401 text_t metadata_value = (*metadata_value_iterator).OID;402 403 // If we're not at the top-level we need to remove the current position from the metadata values404 if (current_position != "" && starts_with(metadata_value, current_position + "|"))405 {406 metadata_value = substr(metadata_value.begin() + (current_position + "|").size(), metadata_value.end());407 }408 409 // Is this metadata value hierarchical?410 text_t::iterator hierarchy_split_position = findchar(metadata_value.begin(), metadata_value.end(), '|');411 if (hierarchy_split_position != metadata_value.end())412 {413 // Yes, so use the first part of the hierarchy only414 metadata_value = substr(metadata_value.begin(), hierarchy_split_position);415 }416 417 // Create a node for this metadata value if we haven't seen it before418 if (metadata_values_grouped.find(metadata_value) == metadata_values_grouped.end())419 {420 metadata_values_grouped[metadata_value] = 0;421 }422 423 // Increment the occurrence count424 metadata_values_grouped[metadata_value] += (*metadata_value_iterator).result_num;425 426 metadata_value_iterator++;427 }428 429 return metadata_values_grouped;430 420 } 431 421 -
gsdl/trunk/src/recpt/dynamicclassifieraction.h
r16057 r16058 85 85 ostream &textout, ostream &logout); 86 86 87 map<text_t, int, lttext_t> process_metadata_values (text_tmap classifier_options,88 ResultDocInfo_tarray metadata_values);89 90 87 void display_classifier_node (text_t classifier_node_OID, text_t classifier_node_label, 91 88 text_t classifier_node_numleafdocs, int classifier_node_indent,
Note:
See TracChangeset
for help on using the changeset viewer.