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; }
protected override ValueMapper <KeyValuePair <int, T>, StringBuilder> GetTextMap() { var simple = InvertHashUtils.GetSimpleMapper <T>(Row.Schema, _info.Source); return(InvertHashUtils.GetPairMapper(simple)); }
protected virtual ValueMapper <T, StringBuilder> GetTextMap() { return(InvertHashUtils.GetSimpleMapper <T>(Row.Schema, _info.Source)); }