public static ColumnInferenceResults InferColumns(MLContext context, string path, ColumnInformation columnInfo,
                                                          char?separatorChar, bool?allowQuotedStrings, bool?supportSparse, bool trimWhitespace, bool groupColumns)
        {
            var sample         = TextFileSample.CreateFromFullFile(path);
            var splitInference = InferSplit(context, sample, separatorChar, allowQuotedStrings, supportSparse);
            var typeInference  = InferColumnTypes(context, sample, splitInference, true, null, columnInfo.LabelColumnName);

            return(InferColumns(context, path, columnInfo, true, splitInference, typeInference, trimWhitespace, groupColumns));
        }
        public static ColumnInferenceResults InferColumns(MLContext context, string path, uint labelColumnIndex,
                                                          bool hasHeader, char?separatorChar, bool?allowQuotedStrings, bool?supportSparse, bool trimWhitespace, bool groupColumns)
        {
            var sample         = TextFileSample.CreateFromFullFile(path);
            var splitInference = InferSplit(context, sample, separatorChar, allowQuotedStrings, supportSparse);
            var typeInference  = InferColumnTypes(context, sample, splitInference, hasHeader, labelColumnIndex, null);

            // If no headers, suggest label column name as 'Label'
            if (!hasHeader)
            {
                typeInference.Columns[labelColumnIndex].SuggestedName = DefaultColumnNames.Label;
            }

            var columnInfo = new ColumnInformation()
            {
                LabelColumnName = typeInference.Columns[labelColumnIndex].SuggestedName
            };

            return(InferColumns(context, path, columnInfo, hasHeader, splitInference, typeInference, trimWhitespace, groupColumns));
        }