前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >C#开源跨平台机器学习框架ML.NET----二元分类情绪分析

C#开源跨平台机器学习框架ML.NET----二元分类情绪分析

作者头像
Vaccae
发布2019-09-09 15:58:08
9460
发布2019-09-09 15:58:08
举报
文章被收录于专栏:微卡智享

实现目标

通过我们自己预设的一些训练数据,根据输入的文本来判断情绪是积极的还是消极的

视频演示

情绪分析实现

01

创建项目

创建新项目名称为MLqingxu的项目

NuGet安装ML

右键项目引用选择管理NuGet管理嚣后在浏览里搜索ML,然后找到Microsoft.MLMicrosoft.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

代码实现

流程

进行情绪分析的实现顺序

  1. 加载数据
  2. 生成和定型模型
  3. 评估模型
  4. 使用模型进行预测
  5. 查看结果

定义基础参数

_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-

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-09-09,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 微卡智享 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档