# Aladdin **Repository Path**: wangruihuano/Aladdin ## Basic Information - **Project Name**: Aladdin - **Description**: 基于短实时信息情感分析的汇率预测系统 - **Primary Language**: Java - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 2 - **Forks**: 0 - **Created**: 2018-12-11 - **Last Updated**: 2024-11-29 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 基于短实时信息情感分析的汇率预测系统 ``` _ _ _ _ _ / \ | | __ _ __| | __| (_)_ __ / _ \ | |/ _` |/ _` |/ _` | | '_ \ / ___ \| | (_| | (_| | (_| | | | | | /_/ \_\_|\__,_|\__,_|\__,_|_|_| |_| ``` 本项目旨在通过对以往的短实时信息的情感评分和汇率的关系的分析,对今后的汇率进行预测. --------------- ## 信息采集及预处理 信息采集分为两大部分,短实时信息和汇率信息采集. 机器学习通常要用到三种数据集 : 定型集、开发集和测试集.这三种数据集都应当从规模更大的数据集合中采样. 首先用到的是**定型集**,也是三种数据集中最大的.神经网络在处理定型集的数据时,将学会如何判断不同特征应有的权重,根据使结果误差最小化的可能性来为特征指定系数. 这些系数也被称为元数据,它们包含在向量中,神经网络的每一层都有一个这样的向量.它们是神经网络定型所产生的最重要的结果. 第二种数据集是**测试集**.它的作用就相当于是一枚许可图章,不到最后不会使用.数据定型和优化完毕后,就用最后这组随机样本来测试神经网络.测试集产生的结果应当能验证网络可以准确地进行分类和评分. ### 一: 短实时信息采集及预处理 #### 1: 信息来源 随信息时代的发展和网络基础设施的完善,短实时信息的社交平台占在信息传播领域有越来越重要的位置. 截至2011年12月底,我国微博用户数达到2.5亿,较上一年底增长了296.0%,网民使用率为48.7%. 微博快速崛起,成为网民重要的信息获取渠道. 目前本项目短实时信息采集平台为新浪微博平台. #### 2: 爬虫及反反爬虫策略 a. 名词简介: |名词 | 含义 | | --- | --- | |爬虫 |使用任何技术手段,批量获取网站信息的一种方式,关键在于批量| |反爬虫|使用任何技术手段,阻止别人批量获取自己网站信息的一种方式,关键也在于批量| |误伤 |在反爬虫的过程中,错误的将普通用户识别为爬虫,误伤率高的反爬虫策略,效果再好也不能用| |拦截 |成功地阻止爬虫访问,这里会有拦截率的概念|通常来说,拦截率越高的反爬虫策略,误伤的可能性就越高,因此需要做个权衡| |资源 |机器成本与人力成本的总和| b. 爬虫: 将基于 [webmagic](http://webmagic.io/) 进行数据获取及预处理框架. c. 反爬虫及反反爬虫策略 | 反爬虫策略 | 反反爬虫策略 | | ------------------------------------- | -------------- | | 单个IP访问超过阈值,予以封锁。 | 使用代理服务器 | | 单个session访问超过阈值,予以封锁。 | 清除cookie中session id | | 单个userAgent访问超过阈值,予以封锁。 | 配置user agent池 | #### 3: 数据预处理 ### 二: 汇率信息采集及预处理 --------------- ## 数据标注(意见挖掘 / opinion mining) 目前针对一条数据采取正面情感评分,负面情感评分和信息类别三个标签进行数据标注. ### 标注平台 针对海量数据,通过普通工具无法较好满足数据标注质量和标注任务分配,标注平台的开发很有必要. 由于数据标注任务操作较为简单,所以将适配移动端; 但是标注情感评分结果受主观影响较大,所以当前标注规则为每条数据由多人标注, 标注人根据历史将会设定一个标注权重w,情感评分的结果计算方式: $$ S = \frac{\sum_{i=0}^n w_{i}s_{i}}{n-1} (w∈[0,1]) $$ 其中,n为标注人数,w为权重,s为个人评分,S为最终结果. #### PC端 #### 移动端 --------------- ## 模型构建及训练 ### 预备知识 从本质上看,图像是模糊的非结构化数据,而文字则属于一种半结构化的数据类型,即我们所知的语言。语言之中包含了有关其自身的信息。 我们可以将语言视为一种数据压缩的形式,关于整个世界的知识通过这种形式被压缩到一套符号体系中。就像有损文件或序列化数据集一样,文字是原本规模更庞大的信息的压缩形式。所以,您也可以认为深度学习在文字领域的潜力比图像领域更大,因为文字的实质是可认知的。 尽管如此,文本分析依然为机器学习带来了许多挑战。三层式神经网络应用于文本分析时的主要缺点是繁琐的手动特征提取。我们需要花费大量时间来指明算法所应关注的特征。 选择的特征可能包括每个词的词性标签,还有可能包括词是否出现,以及词在某一段特定文本中的出现次数,每条规则都必须谨慎地制定。这样的流程也会导致每个词的特征数量过多,许多特征可能都是冗余的。 深度学习的主要优势之一在于特征创建基本是自动化的。 一段文本被输入神经网络后会经历多个阶段的分析。首先是语句切分,软件会找出文本中句子的边界。第二阶段是[分词](https://deeplearning4j.org/cn/archieved/tokenization.html),软件会识别出具体的词语。在第三阶段,每个词被赋予词性标签;第四阶段则按词干或概念将词分组,这一过程称为词形还原(lemmatization)。例如,“be”、“been”、“is”这样的词会被归为同一组,因为它们表示同样的动词概念。 名为[Word2vec](https://deeplearning4j.org/cn/archieved/word2vec.html)的神经网络可以完成到词形还原之前的所有步骤。词形还原就是根据词干来扩展特征,深度学习可以用其他方式自动完成这一过程。 ### 原始数据可视化 ### 模型设计 ### 训练及优化 ### 测试 --------------- ## 系统集成(Web开发)