Сайт: policychangeindex.org.
Авторы: Джулиан Цзкин Чан и Вэйфэн Чжун
Все комментарии/вопросы направляйте по адресу julian.chan [AT] policychangeindex.org или weifeng.zhong [AT] policychangeindex.org.
Процесс индустриализации Китая уже давно является продуктом правительственного руководства, будь то принудительное централизованное планирование или амбициозная промышленная политика. Впервые в литературе мы разработали количественный индикатор политических приоритетов Китая за длительный период времени, который мы называем Индексом изменения политики Китая (PCI-China). PCI-China — это опережающий индикатор, который измеряется с 1951 года по последний квартал и может обновляться в будущем. Другими словами, PCI-China не только помогает нам понять прошлое индустриализации Китая, но также позволяет нам делать краткосрочные прогнозы относительно ее будущих направлений.
В конструкции PCI-China есть два строительных блока: (1) в качестве входных данных он принимает полный текст People's Daily — официальной газеты Коммунистической партии Китая — с момента ее основания в 1946 году; (2) он использует набор методов машинного обучения, чтобы «читать» статьи и обнаруживать изменения в том, как газета расставляет приоритеты в вопросах политики.
Источник предсказательной силы PCI-China основан на том факте, что People's Daily находится в нервном центре китайской пропагандистской системы и что изменения в пропаганде часто предшествуют изменениям в политике. Например, до великого перехода от централизованного планирования при Мао к программе экономических реформ после Мао китайское правительство приложило значительные усилия для продвижения идеи реформ, движения общественного мнения и мобилизации ресурсов для реализации новой повестки дня. Таким образом, обнаруживая (в режиме реального времени) изменения в пропаганде, PCI-Китай фактически предсказывает (будущие) изменения в политике.
Подробную информацию о методологии и результатах этого проекта можно найти в следующем исследовательском документе:
Результаты будут меняться по мере совершенствования базовых моделей. Основная причина использования методов с открытым исходным кодом в этом проекте заключается в том, чтобы люди любого происхождения могли внести свой вклад в модели, которые наше общество использует для оценки и прогнозирования изменений в государственной политике; когда будут включены улучшения, внесенные сообществом, модель даст лучшие результаты.
Первый шаг для всех (пользователей и разработчиков) — открыть бесплатную учетную запись 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) обучение моделей для двух-, пяти- и десятилетних скользящих окон, (3) компиляция результатов, (4) создание текстового вывода и (5) ) визуализация результатов.
Если у вас нет данных People's Daily, вы можете запустить наши тесты, которые оценивают PCI с использованием смоделированного набора данных:
./PCI-China>pytest
Примечания
Перечисленные ниже Python и сценарий R содержатся в файле run_all.sh
. Они доступны пользователям для выполнения следующих задач соответственно.
proc_pd.py
: Обработка и подготовка необработанных данных из People's Daily для построения моделей нейронных сетей.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
Необработанные данные People's Daily , которые не представлены в этом репозитории, следует поместить в подпапку 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
— это китайские тексты заголовка и основной части каждой статьи.
Обработанные данные People's Daily , которые не представлены в этом репозитории, следует поместить в подпапку 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_value | ПК | |
---|---|---|---|---|---|---|
0 | 0 | дата | ВРЕМЯ | 0 | Никто | 0 |
1 | 1 | идентификатор | ЦЕЛОЕ ЧИСЛО | 0 | Никто | 0 |
2 | 2 | страница | НАСТОЯЩИЙ | 0 | Никто | 0 |
3 | 3 | заголовок | ТЕКСТ | 0 | Никто | 0 |
4 | 4 | тело | ТЕКСТ | 0 | Никто | 0 |
5 | 5 | слои | ЦЕЛОЕ ЧИСЛО | 0 | Никто | 0 |
6 | 6 | title_seg | ТЕКСТ | 0 | Никто | 0 |
7 | 7 | body_seg | ТЕКСТ | 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 | 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
Ни необработанные, ни обработанные данные People's Daily не могут быть опубликованы авторами. Пользователи, у которых есть вопросы по применению репозитория к собственным данным, могут связаться с авторами:
Пожалуйста, укажите источник последней информации PCI-China на веб-сайте: https://policychangeindex.org.
Для научной работы просим указать следующую исследовательскую работу: