C# ML.Net情感分析ASP.Net MVC web应用程序中评论不起作用的预测
我正在尝试在.NET framework中创建项目,其中控制器代码如下:C# ML.Net情感分析ASP.Net MVC web应用程序中评论不起作用的预测,c#,.net,asp.net-mvc,ml.net,C#,.net,Asp.net Mvc,Ml.net,我正在尝试在.NET framework中创建项目,其中控制器代码如下: [HttpGet] public ActionResult Analysis() { return View(); } [HttpPost] public ActionResult Analysis(ModelInput input) { // Load the model MLContext mlContext = new MLContext(); ITransformer mlMo
[HttpGet]
public ActionResult Analysis()
{
return View();
}
[HttpPost]
public ActionResult Analysis(ModelInput input)
{
// Load the model
MLContext mlContext = new MLContext();
ITransformer mlModel = mlContext.Model.Load(@"C:\Users\samya\source\repos\riya123\riya123ML.Model\MLModel.zip", out var modelInputSchema);
// Create prediction engine related to the loaded train model
var predEngine = mlContext.Model.CreatePredictionEngine<ModelInput, ModelOutput>(mlModel);
// Input
input.Year = DateTime.Now.Year;
// Try model on sample data and find the score
ModelOutput result = predEngine.Predict(input);
// Store result into ViewBag
ViewBag.Result = result;
return View();
}
[HttpGet]
公共行动结果分析()
{
返回视图();
}
[HttpPost]
公共行动结果分析(模型输入)
{
//加载模型
MLContext MLContext=新的MLContext();
ITransformer mlModel=mlContext.Model.Load(@“C:\Users\samya\source\repos\riya123\riya123ML.Model\mlModel.zip”,out-var-modelInputSchema);
//创建与加载列车模型相关的预测引擎
var predEngine=mlContext.Model.CreatePredictionEngine(mlModel);
//输入
input.Year=DateTime.Now.Year;
//在样本数据上尝试模型并找到分数
ModelOutput结果=predEngine.Predict(输入);
//将结果存储到ViewBag中
ViewBag.Result=结果;
返回视图();
}
当我尝试运行时,它会显示如下错误,尽管在解决方案资源管理器中可以看到dll:
引发异常:Microsoft.ML.CpuMath.dll中的“System.DllNotFoundException”
Microsoft.ML.CpuMath.dll中发生“System.DllNotFoundException”类型的异常,但未在用户代码中处理
无法加载DLL“CpuMathNative”:找不到指定的模块。(来自HRESULT的异常:0x8007007E)
ML.NET的
v1.4.0
版本有一个bug,它使用packages.config
中断项目。见:
PackageReference
而不是packages.configv1.3.1
,直到新版本的补丁出现CpuMathNative.dll
从nuget包复制到输出文件夹中。您可以手动执行此操作,也可以对.csproj进行如下更改:
保存最新
假的
%(文件名)%(扩展名)
保存最新
假的
%(文件名)%(扩展名)
(注意:如果您的packages文件夹不是..\packages,则需要调整上面的路径。)
还要注意一件事:您不能在.NET Framework上对ML.NET使用
AnyCPU
。由于ML.NET使用本机程序集,您需要明确选择x86
或x64
。请尝试从NuGet重新安装Microsoft.ML.CpuMath软件包。卸载了ML.NET和ML.CpuMath软件包并重新安装,但错误保持不变。下面是一个有类似问题但无法理解的链接: