c# - 如果 ML .net 中的列名不同,如何动态加载模型以进行情感分析?
问题描述
我现在像这样使用映射。
var trainedModel = _mlContext.Model.Load(modelPath, out DataViewSchema inputSchema);
_mlContext.Model.CreatePredictionEngine<SentimentIssue, SentimentPrediction>(trainedModel);
public class SentimentIssue
{
[LoadColumn(0)]
public bool Label { get; set; }
[LoadColumn(1)]
public string Text { get; set; }
}
public class SentimentPrediction
{
[ColumnName("PredictedLabel")]
public bool Prediction { get; set; }
public float Probability { get; set; }
public float Score { get; set; }
public string Text { get; set; }
}
如果另一个经过训练的模型的列名与代码中的名称不同,则 CreatePredictionEngine 方法中将出现如下异常:System.ArgumentOutOfRangeException 找不到输入列“SentimentText”。
此外,如果我使用 Column Name 属性,它需要一个常量。
public class SentimentIssue
{
[ColumnName("Label")]
public bool Label { get; set; }
[ColumnName("Text")]
public string Text { get; set; }
}
不允许使用这样的模型,因为 Column Name 需要一个常量。
public class SentimentIssue
{
[ColumnName(ConfigurationManager.AppSettings["Label"])]
public bool Label { get; set; }
[ColumnName(ConfigurationManager.AppSettings["Text"])]
public string Text { get; set; }
}
如何将用于情感分析的模型中的列名动态映射到代码中的模型。是否有其他方法可以为情感分析动态加载模型?
解决方案
推荐阅读
- javascript - 可访问性:更改图标的最佳解决方案
- c++ - QT中的正方体
- laravel - Laravel Nova - 上传后的 JSON 文件转换为 TXT 文件
- jquery - Safari中的悬停故障
- jquery - 如何在完整日历的议程日更改左栏
- javascript - 将对象数组转换为包含对象数组的数组
- r - R中栅格地图中黑色的基本图NA值
- sql-server - 如何在 SQL Server 中使用按列分组的 where 子句获取每个组的前 1 条记录
- transformation - 空间数据的 Jolt 转换(从 geojson 到 arcGIS json)
- business-intelligence - 通过 talend open studio for big data 集成多个数据库