簡體   English   中英

ML.Net 情感分析預測評論在 ASP.NET MVC web 應用程序中不起作用

[英]ML.Net sentimental analysis prediction of comments not working in ASP.NET MVC web application

我正在嘗試在 .NET 框架中制作項目,其中 controller 代碼如下:

[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();
}

當我嘗試運行時,它顯示如下錯誤,盡管在解決方案資源管理器中看到了 dll:

拋出異常:Microsoft.ML.CpuMath.dll 中的“System.DllNotFoundException”

Microsoft.ML.CpuMath.dll 中出現“System.DllNotFoundException”類型的異常,但未在用戶代碼中處理

無法加載 DLL 'CpuMathNative':找不到指定的模塊。 (來自 HRESULT 的異常:0x8007007E)

ML.NET 的v1.4.0版本存在一個錯誤,該錯誤會破壞使用packages.config的項目。 看:

要解決此問題,請嘗試以下可能的解決方法之一:

  1. 使用PackageReference而不是 packages.config。
  2. 回退到v1.3.1的 v1.3.1,直到新版本出現修復。
  3. 或者,您可以將CpuMathNative.dll從 nuget package 復制到您的 Z78E636D81 文件夾中。 您可以手動執行此操作,也可以對 your.csproj 進行更改,如下所示:
    <Content Include="..\packages\Microsoft.ML.CpuMath.1.4.0\runtimes\win-x64\nativeassets\netstandard2.0\*.dll" Condition="'$(PlatformTarget)' == 'x64'">
      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
      <Visible>false</Visible>
      <Link>%(Filename)%(Extension)</Link>
    </Content>
    <Content Include="..\packages\Microsoft.ML.CpuMath.1.4.0\runtimes\win-x86\nativeassets\netstandard2.0\*.dll" Condition="'$(PlatformTarget)' == 'x86'">
      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
      <Visible>false</Visible>
      <Link>%(Filename)%(Extension)</Link>
    </Content>
  </ItemGroup>

(注意:如果你的包文件夾不是..\packages,你需要調整上面的路徑。)

另請注意一件事:您不能在 .NET 框架AnyCPU與 ML.NET 一起使用。 由於 ML.NET 使用本機程序集,因此您需要明確選擇x86x64

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM