【问题标题】:Could not parse value xxx in line xxx, column xxx无法解析第 xxx 行第 xxx 列中的值 xxx
【发布时间】:2020-07-18 14:59:41
【问题描述】:

在尝试获取 IDataView 对象的预览数据时,我收到以下错误

外部异常

System.FormatException: '解析失败,出现异常:无法解析第 {number} 行,第 {name of column} 列中的值 {some value}'

内部异常

InvalidOperationException:无法解析第 {number} 行中的值 {some value}, 列 {列名}

Here 是我尝试加载的数据集

输入模型

public class JobPostInput
    {
        [LoadColumn(0)]
        [ColumnName("job_id")]
        public int JobId { get; set; }
        [LoadColumn(1)]
        [ColumnName("title")]
        public string Title { get; set; }
        [LoadColumn(2)]
        [ColumnName("location")]
        public string Location { get; set; }
        [LoadColumn(3)]
        [ColumnName("department")]
        public string Department { get; set; }
        [LoadColumn(4)]
        [ColumnName("salary_range")]
        public string SalaryRange { get; set; }
        [LoadColumn(5)]
        [ColumnName("company_profile")]
        public string CompanyProfile { get; set; }
        [LoadColumn(6)]
        [ColumnName("description")]
        public string Description { get; set; }
        [LoadColumn(7)]
        [ColumnName("requirements")]
        public string Requirements { get; set; }
        [LoadColumn(8)]
        [ColumnName("benefits")]
        public string Benefits { get; set; }
        [LoadColumn(9)]
        [ColumnName("telecommuting")]
        public bool Telecommuting { get; set; }
        [LoadColumn(10)]
        [ColumnName("has_company_logo")]
        public bool HasCompanyLogo { get; set; }
        [LoadColumn(11)]
        [ColumnName("has_questions")]
        public bool HasQuestions { get; set; }
        [LoadColumn(12)]
        [ColumnName("employment_type")]
        public string EmployementType { get; set; }
        [LoadColumn(13)]
        [ColumnName("required_experience")]
        public string ExperienceRequired { get; set; }
        [LoadColumn(14)]
        [ColumnName("required_education")]
        public string RequiredEducation { get; set; }
        [LoadColumn(15)]
        [ColumnName("industry")]
        public string Industry { get; set; }
        [LoadColumn(16)]
        [ColumnName("function")]
        public string Function { get; set; }
        [LoadColumn(17)]
        [ColumnName("fraudulent")]
        public bool IsFraud { get; set; }
    }

错误代码

    var dataView = _context.Data.LoadFromTextFile<JobPostInput>(path: "file path", hasHeader: true, separatorChar: ',');
    var preview = dataView.Preview();//exception here

注意:

  1. 我尝试将 csv 文件中的行数减少到 1。即使发生异常。
  2. 错误中指定的列名类型为boolean,但显示的值类型为string

【问题讨论】:

    标签: c# machine-learning .net-core ml.net


    【解决方案1】:

    对您的JobPostInput 稍作更改应该有助于解决此问题。

    更改以下属性以使用float 而不是bool

    • 远程办公
    • HasCompanyLogo
    • 有问题
    • 欺诈

    它试图将它们解析为布尔值,但它们实际上是整数(在 ML.NET 的情况下为浮点数)。可以使用context.Transforms.Conversion.ConvertType 方法将它们转换为布尔值。

    【讨论】:

    • 它帮助解决了这个问题。但是你注意到我在我的 qn 的 Note 部分提到的第二点了吗? ml.net 无法解析的值是来自另一列的一些文本,而不是来自任何布尔列。或者这是来自 .net 的又一个误导性错误情况?
    • 这可能会产生误导。在我进行float 更改后,它为我加载。进行这些更改后,您是否仍然遇到错误?
    • 不。正如我所说,它得到了修复
    猜你喜欢
    • 1970-01-01
    • 2021-12-21
    • 2018-04-01
    • 2012-10-11
    • 2012-11-20
    • 2023-03-10
    • 2011-05-18
    • 2016-09-14
    相关资源
    最近更新 更多