Site: policychangeindex.org
Autores: Julian TszKin Chan e Weifeng Zhong
Envie todos os comentários/perguntas por e-mail para julian.chan [AT] policychangeindex.org ou weifeng.zhong [AT] policychangeindex.org
O processo de industrialização da China tem sido há muito tempo um produto da orientação governamental, seja um planeamento central coercivo ou uma política industrial ambiciosa. Pela primeira vez na literatura, desenvolvemos um indicador quantitativo das prioridades políticas da China durante um longo período de tempo, que chamamos de Índice de Mudança de Política para a China (PCI-China). O PCI-China é um indicador antecedente que vai de 1951 até o trimestre mais recente e pode ser atualizado no futuro. Por outras palavras, o PCI-China não só nos ajuda a compreender o passado da industrialização da China, mas também nos permite fazer previsões de curto prazo sobre os seus rumos futuros.
O desenho do PCI-China tem dois blocos de construção: (1) toma como dados de entrada o texto completo do Diário do Povo --- o jornal oficial do Partido Comunista da China --- desde que foi fundado em 1946; (2) emprega um conjunto de técnicas de aprendizagem automática para “ler” os artigos e detectar mudanças na forma como o jornal prioriza questões políticas.
A fonte do poder preditivo do PCI-China reside no facto de o Diário do Povo estar no centro nevrálgico do sistema de propaganda da China e de as mudanças de propaganda frequentemente precederem as mudanças políticas. Antes da grande transformação do planeamento central sob Mao para o programa de reforma económica depois de Mao, por exemplo, foram feitos esforços consideráveis pelo governo chinês para promover a ideia de reforma, mover a opinião pública e mobilizar recursos para a nova agenda. Portanto, ao detectar mudanças (em tempo real) na propaganda, o PCI-China está, efectivamente, a prever mudanças (futuras) na política.
Para obter detalhes sobre a metodologia e resultados deste projeto, consulte o seguinte artigo de pesquisa:
Os resultados mudarão à medida que os modelos subjacentes melhorarem. Uma razão fundamental para a adopção de métodos de código aberto neste projecto é para que pessoas de todas as origens possam contribuir para os modelos que a nossa sociedade utiliza para avaliar e prever mudanças nas políticas públicas; quando as melhorias contribuídas pela comunidade são incorporadas, o modelo produzirá melhores resultados.
O primeiro passo para todos (usuários e desenvolvedores) é abrir uma conta gratuita no GitHub. E então você pode especificar como deseja “assistir” o repositório PCI-China clicando no botão Assistir no canto superior direito da página principal do repositório.
O segundo passo é familiarizar-se com o repositório PCI-China lendo a documentação.
Se você quiser fazer uma pergunta ou reportar um bug, crie um novo problema aqui e poste sua pergunta ou diga-nos o que você acha que está errado com o repositório.
Se você quiser solicitar uma melhoria, crie um novo problema aqui e forneça detalhes sobre o que você acha que deveria ser adicionado ao repositório.
Primeiro, instale as dependências e configure o ambiente adequado executando o seguinte comando no shell:
./PCI-China>conda env create -f environment.yml
Segundo, ative o novo ambiente pci_env
:
./PCI-China>conda activate pci_env
Terceiro, execute o seguinte no ambiente pci_env
:
./PCI-China>sh run_all.sh
O comando acima executará as seguintes tarefas: (1) processamento de dados, (2) modelos de treinamento para janelas contínuas de dois, cinco e dez anos, (3) compilação de resultados, (4) criação de saída de texto e (5) ) visualizando resultados.
Se você não possui os dados do Diário do Povo, pode executar nossos testes que estimam um PCI usando um conjunto de dados simulados:
./PCI-China>pytest
Notas
O python e um script R listados abaixo estão contidos no arquivo run_all.sh
. Eles estão disponíveis para os usuários realizarem as seguintes tarefas, respectivamente.
proc_pd.py
: processe e prepare os dados brutos do Diário do Povo para construir os modelos de rede neural.pci.py
: Treine um modelo de rede neural para construir o PCI-China para um trimestre de ano especificado, usando um comprimento de janela móvel especificado.compile_tuning.py
: compila os resultados de todos os modelos e exporta-os para um arquivo .csv
.create_text_output.py
: Gere os dados brutos junto com o resultado da classificação do modelo para cada artigo em um ano-trimestre especificado.gen_figures.R
: Gera figuras.create_plotly.py
: Crie uma figura interativa do Plotly. Para o arquivo pci.py
, os usuários também podem verificar as descrições dos argumentos da função usando a opção --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
Os dados brutos do Diário do Povo , que não são fornecidos neste repositório, devem ser colocados na subpasta PCI-China/Input/pd/
. Cada arquivo nesta subpasta deve conter dados de um ano-trimestre, ser nomeado pelo respectivo ano-trimestre e estar no formato .pkl
. Por exemplo, os dados brutos do primeiro trimestre de 2018 devem estar no arquivo 2018_Q1.pkl
. Abaixo está a lista de nomes de colunas e tipos de cada arquivo de dados brutos:
>>> 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
onde title
e body
são os textos chineses do título e corpo de cada artigo.
Os dados processados do Diário do Povo , que não são fornecidos neste repositório, devem ser colocados na subpasta PCI-China/data/Output/database.db
. O arquivo está no formato SQLite. O esquema do banco de dados é mostrado conforme tabela abaixo:
import sqlite3
import pandas as pd
conn = sqlite3.connect("data/output/database.db")
pd.read_sql_query("PRAGMA TABLE_INFO(main)", conn)
cid | nome | tipo | não nulo | valor_dflt | pacote | |
---|---|---|---|---|---|---|
0 | 0 | data | TIMESTAMP | 0 | Nenhum | 0 |
1 | 1 | eu ia | INTEIRO | 0 | Nenhum | 0 |
2 | 2 | página | REAL | 0 | Nenhum | 0 |
3 | 3 | título | TEXTO | 0 | Nenhum | 0 |
4 | 4 | corpo | TEXTO | 0 | Nenhum | 0 |
5 | 5 | estratos | INTEIRO | 0 | Nenhum | 0 |
6 | 6 | título_seg | TEXTO | 0 | Nenhum | 0 |
7 | 7 | body_seg | TEXTO | 0 | Nenhum | 0 |
8 | 8 | ano | INTEIRO | 0 | Nenhum | 0 |
9 | 9 | trimestre | INTEIRO | 0 | Nenhum | 0 |
10 | 10 | mês | INTEIRO | 0 | Nenhum | 0 |
11 | 11 | dia | INTEIRO | 0 | Nenhum | 0 |
12 | 12 | dia da semana | INTEIRO | 0 | Nenhum | 0 |
13 | 13 | primeira página | INTEIRO | 0 | Nenhum | 0 |
14 | 14 | página1to3 | INTEIRO | 0 | Nenhum | 0 |
15 | 15 | título_len | INTEIRO | 0 | Nenhum | 0 |
16 | 16 | body_len | INTEIRO | 0 | Nenhum | 0 |
17 | 17 | n_artigos_aquele_dia | INTEIRO | 0 | Nenhum | 0 |
18 | 18 | n_páginas_aquele_dia | REAL | 0 | Nenhum | 0 |
19 | 19 | n_frontpage_articles_that_day | INTEIRO | 0 | Nenhum | 0 |
onde title_int
e body_int
são os embeddings de palavras (vetores numéricos) do título e corpo de cada artigo.
As estatísticas resumidas dos dados processados podem ser encontradas no seguinte arquivo .csv
:
https://github.com/PSLmodels/PCI-China/blob/master/PCI-China/figures/Summary%20statistics.csv
Nem os dados brutos nem os dados processados do Diário do Povo podem ser divulgados pelos autores. Os usuários que tiverem dúvidas sobre a aplicação do repositório aos seus próprios dados podem entrar em contato com os autores:
Por favor, cite a fonte do último PCI-China no site: https://policychangeindex.org.
Para trabalhos acadêmicos, cite o seguinte artigo de pesquisa: