웹사이트: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의 설계에는 두 가지 구성 요소가 있습니다. (1) 1946년 창립 이후 중국 공산당의 공식 신문인 인민일보( People's Daily )의 전문을 입력 데이터로 사용합니다. (2) 일련의 기계 학습 기술을 사용하여 기사를 "읽고" 신문이 정책 문제의 우선순위를 정하는 방식의 변화를 감지합니다.
PCI-China의 예측력의 원천은 인민일보가 중국 선전 시스템의 중추에 있고 선전 변화가 정책 변화보다 앞선다는 사실에 있습니다. 예를 들어, 마오쩌둥 치하의 중앙 계획에서 마오쩌둥 이후의 경제 개혁 프로그램으로의 대전환 이전에 중국 정부는 개혁 아이디어를 장려하고 여론을 움직이며 새로운 의제를 향해 자원을 동원하기 위해 상당한 노력을 기울였습니다. 따라서 PCI-China는 선전의 (실시간) 변화를 감지함으로써 정책의 (미래) 변화를 효과적으로 예측하고 있습니다.
이 프로젝트의 방법론과 결과에 대한 자세한 내용은 다음 연구 논문을 참조하세요.
기본 모델이 개선되면 결과도 변경됩니다. 이 프로젝트에서 오픈 소스 방법을 채택하는 근본적인 이유는 모든 배경의 사람들이 우리 사회가 공공 정책의 변화를 평가하고 예측하는 데 사용하는 모델에 기여할 수 있도록 하기 위한 것입니다. 커뮤니티가 기여한 개선 사항이 통합되면 모델이 더 나은 결과를 얻을 것입니다.
모든 사람(사용자 및 개발자)을 위한 첫 번째 단계는 무료 GitHub 계정을 개설하는 것입니다. 그런 다음 저장소 메인 페이지의 오른쪽 상단에 있는 감시 버튼을 클릭하여 PCI-China 저장소를 "감시"하려는 방법을 지정할 수 있습니다.
두 번째 단계는 문서를 읽어 PCI-China 저장소에 익숙해지는 것입니다.
질문을 하거나 버그를 보고하려면 여기에 새 문제를 만들고 질문을 게시하거나 저장소에 문제가 있다고 생각하는 부분을 알려주세요.
개선 사항을 요청하려면 여기에서 새 문제를 생성하고 저장소에 추가해야 한다고 생각하는 항목에 대한 세부 정보를 제공하세요.
먼저, 셸에서 다음 명령을 실행하여 종속성을 설치하고 적절한 환경을 설정합니다.
./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) 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 그림을 만듭니다. 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)
시드 | 이름 | 유형 | 널이 아니다 | 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 | title_세그 | 텍스트 | 0 | 없음 | 0 |
7 | 7 | body_seg | 텍스트 | 0 | 없음 | 0 |
8 | 8 | 년도 | 정수 | 0 | 없음 | 0 |
9 | 9 | 4분의 1 | 정수 | 0 | 없음 | 0 |
10 | 10 | 월 | 정수 | 0 | 없음 | 0 |
11 | 11 | 낮 | 정수 | 0 | 없음 | 0 |
12 | 12 | 주일 | 정수 | 0 | 없음 | 0 |
13 | 13 | 첫 페이지 | 정수 | 0 | 없음 | 0 |
14 | 14 | 페이지1to3 | 정수 | 0 | 없음 | 0 |
15 | 15 | title_len | 정수 | 0 | 없음 | 0 |
16 | 16 | body_len | 정수 | 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의 출처를 웹사이트(https://policychangeindex.org)에서 인용하시기 바랍니다.
학술 연구의 경우 다음 연구 논문을 인용해 주세요.