网站:policychangeindex.org
作者:Julian TszKin Chan、钟伟峰
请将所有意见/问题通过电子邮件发送至 julian.chan [AT]policychangeindex.org 或 weifeng.zhong [AT]policychangeindex.org
中国的工业化进程长期以来都是政府指导的产物,无论是强制性的中央计划还是雄心勃勃的产业政策。我们在文献中首次制定了中国长期政策重点的量化指标,我们称之为中国政策变化指数(PCI-China)。 PCI-China是一个领先指标,从1951年运行到最近一个季度,并且可以在未来更新。换句话说,PCI-China不仅可以帮助我们了解中国工业化的过去,还可以让我们对其未来的方向做出短期预测。
PCI-China的设计有两个组成部分:(1)它以《人民日报》 ——中国共产党的官方报纸——自1946年创刊以来的全文作为输入数据; (2)它采用一套机器学习技术来“阅读”文章并检测报纸优先考虑政策问题的方式的变化。
PCI-中国的预测能力来源于这样一个事实:《人民日报》是中国宣传系统的神经中枢,而宣传的变化往往先于政策的变化。例如,在从毛泽东时代的中央计划经济向毛泽东时代的经济改革计划的伟大转变之前,中国政府为推动改革理念、推动舆论、调动资源以实现新的议程做出了巨大的努力。因此,通过检测(实时)宣传变化,PCI-China 可以有效地预测(未来)政策变化。
有关该项目的方法和研究结果的详细信息,请参阅以下研究论文:
随着底层模型的改进,结果将会改变。在这个项目中采用开源方法的一个根本原因是,来自不同背景的人们都可以为我们的社会用来评估和预测公共政策变化的模型做出贡献;当纳入社区贡献的改进时,该模型将产生更好的结果。
每个人(用户和开发人员)的第一步是开设一个免费的 GitHub 帐户。然后,您可以通过单击存储库主页右上角的“监视”按钮来指定“监视”PCI-China 存储库的方式。
第二步是通过阅读文档来熟悉 PCI-China 存储库。
如果您想提出问题或报告错误,请在此处创建一个新问题并发布您的问题或告诉我们您认为存储库有什么问题。
如果您想请求增强功能,请在此处创建一个新问题并提供您认为应该添加到存储库中的内容的详细信息。
首先,通过在 shell 中运行以下命令来安装依赖项并设置正确的环境:
./PCI-China>conda env create -f environment.yml
其次,激活新环境pci_env
:
./PCI-China>conda activate pci_env
第三,在pci_env
环境中运行以下命令:
./PCI-China>sh run_all.sh
上述命令将执行以下任务:(1) 处理数据,(2) 训练两年、五年和十年滚动窗口的模型,(3) 编译结果,(4) 创建文本输出,以及 (5) )可视化结果。
如果您没有人民日报数据,您可以运行我们的测试,使用模拟数据集估算 PCI:
./PCI-China>pytest
笔记
下面列出的 python 和 R 脚本包含在run_all.sh
文件中。用户可以使用它们分别执行以下任务。
proc_pd.py
:处理和准备来自《人民日报》的原始数据,用于构建神经网络模型。pci.py
:训练神经网络模型,使用指定的滚动窗口长度构建指定年份季度的 PCI-China。compile_tuning.py
:编译所有模型的结果并将其导出到.csv
文件。create_text_output.py
:生成指定年份季度中每篇文章的原始数据以及模型的分类结果。gen_figures.R
:生成图形。create_plotly.py
:创建交互式 Plotly 图形。对于pci.py
文件,用户还可以使用--help
选项查看函数参数的描述:
./PCI-China>python pci.py --help
Using TensorFlow backend.
usage: pci.py [-h] [--model MODEL] [--year YEAR] [--month MONTH] [--gpu GPU]
[--iterator ITERATOR] [--root ROOT] [--temperature TEMPERATURE]
[--discount DISCOUNT] [--bandwidth BANDWIDTH]
optional arguments:
-h, --help show this help message and exit
--model MODEL Model name: window_5_years_quarterly,
window_10_years_quarterly, window_2_years_quarterly
--year YEAR Target year
--month MONTH Target month
--gpu GPU Which gpu to use
--iterator ITERATOR Iterator in simulated annealing
--root ROOT Root directory
--temperature TEMPERATURE
Temperature in simulated annealing
--discount DISCOUNT Discount factor in simulated annealing
--bandwidth BANDWIDTH
Bandwidth in simulated annealing
本资源库中未提供的《人民日报》原始数据应放置在PCI-China/Input/pd/
文件夹中。此子文件夹中的每个文件应包含一个年度季度的数据,按相应年度季度命名,并采用.pkl
格式。例如,2018 年第一季度的原始数据应位于文件2018_Q1.pkl
中。以下是每个原始数据文件的列名称和类型列表:
>>> df1 = pd.read_pickle("./PCI-China/Input/pd/pd_1946_1975.pkl")
>>> df1.dtypes
date datetime64[ns]
year int64
month int64
day int64
page int64
title object
body object
id int64
dtype: object
其中title
和body
是每篇文章的标题和正文的中文文本。
本存储库中未提供的《人民日报》处理后的数据应放置在子文件夹PCI-China/data/Output/database.db
中。该文件采用 SQLite 格式。数据库的schema如下表所示:
import sqlite3
import pandas as pd
conn = sqlite3.connect("data/output/database.db")
pd.read_sql_query("PRAGMA TABLE_INFO(main)", conn)
西德 | 姓名 | 类型 | 不为空 | dflt_值 | PK | |
---|---|---|---|---|---|---|
0 | 0 | 日期 | 时间戳 | 0 | 没有任何 | 0 |
1 | 1 | ID | 整数 | 0 | 没有任何 | 0 |
2 | 2 | 页 | 真实的 | 0 | 没有任何 | 0 |
3 | 3 | 标题 | 文本 | 0 | 没有任何 | 0 |
4 | 4 | 身体 | 文本 | 0 | 没有任何 | 0 |
5 | 5 | 地层 | 整数 | 0 | 没有任何 | 0 |
6 | 6 | 标题段 | 文本 | 0 | 没有任何 | 0 |
7 | 7 | 正文段 | 文本 | 0 | 没有任何 | 0 |
8 | 8 | 年 | 整数 | 0 | 没有任何 | 0 |
9 | 9 | 四分之一 | 整数 | 0 | 没有任何 | 0 |
10 | 10 | 月 | 整数 | 0 | 没有任何 | 0 |
11 | 11 | 天 | 整数 | 0 | 没有任何 | 0 |
12 | 12 | 工作日 | 整数 | 0 | 没有任何 | 0 |
13 | 13 | 头版 | 整数 | 0 | 没有任何 | 0 |
14 | 14 | 第1页到第3页 | 整数 | 0 | 没有任何 | 0 |
15 | 15 | 标题长度 | 整数 | 0 | 没有任何 | 0 |
16 | 16 | 正文长度 | 整数 | 0 | 没有任何 | 0 |
17 号 | 17 号 | 那日n_文章 | 整数 | 0 | 没有任何 | 0 |
18 | 18 | 当日 n_pages_that_day | 真实的 | 0 | 没有任何 | 0 |
19 | 19 | n_frontpage_articles_that_day | 整数 | 0 | 没有任何 | 0 |
其中title_int
和body_int
是每篇文章的标题和正文的词嵌入(数字向量)。
已处理数据的汇总统计数据可以在以下.csv
文件中找到:
https://github.com/PSLmodels/PCI-China/blob/master/PCI-China/figures/Summary%20statistics.csv
《人民日报》的原始数据和处理后的数据作者均无法公开。如果用户对将存储库应用到自己的数据有疑问,欢迎联系作者:
请引用最新PCI-China网站来源:https://policychangeindex.org。
对于学术工作,请引用以下研究论文: