我正在使用ML.NET进行机器学习。
最初,我使用了CSV文件并收到了此错误。但是,当我连接到使用相同数据设置的数据库表时,会遇到相同的问题。数据是长度和内容不同的文本,我想据此生成新文本。
我的文字只设置了一个列,因此我既不知道这样做的目的,也不明白为什么不起作用。任何指针将不胜感激。
Inferring Columns ...
An Error occured during inferring columns
Unable to split the file provided into multiple, consistent columns.
Microsoft.ML.AutoML.InferenceException: Unable to split the file provided into multiple, consistent columns.
at Microsoft.ML.AutoML.ColumnInferenceApi.InferSplit(MLContext context, TextFileSample sample, Nullable`1 separatorChar, Nullable`1 allowQuotedStrings, Nullable`1 supportSparse)
at Microsoft.ML.AutoML.ColumnInferenceApi.InferColumns(MLContext context, String path, ColumnInformation columnInfo, Nullable`1 separatorChar, Nullable`1 allowQuotedStrings, Nullable`1 supportSparse, Boolean trimWhitespace, Boolean groupColumns)
at Microsoft.ML.CLI.CodeGenerator.AutoMLEngine.InferColumns(MLContext context, ColumnInformation columnInformation)
at Microsoft.ML.CLI.Program.<>c__DisplayClass1_0.<Main>b__0(NewCommandSettings options)
at Microsoft.ML.CLI.CodeGenerator.CodeGenerationHelper.GenerateCode()
Please see the log file for more info.
Exiting ...
答案 0 :(得分:1)
当这个错误发生在我身上时,我找不到太多了。我所做的就是将我的sql数据库导出到csv并查看了数据。有些字符串描述中包含换行符和html。我用一些c#清理了字符串,然后加载并运行了文件。
如果我是我,我将检查csv中的数据并查找格式错误,然后修复并重试。
答案 1 :(得分:0)
尝试删除回车符和前行,在SQL表上将其替换为空字符串。
我刚刚使用以下方法创建了该表的新版本,并在违规列中将其删除:
REPLACE(REPLACE([FIELD_NAME], CHAR(10), ''), CHAR(13), '')
错误消息确实含糊不清(确实得到了错误消息),但以上内容对我有用。
不确定引擎不喜欢其他哪些特殊字符,但是我的数据集必须只包含回车符或前行符。
答案 2 :(得分:0)
是的,这确实是CSV文件错误。 即使使用来自Kaggle的流行数据集和来自Wikipedia的数据集,我仍然可以理解。 因此,如果这对某人有帮助,请尝试使用100%确定正确的较小CSV文件。