In the implementation of loglinear models we need to figure out a good naming scheme for various things which could all be called "features". In particular we need naming schemes for the following:
* a single feature; i.e., a function of type X -> Y -> FeatureValue
* the overall feature function given as input to the model; i.e., the function of type X -> Y -> list(FeatureValue)
* The X-memoized feature function; i.e., the MemoizedFunction from X to functions of type (Y -> list(FeatureValue))
* the Y-memoized feature functions; i.e. the Memoized functions from Y to list(FeatureValue) which the X-memoized feature function returns
* a particular feature value vector; i.e., the list(FeatureValue) ultimately returned by the feature function
* A single feature value; i.e., each individual FeatureValue in the feature value vector.
In particular, it'd be nice to have a naming scheme which doesn't require variables with exceptionally long names (e.g., y_memoized_feature_function_for_x is not the best name). In addition, it'd be nice to not have to say "feature function", "feature vector", "feature value" everywhere, since that'll get illegibly redundant real quick seeing "feature" attached to all the names of everything.
Comment 1 by wrengr@chromium.org
, Dec 15 2016