金融科技之NLP:上市公司新闻标题分类
本文的目标
本文的目标是训练出上市公司新闻的分类模型,根据新闻标题将上市公司的新闻自动分为利好、利空和模糊中性三类。
本文是创新创业项目第一阶段的技术总结,只给出了设计方法和结果,不提供源码。
实现步骤
1.获取原始数据
使用爬虫调用百度搜索引擎的接口,获取了10000余条沪深300成分股的新闻。
部分结果展示:
2.原始数据人工标注
从10000余条原始数据中选取来源于主流媒体的8000条数据,由人工根据新闻标题进行标注,分为利好、利空、模糊中性和数据存在问题4类。每条数据将由两名同学独立标注,拥有两个标签,汇总时只保留两个同学标准结果相同的数据,以提高标注数据的质量。
部分标注数据如下图所示。
将只有一个标注结果的数据筛掉,得到6000余条带标注的数据。其中两个标注相同的数据约4000条,将这4000余条数据作为样本。
3.样本数据分析
3.1 样本类别分布
样本的类别分布如下图所示。
3.2 数据清洗
数据清洗阶段的工作:
1.清洗掉上市公司的名称,因为公司的名词会多次出现,但本身并没有偏向性,影响训练结果。
2.只保留汉字。
3.3 词频统计
使用jieba库对标题数据分词,统计每个类别的标题中各词出现的频率。
各类别标题中出现次数前20的词以及词频。
利好类 | count | 利空类 | count | 模糊中性类 | count | ||
---|---|---|---|---|---|---|---|
万元 | 610 | 万元 | 412 | 公司 | 86 | ||
日 | 420 | 净利润 | 245 | 的 | 45 | ||
月 | 418 | 年 | 225 | 万元 | 30 | ||
净利润 | 416 | 年度 | 209 | 拟 | 30 | ||
年 | 368 | 亿元 | 195 | 日 | 29 | ||
增长 | 312 | 同比 | 193 | 月 | 28 | ||
同比 | 303 | 亏损 | 181 | 股东 | 28 | ||
净利 | 298 | 预计 | 165 | 为 | 26 | ||
一季度 | 282 | 下降 | 155 | 减持 | 25 | ||
净 | 278 | 约 | 132 | 净 | 25 | ||
亿元 | 278 | 一季度 | 124 | 亿元 | 25 | ||
预计 | 228 | 日 | 124 | 股份 | 23 | ||
买入 | 214 | 月 | 115 | 融资 | 22 | ||
年度 | 200 | 归母 | 98 | 有限公司 | 19 | ||
融资 | 184 | 净利 | 97 | 业务 | 19 | ||
快速 | 169 | 第一季度 | 87 | 目前 | 19 | ||
第一季度 | 156 | 净亏损 | 76 | 股权 | 18 | ||
公司 | 148 | 减少 | 73 | 年 | 18 | ||
约 | 148 | 万 | 66 | 子公司 | 17 | ||
偿还 | 146 | 业绩 | 64 | 偿还 | 17 |
4 特征构建
4.1 单词偏向性特征构建
从3.3的结果中可以明显得看出,中性的词在各类别中出现的次数都较多,如万元、公司、年、月、日等,但这些词本身没有太多有价值的信息。
需要构建一个指标,来量化一个词对某一类的偏向性。
假设单词个数为n,类别数量为m
我们采用的算法如下:
step1:对于每一类,将该类新闻标题包含的单词按照出现的频率降序排序,每一个单词在每一类中都有一个排序后的位置序号。index[word_i][cls_j]即为单词word_i在cls_j类中按照出现频率降序排序后的位置。
step2: 对于单词word_i,其对新闻类别cls_j的偏向性分数定义为:
score[word_i][cls_j] = sigma(index[word_j][cls_k],k不等于j)/ (m-1)- index[word_i][cls_j]
即该单词在其他类别中的位置序号的均值减去在该类别中的位置序号。
将单词根据利好偏向性降序排序:
将单词根据利空偏向性降序排序:
可见,构建的单词对类别的偏向性指标可以有效地量化一个单词对一个类别的偏向程度。
4.2 标题偏向性特征构建
一个标题对某个类别的偏向性计算步骤:
1、将标题分词
2、计算每一个单词对该类别的偏向性
3、求该标题包含的所有单词对该类别的偏向性的均值,该均值就是标题对该类别的偏向性。
4.3 标题分类模型的特征选取
每一个标题构建3个维度的特征,即该标题对利好、利空、模糊中性三个类别的偏向性。
样本点在三个维度构成的空间中的分布如下图所示。
可以看到,样本点按照类别在三维空间中分布范围特别明显,说明这三个特征对样本的分类很有帮助。
5 模型训练与评价
使用SVM训练分类器。
使用5折交叉验证对模型的过拟合情况进行检测,5次训练-测试的模型f1-score的均值为0.866
具体为
0.852, 0.867, 0.855, 0.866, 0.883
6 优化方向
1.使用专业的金融词典进行分词
2.更多的样本
金融科技之NLP:上市公司新闻标题分类相关推荐
- python 新闻标题分类_NLPCC2017(中文)新闻标题分类示例代码以及数据描述
NLPCC 2017 新闻标题分类 代码运行环境 python2.7 (最好用anaconda2) tensorflow1.0.0 gpu版本或者cpu版本 建议操作系统:Linux Linux 上的 ...
- 零基础入门NLP - 天池新闻文本分类Task3笔记
零基础入门NLP - 天池新闻文本分类 以下以Datawhale与天池举办的新闻文本分类这个NLP赛题做的NLP入门Task2笔记 赛题链接:https://tianchi.aliyun.com/co ...
- 怎么用linux获得数据的标题,开源|NLPCC2017(中文)新闻标题分类示例代码以及数据描述...
https://storage.googleapis.com/tensorflow/linux/cpu/tensorflow- 1.0.0-cp27-none-linux_x86_64.whlhttp ...
- 零基础入门NLP之新闻文本分类挑战赛——赛题理解
假期还有两周左右就结束了,正巧,Datawhale联合天池发布了零基础入门NLP的学习,于是报名参加了零基础入门NLP-新闻文本分类. 本人之前刚接触NLP没多久,记录一下学习的历程,供和我一样的小白 ...
- 2018年Fintech金融科技关键词和入行互金从业必懂知识
2018年过去大半,诸多关键词进入眼帘: 5G,消费降级,数据裸奔,新零售,AI,物联网,云计算,合规监管,风控,割韭菜,区块链,生物识别,国民空闲时间以及金融科技. 这些词充斥着我们的生活和时间,而 ...
- 新闻本文分类-01赛题理解
该文是连载文章,基于新闻文本分类赛题从而入门自然语言处理.主要从赛题理解.数据读取与数据分析.基于机器学习的文本分类.基于深度学习的文本分类这四部分来学习NLP. 一.赛题背景 本次新人赛是Dataw ...
- 领域应用 | NLP 和知识图谱:金融科技领域的“双子星”
本文转载自公众号:恒生技术之眼. 自然语言处理(Natural Language Processing, NLP,语义计算)和知识图谱(Knowledge Graph, KG,知识计算)作为认知智能的 ...
- Paddle2.0实现中文新闻文本标题分类
Paddle2.0实现中文新闻文本标题分类 中文新闻文本标题分类Paddle2.0版本基线(非官方) 调优小建议 数据集地址 任务描述 数据说明 提交答案 代码思路说明 数据集解压 数据处理 数据读取 ...
- Task01——零基础入门NLP - 新闻文本分类之赛题理解
本篇目标 首先本篇文章会对赛题进行介绍以及个人对赛题的理解,带大家接触NLP的预处理.模型构建和模型训练等知识点. 赛题介绍 赛题名称:零基础入门NLP - 新闻文本分类 赛题任务:赛题以自然语言处理 ...
最新文章
- 生产订单新增按钮没权限
- com.alibaba.fastjson.JSONException: not close json text, token : :
- Linux 下的0 1 2特殊文件描述符~
- 【Java】JDBC连接MySQL/SQLServer/Oracle三种数据库
- 震惊!程序员一夜赚1W,没想到他就做了这个..........
- AcWing 861. 二分图的最大匹配(匈牙利算法)
- 51nod1355 斐波那契的最小公倍数
- 十一种值得女生交往的男生
- ajax前面$,连续多次发送Ajax前面的请求被后面的覆盖以致不能执行的问题
- 编译exe不弹窗口_详解matlab mbuild -setup找不到C++编译器解决方案
- 计算机培训短期速成班,【电脑基础班、速成班、短期班、计算机一级培训班】价格,厂家,电子商务-搜了网...
- 2018服务器cpu性能天梯图,哪里看CPU性能排行榜?2018年CPU天梯图最新版(高清)...
- 这是一篇关于如何成为一名AI算法工程师的长文
- home为什么是地点副词_home为什么可以做副词
- Flutter与RN
- js OO写的一个键盘字母游戏
- 科技热点周刊|马斯克套现 440 亿;苹果推出数字身份证;Meta 与微软合作;华为捐赠欧拉
- 关于java读写文件
- adb devices 出现offline的无敌解决办法
- 中小企业信息化建设分析报告