⏩ 直播课:文本分析-爬虫-机器学习

发布时间:2021-03-12 阅读 7191

连享会 >>> 文本分析 | 爬虫 | 机器学习

???? 连享会 · 直播课:Text is Data


目录


1. 课程概览

1.1 课程提要

  • 课程目标: 掌握爬虫、文本分析和机器学习的核心方法和基本分析流程。
  • 核心内容: 本课程主要介绍正则表达式相关语法规则及非结构化数据处理;讲解 Python 的基础知识,并使用 Python 进行数据处理、数值计算、网络爬虫、文本分析等不同任务的处理;介绍机器学习常用算法,如决策树、随机森林、支持向量机以及神经网络等的基本原理,并使用 Python 实现各类算法。
  • 主要方法: Python, Scipy, Numpy, Pandas, Matplotlib, Plotly, BeautifulSoup, Request, Selenium, Scikit-learn, TensorFlow, Jieba, NLTK, gensim 等。
  • 主要软件\语言: Stata, R, Python
  • 课程资料: 开课前一周,将课程资料包发送至学员邮箱。包括:课程讲义,范例程序和数据,以保证大家能够在自己的电脑上重现课程中讲述的所有内容。

1.2 课程特色

  • 深入浅出:掌握最主流的文本分析和爬虫方法
  • 电子板书:全程电子板书演示,课后分享;听课更专注,复习更高效。
  • 电子讲义:分享全套电子版课件 (数据、程序和论文),课程中的方法和代码都可以快速移植到自己的论文中。

1.3 听课软件

    本次课程可以在手机,Ipad 以及 Windows 系统的电脑上听课。

  • 手机/iPad:直接在应用商店搜索「大黄蜂云课堂」安装即可
  • 电脑(windows):打开 https://www.360dhf.cn/dhfplayer/,下载 「大班课直播学生端」

特别提示: 一个账号绑定一个设备,且听课电脑 需要 Windows 系统 ,请大家提前安排自己的听课设备。

2. 嘉宾简介

游万海,福州大学经济与管理学院教师,主要研究领域为空间计量模型、分位数回归模型及相关实际问题的应用,以主要作者在国内外期刊《World Development》、《Energy Economics》、《Economics Letters》、《Finance Research Letters》、《Journal of Cleaner Product》、《Energy Sources, Part B: Economics, Planning, and Policy 》、《统计研究》发表学术论文 30 余篇,担任《Energy Economics》、《Journal of Cleaner Product》、《Economic Modelling》、《International Review of Economics & Finance》等期刊匿名审稿人。

司继春,上海对外经贸大学统计与信息学院讲师,主要研究领域为微观计量经济学、产业组织理论。在 Journal of Business and Economic Statistics、《财经研究》等学术刊物上发表多篇论文,-主页-。 其实,大家更熟悉的是知乎上大名鼎鼎的 慧航,拥有 20w+ 个关注者,获得过 14w+ 次赞同,他就是司继春老师 —— 知乎-慧航

3. 课程详情

3.1 课程导引

实证研究中,数据的 获取及处理 是第一步,也是至关重要的一个环节!

在传统的经济和金融分析中,我们使用的主要是结构化的数据 (多数数据来源于统计年鉴、商业数据库,如 GTA,Wind 等),而在大数据时代,大量有价值的信息以文本等非结构化、异构型的数据格式存储于互联网网页或者各类文档中。从 Web 上快速、有效地提取这些信息对人文社会科学的深度研究尤为重要。

这些文本信息如何 获取 ?答曰:网络爬虫
这些文本信息如何 处理 ?答曰:正则表达式
这些文本信息如何 分析 ?答曰:话题分析和情感分析

事实上,无论是在管理学、经济学、金融学、会计学,还是人文社会科学的其他领域,基于网络爬虫的文本分析类研究都得到了高度的关注。其火热程度可以从相关论文的 Google 学术引用次数窥豹一斑。

例如,在金融和会计领域,Loughran and McDonald (2011) 发表于 Journal of Finance 上的有关文本分析技术的综述性文章,短短 8 年时间,引用率已经超过 1000。二人于 2016 年发表于 Journal of Accounting Research 的另一篇介绍文本分析在会计和金融领域应用的综述性文章目前已被引用 300 余次。

此外,在政治学领域,Grimmer and Stewart (2013) 的 "Text as data: The promise and pitfalls of automatic content analysis methods for political texts",被引用 1200 余次;经济学领域,Hoberg and Phillips (2016, JPE) 被引用 500 余次。

利用 Google 学术 顺藤摸瓜,可以发现,各个领域文本分析的来源非常丰富,包括:历史典籍、报纸新闻、明清房契、刑科题本、公司公告、明星微博等等,从而使研究的主题也得到了极大的扩展。

下面是一些我们摘录的一些论文信息:

经济学领域:

  • Hoberg, Gerard, and Gordon Phillips. 2016, Text-based network industries and endogenous product differentiation,?Journal of Political Economy 124, 1423-1465. Google 引用率超过 500 次。-PDF1-, -PDF2-

金融和会计领域:

  • Loughran, Tim, and Bill McDonald. 2011. When is a liability not a liability? Textual analysis, dictionaries, and 10‐ks,?Journal of Finance?, 66, 35-65. 该文是金融和会计领域颇具影响力的一篇文章,2011 年发表,短短几年的时间,Google 引用率已经超过 1000 次。-PDF1-, -PDF2-
  • Loughran, T., and B. Mcdonald. 2016, Textual analysis in accounting and finance: A survey,?Journal of Accounting Research?54, 1187-1230.? -PDF-。发表仅 2 年的时间,Google 学术引用率已经飙升到接近 300 次。-PDF1-, -PDF2-
  • Jegadeesh, Narasimhan, and Di Wu. 2013. Word power: A new approach for content analysis,?Journal of Financial Economics? 110, 712-729. Goolge 学术引用率 207 次。-PDF1- -PDF2-
  • Neuendorf, Kimberly A, 2017. The content analysis guidebook (Sage). 自 2002 年第一版以来,目前引用率已经达到 10000 余次。

社会学领域:

  • Fairclough, Norman. 2003. Analysing discourse: Textual analysis for social research (Psychology Press). 被引用次数:12678

政治学领域:

  • Grimmer, Justin, and Brandon M Stewart. 2013, Text as data: The promise and pitfalls of automatic content analysis methods for political texts, Political analysis 21, 267-297. Google 引用率超过 1200 次。 -PDF-

3.2 课程特色

A. 以需求为导向的课程架构

完整的知识架构是你长期成长的动力源泉! 在此次课程中,我们力求将四天的课程设置成一个比较完整的文本分析体系,以期达成如下目标:

  • 其一,能够实现多数网站数据爬取任务;
  • 其二,能熟练掌握正则表达式对非结构化数据进行清理;
  • 其三,能够建立起文本分析的基本架构,熟知文本分析所涉及的基本概念和分析流程。

B. 顺势而为:Stata+Python+R

2019 年 6 月 26 日,Stata 官网正式推出 Stata 16。一大亮点在于增加了与 Python 互通的接口:你可以在 Stata 的 Do-file 编辑器中编写 Python 代码,也可以直接从 Stata 界面下直接调用既有的 Python 代码和函数。

这意味着什么呢? 这意味着我们日后的分析工作都是任务导向的,不再依赖于特定的某种软件或语言。更直接地说,不久之后,每个 PhD 学生都至少要掌握 2-3 种软件和语言,以便应对不同的分析任务。这种改变使得我们得以迈出自己的小圈子,在一个更为广阔的天地中与更多的 「同行」 分享-被分享 知识和经验。

为此,本次课程中我们希望能引领各位顺畅地从温馨的 Stata 小屋跨入 Python 的天地。为了达到这个目的,我们为大家铺设了两条 「缓坡通道」:

其一 ,课程中会使用 Jupyter Notebook 进行讲解。它可以帮助文件在一份文档里同时运行 Stata 和 Python 代码 (当然,也可以嵌入 R 或 Matlab 等代码),还可以像写论文一样记录下你的任何想法和研究结果。更重要的是,大家可以在自己的电脑上边看讲义边执行命令,完全重现课程中的所有内容。

其二,在内容设置上,第 1-2 讲,主要采用 Stata 进行讲解,这是多数学员的主场;基于 Stata 理解并掌握了正则表达式等内容后,我们将介绍如何在 Stata 内部使用 rcall 命令调用两个 R 中的包 (rvestrdom),以便实现多数爬虫任务。这其中只需要了解一些简单的 R 命令即可。最后,为了实现更为复杂的爬虫和文本分析任务,在第 5-12 讲中,我们将转入 Python。

C. 为什么要学 Python 和 R?

Python 的易用和流行趋势已经不必多言。作为 Stata 的有益补充,Python 在文本分析、爬虫、机器学习等方面有独特优势。作为 Stata 的老用户,连玉君老师建议「左手 Stata,右手 Python」,而李春涛创办的爬虫俱乐部也将其公众号更名为「Stata and Python 数据分析」,足见 Python 的魅力。

R 作为一门免费、开源的语言,已被国外大量学术和科研机构所认可,其被广泛应用于数据挖掘、机器学习、数据可视化、计量经济学和空间统计等领域。正是因为其拥有众多使用者,大量的外部包被开发应用于各个领域 (15000+ 个,截止 2021.2.6)。刚开始接触 R 语言的学员经常有这样的一个疑问:为什么 R 体积小,功能却如此多,这正是因为大量外部包的存在。

到底学 R 还是 Python? 其实两者是不冲突的!这两门语言存在大量的相似之处,功能都非常强大,其实现都是基于 基础包(模块) + 外部包(模块)。 因此,将两者进行对比学习往往能起到事半功倍的效果。

3.3 授课内容

在内容安排上,本着「由浅入深,循序渐进」的原则,在第一部分中 (第 1-4 讲) 我们首先从整体上介绍文本分析的基本框架和分析流程,以便让大家对其分析套路有一个整体上了解。进而从文本处理函数和正则表达式入手,依序介绍爬虫方法、文本信息提取和文本匹配方法。在第二部分中 (第 5-12 讲),依次介绍 Python 基础,数值运算方法,爬虫进阶 (动态网页的爬取),最后介绍几种机器学习法算法,并应用于文本情感分析。

各个专题的具体介绍如下:

第 1 讲 介绍 Stata 读取本地/网络数据的方法,并辅以扩展宏函数读取多个数据文件;介绍 ustrregexmustrregexsustrregexra 等函数,最后通过例子讲解元字符、序列、字符类、数量词和位置匹配符。

第 2 讲 以豆瓣 Top 250 电影信息为例,讲解正则表达中回溯引用、零宽断言、贪婪与懒惰等规则,并介绍外部命令 moss 的用法。

第 3 讲 介绍网页解析中的 XPath 表达式,讲解爬虫的一些基础知识;从四则运算、基本数据类型和结构、流程控制、函数编写及包的安装与使用等方面介绍 R 的基础知识;以 yahoo finance 网站数据下载等为例,讲解如何通过 Stata 调用 R 语言程序。最后,调用 R 中的 rvestrdom 包实现对静态网页和动态网页信息的提取,实现京东商城和城市空气质量指数历史数据下载;最后,利用正则表达式对所爬取的数据进行清理。

第 4 讲 通过介绍下载和分析深交所问询函,掌握文本文档信息的处理方法;借助正则表达式进行关键词提取,分析文本复杂性;之后,讲解文本匹配方法,实现多个数据库间的衔接。在跨国研究中,经常碰到这样一个问题。如因变量来自于一个数据库 (如:World development indicators, WDI),自变量来自于另外一个数据库 (如:ICRG data ),而不同数据来源的国家名称并非统一的,此时常用的 merge 命令无能为力,需要进行文本匹配。事实上,在配合使用 「中国工业企业数据库」「中国海关数据库」 时,也会遇到相似的问题。此外,利用面板数据建模时,数据集的生成较为困难,如何在个体数和时期数之间平衡也是一个关键问题。我们还会对如何通过 post 命令生成单位根检验结果,符合期刊的规范格式。

第 5-7 讲 介绍 Python 的基本语法,包括基本的数据结构:数字、字符串、元组、列表、词典等,以及常用的控制结构,包括条件、循环、函数等,最后介绍列表推断、Lambda 表达式等数据科学中常用的 Python 语法。在此基础上,将重点从读取和写入文件、正则表达式的使用以及简单的词频统计等方面介绍 Python 处理字符串的方法。最后,针对中文自然语言处理,具体介绍中文分词 Jieba 以及 NLTK 等工具的使用方法。

第 8 讲 为 Python 爬虫专题。首先介绍 HTML 语言的基础知识,并在即基础上,结合 BeautifulSoup、正则表达式等对 HTML 进行解析,提取所需要的有用信息。接着,介绍 HTTP 协议等的基本原理,并使用 Request 等工具发送请求,从而爬取静态页面以及简单的动态页面。最后,针对一些比较复杂的动态页面,介绍使用 Selenium 对网页进行动态渲染并进行爬取。此外,还将介绍常用的反爬措施以及可能的突破反爬的手段。

第 9 讲 这一讲主要介绍 Python 中的数值计算常用的包,包括使用 Numpy 处理向量、矩阵及其运算;使用 Pandas 整理数据;使用 Scipy 进行科学计算;使用 Matplotlib 以及 Plotly 等工具进行画图等。这部分是进一步进行机器学习等分析的重要工具。

第 10-12 讲 主要包括两部分。第一部分是机器学习的入门,主要介绍监督学习的基础知识、模型评价方法以及常用的避免过拟合的工具等等,在此基础之上,介绍决策树、随机森林、支持向量机、神经网络等常用的监督学习方法,并将其应用在文本分类、情感分析中。第二部分主要介绍自然语言处理的一些常用方法,如词嵌入 (embedding) 的常用方法 word2vec、使用词袋、TF-IDF 等方法计算文本相似性以及话题模型等。每一部分的介绍都会辅以一些实操案例。

4. 课程大纲

Part A:游万海老师 (2 天)

第 1 讲 字符函数和正则表达式(3 小时)

  • 文件管理与读取:本地、网络数据读取 (copy, import等);JSON 格式数据;文件列举与循环
  • 字符函数
  • 正则表达式引擎: DFANFA
  • 正则表达式:元字符、字符类、数量词、贪婪懒惰模式
  • 案例 1:连享会推文目录下载 ( lianxh 命令原理)
  • 案例 2:新冠肺炎确诊患者活动轨迹 (JSON 格式演示)
  • 案例 3:基于百度高考信息的志愿填报 (JSON 格式演示)

第 2 讲 Stata 正则表达式进阶(3 小时)

  • 位置匹配符、序列
  • 回溯引用、零宽断言
  • moss 命令
  • 案例 4:豆瓣 Top 250 电影信息收集 (电影名称、评分、上映年份、主演及导演等)
  • 案例 5:论文正文引用文献抽取

第 3 讲 爬虫基础(3 小时)

  • R 语言基础: 基本运算-数据类型与数据结构-流程控制-函数编写
  • Stata 调用 R 程序:Rcall
    • 案例 6Yahoo Finance 网站数据下载
  • 静态网页爬虫
    • Xpath 表达式、 CSS 选取器 SelectorGadgetrvest
    • 案例 7:豆瓣电影 top250 信息下载
    • 案例 8:某大学经济与管理学院讲座信息下载
    • 案例 9:中国银行汇率数据下载
  • 动态网页爬虫
    • 利用 Cookie 信息爬取
      • 案例 10:必胜客餐厅全国分布
    • Selenium 自动化工具和模拟登陆
      • 案例 11:人大经济论坛数据
      • 案例 12:京东商城数据
      • 案例 13:空气质量指数历史数据
      • 案例 14:新浪中心滚动新闻

第 4 讲 文本信息处理(3 小时)

  • PDF (Word) 文档信息提取与变量构造
    • 关键词提取、文本复杂性分析、主题提取
    • 案例 15:深交所问询函爬取与分析
    • 参考文献:陈运森等 (2019, 管理世界)、陈运森等 (2018, 金融研究)、李晓溪等 (2019, 经济研究)
  • 图片数据提取与处理
  • PDF 表格数据提取与处理
  • 文本匹配与实证研究
    • 文本匹配:精确匹配、模糊匹配
    • 实证研究:变量选取、数据清洗、模型设定、结果输出与呈现
    • 案例 16:WDI 数据整理与空间面板模型应用实例
    • 参考文献:Williams & Williams (2014), Raciborski (2008), You & Lv (2018)

参考文献:

  • 陈运森,邓祎璐,李哲.证券交易所一线监管的有效性研究:基于财务报告问询函的证据[J].管理世界,2019 (3): 169-185. -Link--PDF-
  • 陈运森,邓祎璐,李哲. 非处罚性监管具有信息含量吗?——基于问询函的证据[J].金融研究,2018 (4): 155-171. -Link--PDF-
  • 李晓溪, 杨国超, 饶品贵. 交易所问询函有监管作用吗?——基于并购重组报告书的文本分析[J].经济研究. 2019 (5). -Link--PDF-
  • Williams, U., & Williams, S. P. (2014). txttool: Utilities for text analysis in Stata. The Stata Journal, 14(4), 817-829. -PDF1-, -PDF2-
  • Raciborski, R. (2008). kountry: A Stata utility for merging cross-country data from multiple sources. The Stata Journal, 8(3), 390-400. -PDF1-, -PDF2-
  • You, W (游万海), & Lv, Z. (2018). Spillover effects of economic globalization on CO2 emissions: a spatial panel approach. Energy Economics, 73, 248-257. -PDF1-, -PDF2-

Part B:司继春老师 (4 天)

第 5 讲 Python 基础 (3 小时)

  • Python 数据类型和基本运算:数值、字符串、列表、元组、字典等
  • Python 控制结构:条件、循环
  • Python 中的文件管理:文本文件、csv 文件、二进制文件等
  • Python 语法补充:列表推断
  • 案例 1:词频统计的简单实现

第 6 讲 Python 使用进阶 (3 小时)

  • Python 中的函数和 Lambda 表达式
  • Python 中的函数式编程:map, reduce, 闭包等
  • Python 中的面向对象编程:类和对象
  • Python 中的包管理
  • 案例 2:使用 jieba 实现中文分词
  • 案例 3:NLTK 使用入门

第 7 讲 Python 中的字符串和正则表达式 (3 小时)

  • Python 中的字符串函数
  • Python 中正则表达式的使用

第 8 讲 Python 爬虫专题 (3 小时)

  • HTML 基础
  • 使用 BeautifulSoup 和正则表达式解析 HTML
  • HTTP 协议基础
  • 使用 request 发送 Http 请求
  • 使用 Selenium 爬取动态网页
  • 案例 4:API 信息爬取
  • 案例 5:房产价格的爬取
  • 案例 6:网上商城价格爬取

第 9 讲 Python 中的数值计算 (3 小时)

  • Numpy 基础:向量与矩阵的操作
  • Numpy 进阶:向量计算与切片
  • Scipy 简单介绍:特殊函数计算、最优化
  • Matplotlib 简介:直方图、散点图、线图等图形的绘制
  • Pandas 基础:序列与数据框
  • Pandas 进阶:切片、数据操作和处理
  • 案例 7:OHIE 数据中住院次数的经验贝叶斯分析

第 10 讲 机器学习初步 (3 小时)

  • 机器学习概述:评价模型的标准
  • 机器模型概述:交叉验证和正则化
  • 无监督学习:聚类和嵌入 (embedding)
  • 监督学习:线性回归、Logistic 回归、决策树、随机森林
  • 案例 8:女性劳动参与的预测
  • 案例 9:零售商的客户划分

第 11 讲 神经网络 (3 小时)

  • 神经网络简介
  • PyTorch 的使用
  • 循环神经网络简介
  • LSTM 模型的实现
  • 案例 10:使用 LSTM 模型预测金融时间序列

第 12 讲 文本分析 (3 小时)

  • 词袋模型、TF-IDF 的原理和实现
  • 词嵌入模型的使用
  • 文本相似性的计算
  • 情感分析:情感词典方法
  • 情感分析:监督学习法
  • 案例 11:新闻数据的文本相似性计算
  • 案例 12:金融新闻的情感分析

5. 报名和缴费信息

  • 主办方: 太原君泉教育咨询有限公司
  • 标准费用(含报名费、材料费):
    • 全价:5700 元/人
    • 团报价 (三人及以上)享受9折优惠
  • 老学员优惠:
    • 连享会现场班以及线上直播大课学员享受 9 折优惠。
  • Note: 以上各项优惠不能叠加使用。
  • 联系方式:
    • 邮箱:wjx004@sina.com
    • 王老师:18903405450 (微信同号)
    • 李老师:‭18636102467 (微信同号)

报名链接

报名链接: http://junquan18903405450.mikecrm.com/4EAq2yM
或 长按/扫描二维码报名:

缴费方式

方式 1:对公转账

  • 户名:太原君泉教育咨询有限公司
  • 账号:35117530000023891 (晋商银行股份有限公司太原南中环支行)
  • 温馨提示: 对公转账时,请务必提供「汇款人姓名-单位」信息,以便确认。

方式 2:微信扫码支付

温馨提示: 微信转账时,请务必在「添加备注」栏填写「汇款人姓名-单位」信息。

附:文中 PDF 参考文献浏览

https://quqi.gblhgk.com/s/880197/TFw820f7coutaEXM

⚽ 6. 助教招聘

说明和要求

  • 名额: 8 名
  • 任务:
    • A. 课前准备:协助完成 3 篇推文,风格类似于 lianxh.cn 推文;
    • B. 开课前答疑:协助学员安装课件和软件,在微信群中回答一些常见问题;
    • C. 上课期间答疑:针对前一天学习的内容,在微信群中答疑 (8:00-9:00,19:00-22:00);参见 往期答疑
    • Note: 下午 5:30-6:00 的课后答疑由主讲教师负责。
  • 要求: 热心、尽职,熟悉 Stata 或 R 或 Python 的基本语法和常用命令,能对常见问题进行解答和记录。优先考虑熟悉 R 或 Python 的申请人。
  • 特别说明: 往期按期完成任务的助教自动获得本期助教资格,不必填写申请资料,直接联系连老师即可。
  • 截止时间: 2021 年 2 月 18 日 (将于 2 月 20 日公布遴选结果于连享会主页:lianxh.cn)

申请链接:

https://www.wjx.top/jq/45760506.aspx

或 扫码在线填写助教申请资料:

???? 课程主页: https://gitee.com/lianxh/text


关于我们

  • ???? 连享会 ( 主页:lianxh.cn ) 由中山大学连玉君老师团队创办,定期分享实证分析经验。
  • ???? 直达连享会:百度一下:连享会】即可直达连享会主页。亦可进一步添加 主页,知乎,面板数据,研究设计 等关键词细化搜索。
  • New! lianxh 命令发布了: 在 Stata 命令窗口中输入 ssc install lianxh 即可安装,随时搜索连享会推文、Stata 资源,详情:help lianxh
连享会主页  lianxh.cn
连享会主页 lianxh.cn

New! lianxh 命令发布了: GIF 动图介绍
随时搜索连享会推文、Stata 资源,安装命令如下:
. ssc install lianxh
使用详情参见帮助文件 (有惊喜):
. help lianxh