ウェブサイト:policychangeindex.org
著者: Julian TszKin Chan と Weifeng Zhong
すべてのコメント/質問は、julian.chan [AT]policychangeindex.org または weifeng.zhong [AT]policychangeindex.org に電子メールで送信してください。
中国の工業化プロセスは、強制的な中央計画であれ、野心的な産業政策であれ、長い間、政府の指示の産物であった。文献で初めて、私たちは中国の政策変更指数(PCI-China)と呼ぶ、長期にわたる中国の政策の優先順位の定量的指標を開発しました。 PCI-中国は 1951 年から最新四半期までの先行指標であり、将来更新される可能性があります。言い換えれば、PCI-China は、中国の工業化の過去を理解するのに役立つだけでなく、将来の方向性についての短期的な予測を行うことも可能にします。
PCI-China の設計には 2 つの構成要素があります。(1) 1946 年に設立されて以来、中国共産党の機関紙である人民日報の全文を入力データとして受け取ります。 (2) 一連の機械学習技術を利用して記事を「読み取り」、新聞が政策問題に優先順位を付ける方法の変化を検出します。
PCI-中国の予測力の源は、人民日報が中国のプロパガンダシステムの中枢にあり、プロパガンダの変更が政策変更に先立って行われることが多いという事実に基づいている。例えば、毛沢東時代の中央計画から毛沢東以降の経済改革プログラムへの大転換の前に、中国政府は改革の理念を推進し、世論を動かし、新たな課題に向けて資源を動員するために多大な努力を払った。したがって、PCI-中国は、プロパガンダの(リアルタイムの)変化を検出することによって、事実上、政策の(将来の)変化を予測していることになります。
このプロジェクトの方法論と結果の詳細については、次の研究論文を参照してください。
基礎となるモデルが改善されると、結果も変化します。このプロジェクトでオープンソース手法を採用する基本的な理由は、社会が公共政策の変化を評価し予測するために使用するモデルに、あらゆる背景を持つ人々が貢献できるようにするためです。コミュニティによる改善が組み込まれると、モデルはより良い結果を生み出します。
すべての人 (ユーザーと開発者) にとっての最初のステップは、無料の GitHub アカウントを開くことです。次に、リポジトリのメイン ページの右上隅にある [監視] ボタンをクリックして、PCI-China リポジトリを「監視」する方法を指定できます。
2 番目のステップは、ドキュメントを読んで PCI-China リポジトリについてよく理解することです。
質問したりバグを報告したりする場合は、ここで新しい問題を作成して質問を投稿するか、リポジトリの問題点を教えてください。
機能強化をリクエストする場合は、ここで新しい問題を作成し、リポジトリに追加すべきと思われる内容の詳細を提供してください。
まず、シェルで次のコマンドを実行して、依存関係をインストールし、適切な環境をセットアップします。
./PCI-China>conda env create -f environment.yml
次に、新しい環境pci_env
アクティブ化します。
./PCI-China>conda activate pci_env
3 番目に、 pci_env
環境で次のコマンドを実行します。
./PCI-China>sh run_all.sh
上記のコマンドは次のタスクを実行します: (1) データの処理、(2) 2 年、5 年、および 10 年のローリング ウィンドウのモデルのトレーニング、(3) 結果のコンパイル、(4) テキスト出力の作成、および (5) ) 結果の視覚化。
People's Daily のデータがない場合は、シミュレートされたデータ セットを使用して 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 Figure を作成します。 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/
に配置する必要があります。このサブフォルダー内の各ファイルには、1 年/四半期のデータが含まれ、それぞれの年/四半期で名前が付けられ、 .pkl
形式である必要があります。たとえば、2018 年の第 1 四半期の生データは、ファイル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 形式です。データベースのスキーマは次の表のようになります。
import sqlite3
import pandas as pd
conn = sqlite3.connect("data/output/database.db")
pd.read_sql_query("PRAGMA TABLE_INFO(main)", conn)
シド | 名前 | タイプ | nullではない | dflt_value | 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_articles_that_day | 整数 | 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 の情報源を Web サイト https://policychangeindex.org から引用してください。
学術研究については、次の研究論文を引用してください。