Imagem de fundo

Um Ministério Público deseja testar o uso de Processamento de Linguagem Natural (NLP) p...

Um Ministério Público deseja testar o uso de Processamento de Linguagem Natural (NLP) para classificar automaticamente textos, como forma de triagem preliminar de documentos recebidos. Para isso, uma analista desenvolveu o código em Python abaixo.



from sklearn.feature_extraction.text import TfidfVectorizer

from sklearn.linear_model import LogisticRegression

from sklearn.model_selection import train_test_split

from sklearn.metrics import classification_report, accuracy_score

import numpy as np



texts = [



# Jurídico

"Petição inicial com pedido de tutela de urgência e documentos anexos.",

"Despacho determinando a intimação das partes para audiência de instrução.",

"Autos conclusos ao juiz para análise de mérito e sentença.",

"Recurso de apelação interposto contra decisão de primeira instância.",

"Requerimento de sigilo de peças processuais por proteção de dados pessoais.",

# Não-jurídico

"Relatório financeiro do trimestre com receitas e despesas consolidadas.",

"Convite para reunião estratégica entre equipes de tecnologia e produto.",

"Artigo científico sobre redes neurais e aprendizado profundo.",

"Manual de procedimentos internos para manutenção de servidores.",

"E-mail de boas-vindas aos novos colaboradores do setor administrativo."

]

labels = np.array([1, l, 1, 1, 1, 0, 0, 0, 0, 0])



X_train, X_test, y_train, y_test = train_test_split(

texts, labels, test_size=0.3, random_state=42, stratify=labels

)

vectorizer = TfidfVectorizer(ngram_range=(1,2), max_features=2000)


X_train_tfidf = vectorizer.fit_transform(X_train)

X_test_tfidf = vectorizer.transform(X_test)


model = LogisticRegression(max_iter=200)

model.fit(X_train_tfidf, y_train)


y_pred = model.predict (X_test_tfidf)

print("Acurácia no conjunto de teste:", round (accuracy_score(y_test, y_pred), 3))

print("\nRelatório de classificação:\n")

print(classification_report(y_test,y_pred,target_names=["não-jurídico","jurídico"]))


Considerando que este será executado em condições ideais, pode-se afirmar que o código


A

utiliza TF-IDF para transformar os textos em vetores numéricos e treina uma Regressão Logistica para distinguir automaticamente documentos jurídicos de não jurídicos, gerando métricas como acurácia e relatório de classificação.


B

treina um classificador Naive Bayes baseado em Logistic Regression que prevê probabilidades de classes e calcula automaticamente embeddings de palavras com o uso de TF-IDF.


C

aplica técnicas de clustering não supervisionado para agrupar documentos por similaridade sobre os vetores de texto, estimando valores contínuos que depois são convertidos em classes jurídicas e não jurídicas.


D

implementa um pipeline com deep learning, utilizando embeddings word2vec e camadas LSTM para classificação de sentenças jurídicas e não jurídicas.


E

utiliza TF-IDF para gerar vetores numéricos e, em seguida, aplica um Logistic Regression baseado em Support Vector Machine (SVM) para separar documentos jurídicos e não jurídicos, retornando margens de decisão.