赞
踩
点击蓝字关注我们
前一篇文章《C#开源跨平台机器学习框架ML.NET----介绍与环境搭建》我们简单介绍了ML.NET,这篇我们就来做一个ML.NET的Demo(二元分类任务)。
实现目标
通过我们自己预设的一些训练数据,根据输入的文本来判断情绪是积极的还是消极的。
视频演示
情绪分析实现
01
创建项目
创建新项目名称为MLqingxu的项目
NuGet安装ML
右键项目引用选择管理NuGet管理嚣后在浏览里搜索ML,然后找到Microsoft.ML和Microsoft.ML.FastTree进行安装
02
创建训练模型
我们自己创建一个txt文件的训练模型
新建qingxudata.txt
右键新建项创建一个qingxudata.txt的文本文件
输入模版内容
我们在创建的txt文件中输入了一些场景的话,后面的1代表着积极的情绪,0代表着消极的情绪,一共写了16条,并不多
txt的属性设置
选择这个txt文件后,要记得把文件属性中复制到输出目录设置为如果较新则复制,这样的话会把TXT输出到程序所在目录,保存程序能加载到训练数据。
03
创建数据类
这里我们创建两个类,一个qingxubase类和一个qingxufenxi类
qingxubase.cs
qingxubase类中有两个属性,一个string类型qingxutext代表输入的场景文本,一个bool类型的isgoodorbad代表着是积极还是消极的情绪。其中上面的属性LoadColumn(数字)对应着我们的qingxudata.txt里面的列。
qingxufenxi.cs
qingxufenxi类继承自qingxubase类,然后又加入了三个字段,分别是是否预测,概率及分析的分数
其中红框上需要标注字段名,因为默认的生成名称就是这对应的,如果这里不标注的话,多条预测时会找不到对应的字段
04
窗体布局
Form布局
上面为主界面的面局,我们的主窗体界面加入两个textBox,一个输入,一个显示用的,然后加入三个按钮
05
代码实现
流程
进行情绪分析的实现顺序
加载数据
生成和定型模型
评估模型
使用模型进行预测
查看结果
定义基础参数
_filepath:为我们的txt训练文件。
_mlContext:MLContext 类,所有 ML.NET 操作的起点。 初始化 mlContext 会创建一个新的 ML.NET 环境,可在模型创建工作流对象之间共享该环境。 从概念上讲,它与实体框架中的 DBContext 类似。
_qingxuDataView:ML.NET 中的数据表示为 IDataView 类。IDataView 是用于描述表格数据(数字和文本)的一种灵活且有效的方法。 可从文本文件或实时(例如,SQL 数据库或日志文件)将数据加载到 IDataView 对象。
_transformer:
加载数据
通过LoadFromTextFile加载文件数据到IDataView
利用TrainTestSplit拆分数据集以进行模型训练和测试生成TrainTestData
生成和定型模型
FeaturizeText 进行提取和转换数据
Append 添加学习算法
FIt 定型模型
评估模型
Transform 加载测试数据集
BinaryClassification.Evaluate 创建计算器
初始化训练数据
初始化训练数据就是把上面三步整合到一起,当前面三步完成后,我们就可以进行数据的预测了
输入内容单条预测
CreatePredictionEngine 创建单个测试数据
Predict 进行数据预测
多条集合预测
首先生成了一个要预测的集合
读取集合并进行预测
最后显示数据
测试结果图片
源码下载地址
GitHub:https://github.com/Vaccae/MLNetQingXu.git
-END-
Vaccae的往期经典
OpenCV
《OpenCV4Android NDK方式进行Canny边缘检测》
《OpenCV4Android NDK方式TesserartOCR实时进行识别》
《OpenCV4Android NDK级联方式实时进行人脸检测》
Android
《Android利用SurfaceView结合科大讯飞修改语音实别UI》
《Android关于语音识别的功能实现分析(一)---结构化思维》
《Android关于语音识别的功能实现分析(二)---语义解析》
《Android中RecyclerView嵌套RecyclerView》
.Net C#
数据库及其它
《SQL Server中With As的介绍与应用(三)--递归的实战应用》
《Oracle利用row_number()over()方式解决插入数据时重复键的问题》
请扫码
给个关注
微卡智享
赞
踩
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。