zoukankan      html  css  js  c++  java
  • 使用ANNdotNET进行情感分析

    2018年10月的MSDN杂志上发表了由James McCaffrey撰写的文章“使用CNTK的情感分析” 。在这篇博文中,我将向您介绍这篇非常好且写得很好的MSDN文章示例。我不打算重复MSDN文章中所写的文本,因此建议首先阅读该文,然后返回此处并在ANNdotNET中实现该示例。事实上,我已经在不到5分钟的时间内实施了完整的解。由于ANNdotNET是GUI工具,因此在模型培训和评估过程中看到所有出色的可视化效果很有趣。此外,ANNdotNET通过提供混淆矩阵,ROC曲线和其他二进制性能参数来提供完整的二进制模型评估,这个示例使得阅读更有趣和有价值。

    整个示例分五步实施。

    第1步:准备文件和文件夹结构

    首先,我们需要创建几个文件夹和文件,以创建空的annproject。手动创建文件夹是必要的,因为ANNdotNET v1.0没有创建Empty项目的选项。这将在下一个版本中添加。

    首先,创建以下一组按层次排序的文件夹:

    • SentimentAnalysis
      • MoveReview
        • 数据

    下图显示了这组文件夹。

    第2步:下载示例中使用的数据集。

    我们在MSDN文章中只需要训练和测试数据集。可以从MSDN示例下载数据:Code_McCaffreyTestRun1018.zip。下载zip文件后,解压缩示例,并将文件:imdb_sparse_train_50w.txtindb_sparse_test_50w.txt复制数据文件夹,如上图所示

    第3步:创建MoviewReview.ann和LSTM-Net.mlconfig文件

    • 打开记事本并使用以下内容创建文件:
    1 project:|Name:MovieReview |Type:NoRawData |MLConfigs:LSTM-Net
    2 data:|RawData:MovieReview_rawdata.txt
    3 parser:|RowSeparator:rn |ColumnSeparator: ; |Header:0 |SkipLines:0

    将文件保存在SentimenAnalysis文件夹中作为MovieReview.ann。下图显示了磁盘上保存的annproject文件。

    现在再次打开记事本,创建一个新的空文件。空文件应该是mlconfig文件,其内容如下所示。不要担心文件的内容,因为一旦我们用ANNdotNET打开它,所有这些细节都将可见。如果您想了解更多有关mlconfig文件结构的信息,请参阅ANNdotNET项目的这个wiki页面

    1 configid:msdn-oct-2018-issue-sentiment-analysis-article
    2 metadata:|Column02:y;Category;Label;Random;0;1
    3 features:|x 129892 1
    4 labels:|y 2 0
    5 network:|Layer:Embedding 50 0 0 None 0 0 |Layer:LSTM 25 25 0 TanH 1 1 |Layer:Dense 2 0 0 Softmax 0 0
    6 learning:|Type:AdamLearner |LRate:0.01 |Momentum:0.85 |Loss:CrossEntropyWithSoftmax |Eval:ClassificationAccuracy |L1:0 |L2:0
    7 training:|Type:Default |BatchSize:250 |Epochs:400 |Normalization:0 |RandomizeBatch:0 |SaveWhileTraining:0 |FullTrainingSetEval:1 |ProgressFrequency:1 |ContinueTraining:0 |TrainedModel:
    8 paths:|Training:dataimdb_sparse_train_50w.txt |Validation:dataimdb_sparse_test_50w.txt |Test:dataimdb_sparse_test_50w.txt |TempModels:temp_models |Models:models |Result:LSTM-Net_result.csv |Logs:log

    该文件应使用LSTM-Net.mlconfig文件名保存在MovieReview文件夹中下图显示了mlconfig文件的存储位置。

    步骤4.使用ANNdotNET GUI工具打开annproject文件

    现在我们已经设置了所有内容,以便用ANNdotNET打开和训练情绪分析示例。由于ANNdotNET实现MLEngine其基于CNTK,数据集是兼容的,并且可以由训练者读取。为了获得更好的结果,我们稍微改变了学习参数。我们使用AdamLearner代替SGD。

    如果您的计算机上没有安装ANNdotNET工具,只需转到发布部分并下载最新版本。或者克隆GitHub存储库并在Visual Studio中运行它。有关如何将ANNdotNET作为独立应用程序或Visual Studio解决方案运行的所有信息,请访问GitHub页面https://github.com/bhrnjica/anndotnet

    在机器上简单解压缩ANNdotNET的二进制文件后,只需选择anndotnet.wnd.exe文件即可运行它ANNdotNET运行后,单击“打开应用程序”命令并选择MoveReview.ann文件。在一秒钟内,应用程序使用相应的mlconfig文件加载项目。从项目浏览器中,单击LSTM-NET三项,并出现与下图相似的内容。

    我们写入mlconfig文件的所有内容现在都显示在网络设置标签页中。

    1. 输入图层,尺寸为129892
    2. 具有二维的输出层(二进制问题)
    3. 学习参数:
      1. AdamLearner,动量为0.01 lr和0.85,
      2. 损失函数是CrossEntropywithSoftmax
      3. 评估功能是ClassificationAccuracy
    4. NNetwork Designer显示典型的LSTM循环网络

    步骤5.示例的训练和评估

    现在我们检查了网络设置,我们可以切换到列车标签页,并查看培训参数。由于我们已经在mlconfig文件中设置了训练参数,因此我们无需进行任何更改。

    单击“运行应用程序”命令启动培训过程。一段时间后,我们应该看到以下结果:

    如果我们切换到评估页面,我们可以执行一些统计分析,以评估模型是否良好。显示评估选项卡页面后,单击“刷新”按钮以根据培训和验证数据评估模型。

    左侧统计数据用于训练数据集,左侧用于验证数据集。可以看出,该模型完美地预测了来自训练数据集的所有数据,并且大约70%的准确度描述了验证数据集。关闭cource,模型并不像我们预期的那样好,但是这个演示已经足够了。还有两个按钮可以显示ROC曲线,以及其他二进制性能参数,这两个数据集都是读者的口味。

    这是完成情感分析例程设置和运行所需的全部内容。如果您想要完整的ANNdotNET项目,可以从这里下载

  • 相关阅读:
    sql server实现主从复制
    sql server 常用语法
    超像素、语义分割、实例分割、全景分割 傻傻分不清?
    什么是多模态机器学习?
    SLAM领域牛人、牛实验室、牛研究成果梳理
    从零开始一起学习SLAM | 给点云加个滤网
    原来CNN是这样提取图像特征的。。。
    从零开始一起学习SLAM | 你好,点云
    2019年度【计算机视觉&机器学习&人工智能】国际重要会议汇总
    从零开始一起学习SLAM | 神奇的单应矩阵
  • 原文地址:https://www.cnblogs.com/BeanHsiang/p/9892519.html
Copyright © 2011-2022 走看看