예제 #1
0
 public InvertHashHelper(NgramHashTransform parent, string[][] friendlyNames, Func <int, bool> inputPred, int[] invertHashMaxCounts)
 {
     Contracts.AssertValue(parent);
     Contracts.AssertValue(friendlyNames);
     Contracts.Assert(friendlyNames.Length == parent._bindings.InfoCount);
     Contracts.AssertValue(inputPred);
     Contracts.AssertValue(invertHashMaxCounts);
     Contracts.Assert(invertHashMaxCounts.Length == parent._bindings.InfoCount);
     _parent = parent;
     // One per iinfo (some may be null).
     _iinfoToCollector = new InvertHashCollector <NGram> [_parent._bindings.InfoCount];
     // One per source column (some may be null).
     _srcTextGetters      = new ValueMapper <uint, StringBuilder> [_parent.Source.Schema.ColumnCount];
     _invertHashMaxCounts = invertHashMaxCounts;
     for (int i = 0; i < _srcTextGetters.Length; ++i)
     {
         if (inputPred(i))
         {
             _srcTextGetters[i] = InvertHashUtils.GetSimpleMapper <uint>(_parent.Source.Schema, i);
         }
     }
     _friendlyNames = friendlyNames;
 }
예제 #2
0
                protected override ValueMapper <KeyValuePair <int, T>, StringBuilder> GetTextMap()
                {
                    var simple = InvertHashUtils.GetSimpleMapper <T>(Row.Schema, _info.Source);

                    return(InvertHashUtils.GetPairMapper(simple));
                }
예제 #3
0
 protected virtual ValueMapper <T, StringBuilder> GetTextMap()
 {
     return(InvertHashUtils.GetSimpleMapper <T>(Row.Schema, _info.Source));
 }