-
-
Save biamuniz/f285a75622f7b693a3f9b8480de8b6e2 to your computer and use it in GitHub Desktop.
Reconhecimentp de entidades nos títulos da Folha de S. Paulo
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import pandas as pd | |
import spacy | |
materias_unique = pd.read_csv("data/materias_true.csv", sep = ",") | |
nlp = spacy.load('pt_core_news_md') | |
def extrair_entidades_pos(texto): | |
doc = nlp(texto) | |
entidades = [(ent.text, ent.label_) for ent in doc.ents] | |
pos_tags = [(token.text, token.pos_) for token in doc] | |
return entidades, pos_tags | |
# Aplicar a função aos títulos e obter as entidades e POS tagging em colunas separadas | |
materias_unique[['entidades', 'pos_tags']] = materias_unique['titulos'].apply(extrair_entidades_pos).apply(pd.Series) | |
materias_unique.columns | |
def extrair_entidades_pos(texto): | |
doc = nlp(texto) | |
entidades = [(ent.text, ent.label_) for ent in doc.ents] | |
pos_tags = [(token.text, token.pos_) for token in doc] | |
return entidades, pos_tags | |
# Aplicar a função aos títulos e obter as entidades e POS tagging em colunas separadas | |
materias_unique[['entidades', 'pos_tags']] = materias_unique['titulos'].apply(extrair_entidades_pos).apply(pd.Series) | |
# Explodir as listas das colunas entidades e pos_tags | |
materias_unique = materias_unique.explode('entidades').explode('pos_tags') | |
# Separar as colunas entidades e pos_tags em colunas individuais | |
materias_unique[['entidade', 'tipo_entidade']] = materias_unique['entidades'].apply(pd.Series) | |
materias_unique[['palavra', 'classe_gramatical']] = materias_unique['pos_tags'].apply(pd.Series) | |
# Remover as colunas entidades e pos_tags | |
materias_unique = materias_unique.drop(['entidades', 'pos_tags'], axis=1) | |
# Exibir o DataFrame com as colunas no formato tidy | |
print(materias_unique) | |
materias_unique.to_csv("data/05_materias_pos_tagging_wide.csv", encoding="utf-8", sep=";") |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment