#include <CWeightingFunction.h>
Public Member Functions | |
double | getQueryFactor () const |
The query factor contains all informatio which depends only on the query. | |
virtual void | preCalculate () |
Calculate the QueryFactor. | |
CWeightingFunction (const CAcInvertedFile *inAccessor=0, CQueryNormalizer *inQueryNormalizer=0, CQueryNormalizer *inThisNormalizer=0) | |
Constructor:. | |
void | setAccessor (const CAcInvertedFile *) |
Set the accessor (should not be needed). | |
void | setNormalizers (CQueryNormalizer *inQueryNormalizer, CQueryNormalizer *inThisNormalizer) |
Set the query normalizer (should not be needed);. | |
void | setID (TID) |
Set the ID of this feature. | |
TID | getID () const |
get the ID of this feature | |
void | setRelevanceSum (double inPositiveRelevanceSum, double inNegativeRelevanceSum) |
Setting the relevance sum, that is the sum of the absolute values of all relevance levels of all documents of the query. | |
virtual void | addQueryFeature (double inRelevanceLevel, const CDocumentFrequencyElement &inQueryFeature) |
Add a feature. | |
virtual double | getTermFrequency () const |
Giving a pseudo term frequency for normalization. | |
virtual double | subApply (const double inDocumentFrequency, const double inNormalizingFactor) const |
Apply this on a document frequency. | |
virtual double | apply (const CDocumentFrequencyElement &inResultFeature) const |
Preparing the right parameters for subApply: Apply this on another feature. | |
double | applyOnThis () const |
Preparing the right parameters for subApply: Apply this on itself. | |
virtual CWeightingFunction * | constructNew (TID inID) const |
For the "prototype pattern": Kinda virtual copy constructor: Gamma/Helm/Johnson/Vlissides p. | |
virtual CWeightingFunction * | clone () const |
For the "prototype pattern": Kinda virtual copy constructor: Gamma/Helm/Johnson/Vlissides p. | |
virtual | ~CWeightingFunction () |
This virtual destructor is here inorder to call the (inherited) default constructors. | |
Protected Attributes | |
double | mPositiveRelevanceSum |
This value depends on all the elements of the query, which have a positive user-assigned relevance. | |
double | mNegativeRelevanceSum |
This value depends on all the elements of the query, which have a negative user-assigned relevance. | |
double | mPositiveTermFrequency |
double | mNegativeTermFrequency |
int | mFeatureDescription |
At present the feature description is a simple integer which expresses if the feature is a histogram feature or not and if it is a texture feature or not. | |
TID | mID |
const CAcInvertedFile * | mAccessor |
The accessor for the file on which the query is performed. | |
CQueryNormalizer * | mQueryNormalizer |
FIXME THERE IS A GOOD DESCRIPTION MISSING FOR THE NEXT TWO VARIABLES. | |
CQueryNormalizer * | mThisNormalizer |
A normalizer for apply on self. | |
double | mQueryFactor |
The query usually will separate into a part which is equal for all the query and a part which is to be calculated for each document. | |
double | mDocumentFactor |
Friends | |
class | CSortByDFTimesLogICF_WF |
The rationale is, that we want to implement very flexible feature weighting, so flexible that it does not necessarily have anything to do with the initial concept of feature weighting.
The scenario: We have query/feedback from the user. That is: We have a list of images with either positive or negative relevance for the user. Each of these images contains a list of features.
Now we want to combine the different features. What we usually need to know is: how many images where in the positive feedback, and how many images where in the negative feedback.
CWeightingFunction::CWeightingFunction | ( | const CAcInvertedFile * | inAccessor = 0 , |
|
CQueryNormalizer * | inQueryNormalizer = 0 , |
|||
CQueryNormalizer * | inThisNormalizer = 0 | |||
) |
Constructor:.
inAccessor,: | the accessor containing this \ (for getting information about single documents) | |
inQueryNormalizer,: | FIXME | |
inThisNormalizer,: | FIXME |
virtual void CWeightingFunction::addQueryFeature | ( | double | inRelevanceLevel, | |
const CDocumentFrequencyElement & | inQueryFeature | |||
) | [virtual] |
Add a feature.
A feature will be a document frequency element out of the feature file.
virtual double CWeightingFunction::apply | ( | const CDocumentFrequencyElement & | inResultFeature | ) | const [virtual] |
Preparing the right parameters for subApply: Apply this on another feature.
Reimplemented in CWFBestFullyWeighted, CWFBestProbabilistic, and CWFStandardTF.
double CWeightingFunction::applyOnThis | ( | ) | const |
Preparing the right parameters for subApply: Apply this on itself.
virtual CWeightingFunction* CWeightingFunction::clone | ( | ) | const [virtual] |
For the "prototype pattern": Kinda virtual copy constructor: Gamma/Helm/Johnson/Vlissides p.
107
This is a new version of constructNew which manages to live without the setID function
Reimplemented in CWFBestFullyWeighted, CWFBestProbabilistic, CWFBinaryTerm, CWFClassicalIDF, CWFCoordinationLevel, CWFProbability, and CWFStandardTF.
virtual CWeightingFunction* CWeightingFunction::constructNew | ( | TID | inID | ) | const [virtual] |
For the "prototype pattern": Kinda virtual copy constructor: Gamma/Helm/Johnson/Vlissides p.
107
TID CWeightingFunction::getID | ( | ) | const |
get the ID of this feature
double CWeightingFunction::getQueryFactor | ( | ) | const |
The query factor contains all informatio which depends only on the query.
(for efficiency)
virtual double CWeightingFunction::getTermFrequency | ( | ) | const [virtual] |
Giving a pseudo term frequency for normalization.
void CWeightingFunction::setAccessor | ( | const CAcInvertedFile * | ) |
Set the accessor (should not be needed).
void CWeightingFunction::setID | ( | TID | ) |
Set the ID of this feature.
void CWeightingFunction::setNormalizers | ( | CQueryNormalizer * | inQueryNormalizer, | |
CQueryNormalizer * | inThisNormalizer | |||
) |
Set the query normalizer (should not be needed);.
void CWeightingFunction::setRelevanceSum | ( | double | inPositiveRelevanceSum, | |
double | inNegativeRelevanceSum | |||
) |
Setting the relevance sum, that is the sum of the absolute values of all relevance levels of all documents of the query.
for rocchio we need this sum to be once calculated for positive, once for negative feedback images
virtual double CWeightingFunction::subApply | ( | const double | inDocumentFrequency, | |
const double | inNormalizingFactor | |||
) | const [virtual] |
Apply this on a document frequency.
Reimplemented in CWFBestFullyWeighted, CWFBestProbabilistic, CWFBinaryTerm, CWFClassicalIDF, CWFCoordinationLevel, CWFProbability, and CWFStandardTF.
int CWeightingFunction::mFeatureDescription [protected] |
At present the feature description is a simple integer which expresses if the feature is a histogram feature or not and if it is a texture feature or not.
We probably will use more elaborate descriptions in the future.
double CWeightingFunction::mNegativeRelevanceSum [protected] |
This value depends on all the elements of the query, which have a negative user-assigned relevance.
i.e. not necessarily only on the elements which contain this feature, so it has to be explicitly set using the function setRelevanceSum from the outside.
If relevance=+-1 then this is the number of negative images in the query
double CWeightingFunction::mPositiveRelevanceSum [protected] |
This value depends on all the elements of the query, which have a positive user-assigned relevance.
i.e. not necessarily only on the elements which contain this feature, so it has to be explicitly set using the function setRelevanceSum from the outside.
If relevance=+-1 then this is the number of positive images in the query
double CWeightingFunction::mQueryFactor [protected] |
The query usually will separate into a part which is equal for all the query and a part which is to be calculated for each document.
The part which stays constant