paint-brush
Criando um Sistema Sistemático de Pontuação ESG: Métodospor@carbonization
208 leituras

Criando um Sistema Sistemático de Pontuação ESG: Métodos

Muito longo; Para ler

Este projeto visa criar um sistema de avaliação ESG baseado em dados que possa fornecer melhor orientação e pontuações mais sistematizadas, incorporando o sentimento social.
featured image - Criando um Sistema Sistemático de Pontuação ESG: Métodos
Carbonization Process Evolution Publication HackerNoon profile picture
0-item

Autores:

(1) Aarav Patel, Amity Regional High School – e-mail: [email protected];

(2) Peter Gloor, Centro de Inteligência Coletiva, Instituto de Tecnologia de Massachusetts e autor correspondente – email: [email protected].

Tabela de links

4. Métodos

A criação deste projeto foi dividida em três etapas. O primeiro passo foi a coleta de dados por meio de web scrapers em diversas redes sociais. Posteriormente, os dados de texto foram pré-processados e convertidos em pontuações de subcategorias usando Processamento de Linguagem Natural. Por fim, algoritmos de aprendizado de máquina foram treinados usando esses dados para calcular uma classificação ESG coesa.


Figura 2: Uma visão geral de como o índice ESG baseado em dados usa dados de redes sociais para calcular uma classificação ESG coesa

4.1. Coleção de dados

Em vez de utilizar registos corporativos auto-relatados, foram utilizados dados de redes sociais para quantificar holisticamente o ESG. A análise de redes sociais e o web scraping podem ser usados para identificar tendências (Gloor et al., 2009). Redes sociais populares como Twitter, LinkedIn e Google News possuem uma infinidade de dados relativos a quase todos os tópicos. Esses dados podem fornecer uma visão equilibrada das práticas ESG das empresas e podem ajudar a cobrir as tendências ESG das empresas a curto e longo prazo. Ele também pode coletar dados que podem não estar refletidos nos registros. Por último, estes dados podem destacar diretamente as preocupações de quem está de fora, o que pode orientar melhor as iniciativas ESG das empresas para que tenham mais impacto.


Figura 3: Palavras-chave/Tópicos utilizados para coleta de dados


Para fazer isso, foi criada uma lista abrangente de palavras-chave relevantes para ESG (figura 3). Esta lista de palavras-chave foi inspirada em subcategorias comumente usadas nas atuais metodologias de classificação ESG. Esta lista foi usada para ajudar a coletar dados de empresas disponíveis publicamente na Wikipedia, LinkedIn, Twitter e Google News. Para coletar dados, web scrapers foram desenvolvidos em Python. Os dados da Wikipedia foram coletados usando a Interface de Programação de Aplicativos (API) da Wikipedia. A Wikipédia serve para dar uma visão geral das práticas de uma empresa. Os dados do Google Notícias foram coletados identificando os principais artigos de notícias com base em uma pesquisa no Google. Os links para esses artigos foram armazenados. A notícia serve para fornecer atualizações gerais sobre desenvolvimentos ESG notáveis. Os dados do Twitter foram coletados com a ajuda da biblioteca Snscrape. Snscrape é uma API leve que permite aos usuários coletar Tweets quase ilimitados (com certas restrições sobre quantos podem ser coletados por hora) em quase qualquer período de tempo. O Twitter foi escolhido principalmente para fornecer feedback do consumidor sobre as práticas de uma empresa. Como a API do LinkedIn não suporta a coleta de postagens do LinkedIn, um algoritmo foi criado do zero para fazer isso. O algoritmo utilizou o Selenium Chromedriver para simular a rolagem humana em uma consulta do LinkedIn. Com base nisso, o texto de cada postagem foi coletado e armazenado por meio de solicitações HTML via BeautifulSoup. O LinkedIn serve para fornecer informações mais profissionais sobre as práticas de uma empresa. Esta arquitetura de coleta de dados permite que as classificações sejam atualizadas e geradas em tempo real, conforme necessário. Posteriormente, os dados de cada subcategoria foram armazenados em um arquivo CSV.


Estas quatro redes sociais cobrem uma ampla gama de dados ESG das empresas. Os dados foram coletados para a maioria das empresas do S&P 500 (excluindo o setor imobiliário). O setor imobiliário foi excluído principalmente porque não recebeu tanta cobertura relativa a questões ESG (com base na análise superficial), portanto não parecia viável para o sistema proposto. Isso garante que as empresas coletadas estejam bem equilibradas entre setores e indústrias. Os web scrapers tentaram coletar cerca de 100 postagens/artigos para cada palavra-chave em uma rede social. No entanto, por vezes, seriam recolhidos menos dados devido aos limites de taxa API e à disponibilidade limitada de dados para as empresas menos conhecidas. Para agilizar a coleta, vários scripts foram executados simultaneamente. No início, os programas muitas vezes tinham taxas limitadas por coletarem tantos dados em um período de tempo tão curto. Para resolver isso, foram adicionadas salvaguardas para pausar o programa caso ele encontrasse isso. Toda a coleta de dados foi feita seguindo os termos e condições de cada site. No total, aproximadamente 937.400 pontos de dados foram coletados em aproximadamente 470 empresas, com uma média de aproximadamente 37 pontos por palavra-chave de rede social. A maior parte destes dados estava concentrada em 2021. No entanto, não foi imposto um intervalo de datas rígido porque eliminaria pontos de dados de empresas menos conhecidas que já tinham dificuldades em recolher informações suficientes.


Depois de coletados todos os dados, eles foram exportados para uma planilha para posterior análise. Os dados foram pré-processados usando RegEx (Expressões Regulares). Primeiro, URLs e links foram removidos. As menções foram substituídas por uma palavra genérica para abstrair os nomes. Por fim, caracteres incomuns e pontuação foram removidos. Isso ajudou a filtrar palavras/caracteres que pudessem interferir na análise da PNL.

4.2. Análise de PNL

Após a limpeza e organização dos dados, um algoritmo de PNL foi construído para análise. Primeiramente, foi criado um algoritmo de relevância ESG para filtrar dados ESG irrelevantes que possam obstruir os resultados. Para isso, foi utilizada a detecção de palavras-chave para verificar se o post/artigo discutia a empresa atual, bem como uma ou mais subcategorias ESG. Em seguida, a biblioteca de reconhecimento de entidade nomeada Natural Language Toolkit (NLTK) do Python foi usada para determinar se uma postagem estava relacionada à organização, a fim de remover dados não intencionais. Por exemplo, se a consulta “clima da maçã” for pesquisada, poderá surgir uma postagem dizendo “O clima da primavera é a melhor época para cultivar macieiras”. No entanto, o Named Entity Recognition seria capaz de identificar que esta frase não é relevante em termos de ESG, uma vez que “Apple” é usado como adjetivo. Portanto, o algoritmo irá desconsiderá-lo da análise. Por outro lado, se a postagem dissesse: “A Apple está investindo 500 milhões de dólares em iniciativas para mudanças climáticas”, então o algoritmo determinaria que a postagem está falando sobre a organização Apple. Esta etapa de filtragem ajuda a remover informações irrelevantes para melhorar a qualidade dos dados.


Após a filtragem, a análise de sentimento da PNL foi usada para avaliar se uma postagem era ESG positiva ou negativa. Dois algoritmos de PNL foram criados para fazer isso: o algoritmo de PNL de postagem curta analisava corpos de texto mais curtos (Tweets, postagens do LinkedIn), enquanto o algoritmo de PNL de artigo longo analisava textos mais longos (artigos de notícias, artigos da Wikipedia).


Foi realizada uma análise literária de diferentes bibliotecas de análise de sentimento Python. Depois de comparar várias bibliotecas de análise de sentimento, como TextBlob, VADER, FastText e Flair, descobriu-se que Flair superou os outros classificadores. Provavelmente, isso ocorre porque os classificadores simples de bag-ofwords, como VADER ou TextBlob, não conseguiram identificar as relações que diferentes palavras tinham entre si. Por outro lado, Flair usou vetores de palavras contextuais para analisar as relações de nível de palavra e de caractere de uma frase. É provavelmente por isso que, quando esses algoritmos foram testados no Stanford Sentiment Treebank (SST) para avaliar o sentimento da crítica de filmes em uma escala de 1 a 5, descobriu-se que o algoritmo Flair teve o melhor desempenho com uma pontuação F1 de 49,90% (Akbik et al., 2018) (Rao et al., 2019) (figura 4). Portanto, o algoritmo short-post foi construído usando a biblioteca de análise de sentimento Flair. O algoritmo de artigo longo é essencialmente o algoritmo de postagem curta, mas calculado em média em todos os parágrafos relevantes do corpo (ou seja, parágrafos contendo o nome da empresa) em um artigo.


Figura 4: Comparação da precisão de diferentes algoritmos de análise de sentimento no banco de dados SST-5


Esses algoritmos abrangentes foram otimizados ainda mais para cada rede social específica. Por exemplo, o algoritmo do LinkedIn analisou o perfil do autor de uma postagem no LinkedIn para eliminar o autorrelato. Isto ocorre porque os executivos discutem frequentemente as suas iniciativas e objectivos positivos, o que pode diluir outras observações imparciais e, assim, interpretar resultados. Além disso, para os algoritmos do Twitter e do LinkedIn, se um endereço de link fosse encontrado no texto, o algoritmo analisaria esse artigo para avaliação.


Inicialmente, o algoritmo de análise era muito lento, pois Flair levaria de 3 a 4 segundos para analisar uma postagem. Assim, foi instalada uma variação chamada “Flair sentiment-fast”. Isso permitiu que Flair conduzisse análises em lote, analisando várias postagens simultaneamente. Isso reduziu significativamente o tempo de análise, sacrificando um pouco a precisão.


Depois que todos os dados brutos foram pontuados, a média das pontuações foi calculada em uma planilha coesa. A imputação média foi usada para preencher quaisquer dados de subpontuação ausentes. Estas pontuações de subcategorias podem fornecer aos executivos análises do sentimento social sobre questões-chave, fornecendo-lhes informações concretas sobre quais áreas devem ser melhoradas. Essas pontuações podem ser usadas brutas para ajudar a orientar iniciativas ou podem ser compiladas por meio de aprendizado de máquina para fornecer uma previsão ESG

4.3. Algoritmos de aprendizado de máquina

Após a compilação dos dados, foram testados diferentes modelos de aprendizado de máquina. O objetivo desses modelos era prever uma pontuação ESG de 0 a 100, sendo 0 o pior e 100 o melhor. A maioria desses modelos de aprendizagem supervisionada eram algoritmos de regressão leves que podem aprender padrões não lineares com dados limitados. Alguns desses algoritmos incluem regressão de floresta aleatória, regressão de vetor de suporte, regressão de K-vizinhos mais próximos e regressão XGBoost (Extreme Gradient Boosting). A regressão florestal aleatória opera construindo várias árvores de decisão durante o tempo de treinamento e gerando a previsão média (Tin Kam Ho, 1995). A regressão do vetor de suporte identifica a linha de melhor ajuste dentro de um limite de valores (Awad et al., 2015). A regressão K-Nearest Neighbors prevê um valor com base no valor médio de seus pontos de dados vizinhos (Kramer, 2013). A regressão XGBoost (Extreme Gradient Boosting) usa o aumento de gradiente combinando as estimativas/previsões de árvores de regressão mais simples (Chen et al., 2016).


Esses algoritmos de regressão foram treinados usando 19 recursos. Esses recursos incluem o sentimento médio para cada uma das 18 palavras-chave com uma categoria adicional para a Wikipedia. Eles foram calibrados de acordo com as classificações ESG públicas da S&P Global para garantir que não divergissem muito das soluções existentes. Um raspador de classificação ESG licenciado publicamente no GitHub foi usado para recuperar as pontuações ESG da S&P Global para todas as empresas que foram analisadas (Shweta-29). Técnicas de otimização, como regularização, foram usadas para evitar overfitting e obter maior precisão.


Antes da criação dos algoritmos, foram filtradas as empresas com menos de 5 artigos/posts por subcategoria ESG. Isso deixou cerca de 320 empresas para análise. Para criar e testar o algoritmo, cerca de 256 empresas foram utilizadas como dados de treinamento, enquanto cerca de 64 empresas foram utilizadas para dados de teste. Esses resultados foram usados para determinar as capacidades preditivas do algoritmo.


Este artigo está disponível no arxiv sob licença CC BY-NC-ND 4.0 DEED.