交易文本数据:情感分析 -另类数据交易- 舆情数据

news2024/11/24 0:57:55

交易文本数据:情感分析

这是三章中的第一章,专门介绍使用自然语言处理(NLP)和机器学习从文本数据中提取交易策略信号。

文本数据内容丰富但高度非结构化,因此需要更多预处理才能使ML算法提取相关信息。一个关键挑战是在不丢失其含义的情况下将文本转换为数值格式。我们将介绍几种能够捕捉语言细微差异的技术,以便将其用作ML算法的输入。

在本章中,我们将介绍专注于个别语义单元(即单词或称为标记的短语组)的基本特征提取技术。我们将展示如何通过创建文档-术语矩阵来表示文档作为标记计数向量,然后将其用作新闻分类和情感分析的输入。我们还将介绍流行的朴素贝叶斯算法。

在接下来的两章中,我们将在这些技术的基础上使用主题建模和词向量嵌入等ML算法,以捕获更广泛上下文中包含的信息。

内容

  1. 使用文本数据的机器学习 - 从语言到特征
    • 自然语言处理的挑战
    • 应用场景
    • NLP工作流程
  2. 从文本到标记 - NLP管道
    • 代码示例:使用spaCy和textacy的NLP管道
      • 数据
    • 代码示例:使用TextBlob进行NLP
  3. 计算标记 - 文档-术语矩阵
    • 代码示例:使用scikit-learn的文档-术语矩阵
  4. 交易中的NLP:文本分类和情感分析
    • 朴素贝叶斯分类器
    • 代码示例:新闻文章分类
    • 代码示例:情感分析
      • 二分类:Twitter数据
      • 在大型多类Yelp数据集上比较不同的ML算法

使用文本数据的机器学习 - 从语言到特征

鉴于人类使用自然语言进行大量信息交流和存储,文本数据可能非常有价值。与投资相关的数据源范围从公司报表、合同或专利等正式文件,到新闻、观点和分析师研究或评论,再到各种社交媒体帖子或消息。

有用的资源包括:

  • 语音和语言处理, Daniel Jurafsky & James H. Martin, 第3版, 草稿, 2018
  • 统计自然语言处理和基于语料库的计算语言学, 斯坦福大学注释资源列表
  • NLP数据源

自然语言处理的挑战

将非结构化文本转换为机器可读格式需要仔细的预处理,以保留数据的有价值语义方面。人类如何从语言中获取意义并理解内容并不完全被理解,通过机器提高语言理解仍然是一个非常活跃的研究领域。

NLP具有挑战性,因为将文本数据有效用于机器学习需要理解语言的内部工作原理,以及它所指的世界知识。主要挑战包括:

  • 由于多义性导致的歧义(“Local High School Dropouts Cut in Half”)
  • 非标准和不断发展的语言使用,特别是在社交媒体中
  • 习语:“throw in the towel”
  • 实体名称可能很棘手:“Where is A Bug’s Life playing?”
  • 需要对世界的知识:“Mary and Sue are sisters” vs “Mary and Sue are mothers”

应用场景

应用场景描述示例
聊天机器人理解用户的自然语言并返回智能响应Api.ai
信息检索找到相关结果和相似结果Google
信息提取从非结构化文档中提取结构化信息从Gmail中提取事件
机器翻译一种语言到另一种语言Google翻译
文本简化保留文本的含义,但简化语法和词汇Rewordify, 简体中文维基百科
预测性文本输入更快或更容易输入短语补全, 一个更好的应用
情感分析说话者的态度Hater News
自动摘要提取式或抽象式摘要reddit的autotldr算法, autotldr示例
自然语言生成从数据生成文本计算机如何描述体育比赛, 发表者撤回120多篇胡言乱语论文
语音识别和合成语音转文本,文本转语音Google的Web语音API演示, Vocalware文本转语音演示
问答确定问题的意图,将查询与知识库匹配,评估假设Watson如何击败Jeopardy冠军Ken Jennings?, Watson Trivia Challenge, Watson背后的AI

NLP工作流程

使用机器学习从文本数据中提取信号以用于算法交易的一个关键目标是从文档中提取信号。文档是相关文本数据源(如公司报告、标题或新闻文章、推文)的单个样本。语料库是文档的集合。
下图概述了将文档转换为可用于训练能够做出可操作预测的监督机器学习算法的数据集的关键步骤。

从文本到标记 - NLP管道

下表总结了NLP管道的关键任务:

特征描述
标记化将文本分割为单词、标点符号等。
词性标注为标记分配词类型,如动词或名词。
依赖解析标记语法标记依赖关系,如主语<=>宾语。
词干化和词形还原分配单词的基本形式:“was” => “be”, “rats” => “rat”。
句子边界检测找到并分割单个句子。
命名实体识别标记"真实世界"对象,如人物、公司或地点。
相似性评估单词、文本段和文档的相似性。

代码示例:使用spaCy和textacy的NLP管道

笔记本nlp_pipeline_with_spaCy演示了如何使用开源Python库spaCy构建NLP管道。textacy库建立在spaCy之上,提供了对spaCy属性和其他功能的简单访问。

  • spaCy 文档和安装说明
  • textacy依赖于spaCy来解决其他NLP任务 - 参见文档
数据
  • BBC文章,使用原始文本文件
  • TED2013,15种语言的TED演讲字幕的平行语料库

代码示例:使用TextBlob进行NLP

TextBlob库提供了一个简化的界面,用于执行常见的NLP任务,包括词性标注、名词短语提取、情感分析、分类、翻译等。

笔记本nlp_with_textblob说明了它的功能。

  • 文档
  • 情感分析

一个很好的替代方案是NLTK,这是一个用于处理人类语言数据的Python程序的领先平台。它提供了易于使用的接口,可访问50多个语料库和词汇资源,如WordNet,以及用于分类、标记化、词干化、标注、解析和语义推理的一套文本处理库,以及工业级NLP库的包装器,以及一个活跃的讨论论坛。

  • 自然语言工具包(NLTK) 文档

计算标记 - 文档-术语矩阵

本节介绍了词袋模型,它将文本数据转换为数字向量空间表示,允许使用它们的距离比较文档。我们演示了如何使用sklearn库创建文档-术语矩阵。

  • TF-IDF是关于什么重要

代码示例:使用scikit-learn的文档-术语矩阵

scikit-learn预处理模块提供了两种创建文档-术语矩阵的工具。

  1. CountVectorizer使用二进制或绝对计数来测量每个文档d和标记t的术语频率tf(d, t)。
  2. TfIDFVectorizer则将(绝对)术语频率加权为逆文档频率(idf)。因此,在更多文档中出现的术语将比具有相同频率但在所有文档中频率较低的标记获得较低的权重。

笔记本document_term_matrix演示了用法和配置。

交易中的NLP:文本分类和情感分析

一旦使用前几节讨论的自然语言处理技术将文本数据转换为数值特征,文本分类就像任何其他分类任务一样工作。

在本节中,我们将将这些预处理技术应用于新闻文章、产品评论和Twitter数据,并教会各种分类器预测离散新闻类别、评论分数和情感极性。

首先,我们将介绍朴素贝叶斯模型,这是一种概率分类算法,在处理词袋模型生成的文本特征时表现良好。

  • 每日市场新闻情感和股票价格, David E. Allen & Michael McAleer & Abhay K. Singh, 2015, Tinbergen Institute讨论文件
  • 使用情感合成预测经济指标, Abby Levenberg等, 2014
  • 摩根大通NLP研究结果

朴素贝叶斯分类器

朴素贝叶斯算法在文本分类中非常流行,因为其低计算成本和内存需求使其能够在非常大和高维的数据集上进行训练。它的预测性能可以与更复杂的模型相媲美,提供了一个良好的基线,并以成功的垃圾邮件检测而闻名。

该模型依赖于贝叶斯定理和特征彼此独立的假设,给定结果类。换句话说,对于给定的结果,知道一个特征的值(例如文档中标记的存在)不会提供关于另一个特征值的任何信息。

代码示例:新闻文章分类

我们从一个说明朴素贝叶斯模型对2,225篇BBC新闻文章进行分类的例子开始,这些文章我们知道属于五个不同的类别。

笔记本text_classification包含相关示例。

代码示例:情感分析

情感分析是自然语言处理和机器学习在交易中最受欢迎的用途之一,因为资产或其他价格驱动因素的正面或负面观点很可能影响收益。

一般来说,情感分析的建模方法依赖于词典,如TextBlob库,或针对特定领域训练的模型。后者更可取,因为它允许更有针对性的标记,例如将文本特征与随后的价格变化联系起来,而不是间接的情感得分。

请参见data目录中有关获取数据的说明。

二分类:Twitter数据

我们使用一个带有二元极性标签的Twitter数据集以及一个带有五点结果尺度的大型Yelp商业评论数据集,说明情感分析的机器学习。

笔记本sentiment_analysis_twitter包含相关示例。

  • Cheng-Caverlee-Lee 2009年9月 - 2010年1月 Twitter数据抓取
在大型多类Yelp数据集上比较不同的ML算法

为了说明大规模文本处理和分类,我们还使用了Yelp数据集。

笔记本sentiment_analysis_yelp包含相关示例。

  • Yelp数据集挑战赛

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1828237.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

FPGA IO_BANK、IO_STANDARD

描述 Xilinx 7系列FPGA和UltraScale体系结构提供了高性能&#xff08;HP&#xff09;和 高范围&#xff08;HR&#xff09;I/O组。I/O库是I/O块&#xff08;IOB&#xff09;的集合&#xff0c;具有可配置的 SelectIO驱动程序和接收器&#xff0c;支持多种标准接口 单端和差分。…

基于WPF技术的换热站智能监控系统14--搭建西门子PLC通信环境

1、安装博途软件V15 本项目需要用到西门子PLC&#xff0c;系统所需的数据来自现场PLC实时采集的数据&#xff0c;所以需要配置PLC的通信环境&#xff0c;具体请看以下博客文章。 windows10企业版安装西门子博途V15---01准备环境_博途v15.1安装需求-CSDN博客 windows10企业…

【PPT教程】一键重置幻灯片背景的方法,新建幻灯片带默认背景

目的是替换18届的研电赛ppt背景为19届 这里写目录标题 1.设计->设置背景格式2.图片或纹理填充->插入3.选择需要替换为背景的照片4.点击下方的应用到全部 1.设计->设置背景格式 2.图片或纹理填充->插入 3.选择需要替换为背景的照片 4.点击下方的应用到全部 此时全部…

flask部署mtcnn

目录 打印人脸检测信息 输出结果 保存检测结果 浏览器查看nginx&#xff08;nginx配置这里就不多介绍了&#xff09; url图片检测人脸 输出结果 Flask hello-world Flaskmtcnn python调flaskmtcnn 打印人脸检测信息 import cv2 from mtcnn.mtcnn import MTCNNimg cv2.c…

【使用 WSL子系统 在 Windows 上安装 Linux(官方教程)】

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言一、使用 wsl --install二、额外的命令 前言 在最新的Windows Insider Preview版本中&#xff0c;只需运行wsl.exe-install&#xff0c;就可以安装运行WSL所需…

WINUI——Trigger(触发器)使用小结

背景 WINUI不提供原生的Trigger支持&#xff0c;推荐使用VisualStateManager进行操作&#xff1b;然对于从WPF转WINUI的开发人员而言&#xff0c;经常会想用Trigger解决问题&#xff0c;鉴于此社区推出了CommunityToolkit.WinUI.Triggers以支持Trigger的使用。 使用方法 1.项…

Properties与xml知识点总结

文章目录 一、Properties1.1 构造方法1.2 从Properties文件中获取1.3 向Properties文件中存储 二、xml2.1 XML2.2 特点2.3 规则2.3 抬头声明2.4 特殊字符2.5 **CDATA区段**2.4 作用和应用场景 三、区别 一、Properties 定义&#xff1a;properties是一个双列集合集合&#xff…

双链表——AcWing.827双链表

双链表 定义 双链表是链表的一种&#xff0c;它的每个节点有两个指针&#xff0c;一个指向前一个节点&#xff0c;一个指向后一个节点。这样使得链表可以双向遍历。 运用情况 频繁进行前后双向遍历操作时非常有用&#xff0c;比如在一些需要来回移动处理数据的场景。可以方…

【Linux系列】深入理解 CURL 命令及其在网络请求中的应用

&#x1f49d;&#x1f49d;&#x1f49d;欢迎来到我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里可以感受到一份轻松愉快的氛围&#xff0c;不仅可以获得有趣的内容和知识&#xff0c;也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…

用宝塔部署vue+springboot上线公网详细步骤

首先自己在腾讯云中按照教程安装好宝塔。这是宝塔面板&#xff0c;获取登录宝塔的网址和账号密码。 1.在navicat新建数据库 如果出现权限问题&#xff0c;可以在宝塔数据库面板phpMyAdmin中进行权限设置 navicat可以修改用户权限 2.在宝塔面板新建数据库 3.将前端打包的dist文件…

k8s部署短视频网站(后台+web前端+web管理)

一、系统环境 系统centos7k8sv1.24containerdv1.7.16etcdv3.5.0 二、镜像生成工具准备 nerdctlv1.7.6buildkitv0.13.2 1 nerdctl安装 下载&#xff1a; wget -c https://github.com/containerd/nerdctl/releases/download/v1.7.6/nerdctl-full-1.7.6-linux-amd64.tar.gz …

【电路笔记】-共基极放大器

共基极放大器 文章目录 共基极放大器1、概述2、等效电路3、电流增益4、输入阻抗5、输出阻抗6、电压增益7、示例:电压、电流和功率增益8、总结1、概述 在本文中,我们将介绍双极晶体管放大器的最后一种拓扑,称为共基极放大器 (CBA)。 下面的图 1 显示了 CBA 的电气图,此处没…

RabbitMQ揭秘:轻量级消息队列的优缺点全解析

我是小米,一个喜欢分享技术的29岁程序员。如果你喜欢我的文章,欢迎关注我的微信公众号“软件求生”,获取更多技术干货! 亲爱的读者朋友们,大家好!我是小米,一个热爱技术、喜欢分享的大哥哥。今天我们来聊聊一个在消息队列领域非常重要的工具——RabbitMQ。作为一个在通信…

python简单练习案例-石头剪刀布小游戏

&#x1f308;所属专栏&#xff1a;【python】 ✨作者主页&#xff1a; Mr.Zwq ✔️个人简介&#xff1a;一个正在努力学技术的Python领域创作者&#xff0c;擅长爬虫&#xff0c;逆向&#xff0c;全栈方向&#xff0c;专注基础和实战分享&#xff0c;欢迎咨询&#xff01;…

L53--- 144. 二叉树的后序遍历(深搜)---Java版

1.题目描述 2.思路 &#xff08;1&#xff09;比如 1/ \2 3从根节点开始&#xff1a; 初始时&#xff0c;currentSum 为 0。 根节点的值为 1。 更新后的 currentSum 0 * 10 1 1。 处理左子节点&#xff1a; 当前 currentSum 为 1&#xff08;即路径 “1”&#xff09;。…

AI预测体彩排3采取888=3策略+和值012路或胆码测试6月16日升级新模型预测第1弹

根据前面的预测效果&#xff0c;我对模型进行了重新优化&#xff0c;因为前面的模型效果不是很好。熟悉我的彩友比较清楚&#xff0c;我之前的主要精力是对福彩3D进行各种模型的开发和预测&#xff0c;排三的预测也就是最近1个月才开始搞的。3D的预测&#xff0c;经过对模型的多…

【Emacs Verilog mode保姆级的使用指南】

&#x1f308;个人主页: 程序员不想敲代码啊 &#x1f3c6;CSDN优质创作者&#xff0c;CSDN实力新星&#xff0c;CSDN博客专家 &#x1f44d;点赞⭐评论⭐收藏 &#x1f91d;希望本文对您有所裨益&#xff0c;如有不足之处&#xff0c;欢迎在评论区提出指正&#xff0c;让我们共…

FreeBSD jail虚拟容器里装ubuntu系统没有apt命令怎么办?

问题 在FreeBSD jail里使用linux兼容创建了ubuntu环境&#xff0c;但是没有apt命令&#xff0c;该怎么办呢&#xff1f; jail的介绍&#xff1a;FreeBSD jail 容器手册_freebsd虚拟化-CSDN博客 系统是这样进去的&#xff1a; jexec focal chroot /compat/ubuntu /bin/bash …

38、基于卷积神经网络(CNN)的车牌自动识别系统(matlab)

1、原理及流程 1&#xff09;原理 CNN&#xff08;卷积神经网络&#xff09;是一种深度学习模型&#xff0c;可以用于图像识别和分类任务。车牌自动识别系统的原理基本上就是使用CNN模型对车牌图像进行处理和识别。 首先&#xff1a;系统需要收集大量的含有车牌的图像数据作…

异常封装类统一后端响应的数据格式

异常封装类 如何统一后端响应的数据格式 1. 背景 后端作为数据的处理和响应&#xff0c;如何才能和前端配合好&#xff0c;能够高效的完成任务&#xff0c;其中一个比较重要的点就是后端返回的数据格式。 没有统一的响应格式&#xff1a; // 第一种&#xff1a; {"dat…