網址: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。
對於學術工作,請引用以下研究論文: