AI時代的網站與手機App建置與開發Part15 - 建立具推薦功能的ASP.NET Core MVC網站
· 摘要
在這一篇文章中, 我們將要使用ML.NET程式庫建立的機器學習模型, 建立預測股票價格的網站..
· 為Controller加入新的Action函式
請編輯專案的HomeController控制器,為HomeController控制器加入以下兩個PredictMovieRating函式, 第一個PredictMovieRating函式用來建立預測電影評論的資料輸入頁面, 第二個PredictMovieRating函式負責呼叫MLModel類別的Predict函式, 依據使用者輸入的電影相關資料預測電影的評論分數, 再將呼叫的結果轉換成JSON格式並傳回給呼叫者, 如下:
public IActionResult PredictMovieRating()
{
return
View();
}
[HttpPost]
public JsonResult
PredictMovieRating(MLModel.ModelInput modelInput)
{
MLModel.ModelOutput predictionResult = MLModel.Predict(modelInput);
return Json(predictionResult);
}
做好之後請使用滑鼠右鍵點選專案中名稱為HomeController的控制器的第一個PredictMovieRating函式, 執行[新增檢視]功能, 為PredictMovieRating函式加入名稱為PredictMovieRating的檢視, 並把PredictMovieRating檢視編輯成以下的樣子, 支援使用者輸入電影評論的相關資訊, 以便預測電影評論分數:
<h3>電影評論預估資料</h3>
<br />
<div class="container">
<div class="form-group">
<label class="form-label">User Id:</label>
<input id="userId" value="1" class="form-control" />
</div>
<div class="form-group">
<label class="form-label">Movie Id:</label>
<input id="movieId" value="3" class="form-control" />
</div>
<div class="form-group">
<button id="predict" class="btn
btn-success">預測</button>
</div>
</div>
@section Scripts
{
<script>
var baseAddress = "https://localhost:7073"; //MVC網站的網址
$("#predict").on("click", function () {//處理button被按下引發的click事件
var input = { //準備電影評論預估資料
userId:$("#userId").val(),
movieId:$("#movieId").val(),
};
$.ajax({ //發送ajax呼叫
type:"post",
url: `${baseAddress}/Home/PredictMovieRating`,
data: input,
}).done(function (data) { //處理呼叫成功收到的結果
//alert(JSON.stringify(data));
alert(`評論分數:${(data["score"]).toFixed(2)}`)
}).fail(function (err) { //處理呼叫發生的錯誤
alert(err.statusText);
});
});
</script>
}
· }解析電影評論預估的結果
呼叫MLModel類別的Predict函式會得到MLModel.ModelOutput類別型態的結果的結果, 呼叫結果中名稱為score的屬性的內容值即為電影評論的預測值.:
· 於網站的導覽列加入填寫貸款申請表的超連結
請開啟專案根目錄下, [Views | Shared]資料夾中的_Layout.cshtml, 於
<ul class="navbar-nav flex-grow-1">
元素中加入以下的超連結:
<li class="nav-item">
<a class="nav-link
text-dark"
asp-area="" asp-controller="Home" asp-action="PredictMovieRating">電影評論預估</a>
</li>
做好之後執行ASP.NET Core MVC網站專案, 點選導覽列中剛加入的[電影評論預估]連結, 填寫妥使用者編號和欲預估的電影編號等資料, 按下[預測]鍵, 就會看類似圖1的結果:
圖1: 叫用ML.NET程式庫建立的機器學習模型預測電影評論分數的畫面
· 商品推薦
在本文的範例中, 電影評論的預估分數即商品推薦的分數, 我們可以設立標準值, 假如電影評論的預估分數超過4.5, 則該電影屬於強烈推薦等級, 假如電影評論的預估分數超過4.0, 但是低於4.5, 則該電影屬於推薦等級, 假如電影評論的預估分數超過3.0, 但是低於4.0, 則該電影屬於中度推薦等級, 如果電影評論的預估分數超過3.0, 則該電影屬於不推薦等級. 有興趣的讀者也可以搜集旅館的住論評論資料, 餐廳的用餐評論資料, 或是參考[Public Datasets For Recommender Systems]提供的有用資料集, 再利用ML.NET程式庫建立旅館住宿推薦系統或餐廳的用餐推薦系統, 建立好用的推薦系統, 提升生活情趣與品質.

留言
張貼留言