diff --git a/notebooks/IR_BM25.ipynb b/notebooks/IR_BM25.ipynb deleted file mode 100644 index 2b7b21a..0000000 --- a/notebooks/IR_BM25.ipynb +++ /dev/null @@ -1,312 +0,0 @@ -{ - "cells": [ - { - "cell_type": "code", - "execution_count": null, - "id": "8a0cde5f-21ca-4b98-b5fe-1e07b02c49f9", - "metadata": {}, - "outputs": [], - "source": [ - "!pip install rank_bm25" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "f97ae980-a263-42f8-ad2c-b38800f640c8", - "metadata": {}, - "outputs": [], - "source": [ - "!pip install --upgrade numexpr" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "bcee72ff-7f47-4efb-a158-4dceb2b731ef", - "metadata": {}, - "outputs": [], - "source": [ - "from rank_bm25 import BM25Okapi\n", - "import csv\n", - "import pandas as pd\n", - "import string\n" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "909eef76-30c1-4967-ae3c-dbfd7f9343e4", - "metadata": {}, - "outputs": [], - "source": [ - "recurso_topicos = pd.read_csv('bertopic_nao_supervisionado.csv')" - ] - }, - { - "cell_type": "markdown", - "id": "84495a98-1d36-4bee-86d3-3bfae92f1aeb", - "metadata": { - "id": "ho2P0r4xD0MC" - }, - "source": [ - "## **Prepara corpus de temas repetitivos e inicia BM25**\n" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "6ce3f579-b1a5-49c7-8bf5-81b82b0776d0", - "metadata": {}, - "outputs": [], - "source": [ - "def remove_punctuation(text):\n", - " translator = str.maketrans('', '', string.punctuation)\n", - " text_without_punctuation = text.translate(translator)\n", - " return text_without_punctuation" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "cfdc833a-8d81-48d1-afdb-991e9d00d484", - "metadata": {}, - "outputs": [], - "source": [ - "temas_repetitivos = pd.read_csv('temas_repetitivos.csv', sep=',' )\n", - "corpus = []\n", - "for indice, linha in temas_repetitivos.iterrows():\n", - " temas = linha['tema']\n", - " tema_clean = remove_punctuation(temas)\n", - " corpus.append(tema_clean)\n", - " \n", - "tokenized_corpus = [doc.split(\" \") for doc in corpus]\n", - "\n", - "bm25 = BM25Okapi(tokenized_corpus)" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "81a7e003-dd83-4411-a460-1c0e33a444a5", - "metadata": {}, - "outputs": [], - "source": [ - "def sort_list(lista):\n", - " return(sorted(lista, key = lambda x: x[1],reverse=True))" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "7bc9e6d7-a449-44e1-8eb0-79ccfa9c6ec8", - "metadata": {}, - "outputs": [], - "source": [ - "\n", - "def create_list_similarity_bm25(temas ,k,tema_real):\n", - " lista_similaridade = temas\n", - " lista_tema_real = []\n", - "\n", - " sorted_list = sort_list(lista_similaridade)\n", - "\n", - " for i, linha in enumerate(sorted_list):\n", - " if(linha[0]==tema_real):\n", - " lista_tema_real.append(i+1)#identifica posição do tema real no ranking\n", - " lista_tema_real.append(linha[1])#similaridade do tema real segundo bm25\n", - " break\n", - " ranking = sorted_list[:k]\n", - " return ranking,lista_tema_real" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "9fa4afc7-1800-4628-bdc6-11175eedae23", - "metadata": {}, - "outputs": [], - "source": [ - "def create_columns(k):\n", - " #k refere-se ao numero de elementos no ranking\n", - " colunas = []\n", - " colunas.append(\"indice\")\n", - " colunas.append(\"num_tema_cadastrado\")\n", - " for i in range(1, k + 1):\n", - " nome = f\"sugerido_{i}\"\n", - " colunas.append(nome)\n", - " nome = f\"similaridade_{i}\"\n", - " colunas.append(nome)\n", - " colunas.append(\"posicao_tema_real\")\n", - " colunas.append(\"similaridade_tema_real\")\n", - " return colunas" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "4c1b578a-d039-4e05-a7d9-4b32380ef494", - "metadata": {}, - "outputs": [], - "source": [ - "def calc_scores_bm25(topico):\n", - " query = topico.replace(\"-\",\"\")\n", - " tokenized_query = query.split()\n", - " doc_scores = bm25.get_scores(tokenized_query)\n", - " return doc_scores" - ] - }, - { - "cell_type": "markdown", - "id": "566215a4-5f05-41ec-944f-845de9416d23", - "metadata": { - "id": "ho2P0r4xD0MC" - }, - "source": [ - "## **Armazenamento de dados classificados**" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "686d6940-e324-4255-974c-5a1014f3ecfe", - "metadata": {}, - "outputs": [], - "source": [ - "#Cria dataframe pra armazenar dados sobre textos classificados\n", - "nomes_colunas = create_columns(6)\n", - "resp_classificados_bertopic_bm25 = pd.DataFrame(columns=nomes_colunas)\n", - "#Cria arquivo pra armazenar resultados\n", - "resp_classificados_bertopic_bm25.to_csv('resp_classificados_bertopic_bm25.csv', index=False)" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "60e460c1-e2ea-4ab1-b0bf-52fb581f90a4", - "metadata": {}, - "outputs": [], - "source": [ - "#print(recurso_topicos.iloc[0]['topicos'].replace(\"-\",\"\"))\n", - " " - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "ee3ed3b5-3a9e-414a-91c5-0e4ed6c65e73", - "metadata": {}, - "outputs": [], - "source": [ - "#Tratamento topicos de cada documento e lista de temas\n", - "for indice, linha in recurso_topicos.iterrows():\n", - " #calcula score bm25\n", - " doc_scores = calc_scores_bm25(linha['topicos'])\n", - " \n", - " #Cria lista de tuplas com numeração do tema e valor de similaridade\n", - " temas_classificados = temas_repetitivos[['num_tema_cadastrado']].copy()\n", - " temas_classificados['similaridade']=doc_scores\n", - " temas_classificados.columns = ['numTema','similaridade']\n", - " list_temas_classificados = list(temas_classificados.itertuples(index=False, name=None))\n", - "\n", - " dados = []\n", - " dados.append(indice)\n", - " #numero do tema cadastrado por um analista\n", - " try:\n", - " #numeracao de tema cadastrado pelo analista para o recurso\n", - " dados.append(int(linha['num_tema_cadastrado']))\n", - " except Exception as erro:\n", - " print(f\"Erro ao capturar numero de tema cadastrado {indice}\")\n", - " continue\n", - " \n", - " try: \n", - " ranking , lista_tema_real = create_list_similarity_bm25( list_temas_classificados, 6, linha['num_tema_cadastrado'])\n", - " except Exception as erro:\n", - " print(f\"Erro calculo similaridade indice {indice}\") \n", - " continue\n", - " for i, tupla_num_tema in enumerate(ranking):\n", - " #captura numero do tema sugerido e valor da similaridade\n", - " dados.append(tupla_num_tema[0])\n", - " dados.append(tupla_num_tema[1])\n", - " \n", - " if(lista_tema_real):\n", - " dados.append(lista_tema_real[0])\n", - " dados.append(lista_tema_real[1])\n", - " else:\n", - " dados.append(\"NA\")\n", - " dados.append(\"NA\")\n", - " #with open('resp_classif_bertopic_unsuperv.csv', mode='a', newline='') as arquivo:\n", - " with open('resp_classificados_bertopic_bm25.csv', mode='a', newline='') as arquivo:\n", - " writer = csv.writer(arquivo)\n", - " writer.writerow(dados)" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "0bbcef5c-80f5-4ed3-976c-42fd281410f6", - "metadata": {}, - "outputs": [], - "source": [ - "#print(tokenized_query)" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "b52a2f1b-7041-427a-b93f-1da583e110cf", - "metadata": {}, - "outputs": [], - "source": [ - "\n", - "#bm25.get_top_n(tokenized_query, corpus, n=1)" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "63d19990-27f7-49e5-8fa8-50a02076deb1", - "metadata": {}, - "outputs": [], - "source": [ - "#print(doc_scores)" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "e57f506e-50d7-4635-acc7-091b63323814", - "metadata": {}, - "outputs": [], - "source": [] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "329f1f8c-9d22-409e-b9cb-2755c07fd55f", - "metadata": {}, - "outputs": [], - "source": [] - } - ], - "metadata": { - "kernelspec": { - "display_name": "Python 3 (ipykernel)", - "language": "python", - "name": "python3" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.10.5" - } - }, - "nbformat": 4, - "nbformat_minor": 5 -} diff --git a/notebooks/Metrics.ipynb b/notebooks/Metrics.ipynb deleted file mode 100644 index e9ba65f..0000000 --- a/notebooks/Metrics.ipynb +++ /dev/null @@ -1,337 +0,0 @@ -{ - "cells": [ - { - "cell_type": "code", - "execution_count": null, - "id": "f0b57e26-f4fb-4eea-a8a0-060b8e00ec99", - "metadata": {}, - "outputs": [], - "source": [ - "!pip install rank_eval" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "d0ba5720-11b7-43ba-87b9-44a13dafc4ba", - "metadata": {}, - "outputs": [], - "source": [ - "!pip install ranx" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "273145ec-bb91-4182-8a53-90816057c442", - "metadata": {}, - "outputs": [], - "source": [ - "from rank_eval import Qrels, Run, evaluate, compare\n", - "import pandas as pd\n", - "from pandas import DataFrame\n" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "5923ed76-11a1-419f-835f-81dc36e90e4e", - "metadata": {}, - "outputs": [], - "source": [ - "df = pd.read_csv('../data/resp_classfied_NGC10W_cosseno.csv')\n", - "#df = pd.read_csv('resp_elasticsearch_bm25_2.csv')\n", - "df['indice'] = df['indice'].astype(str)\n", - "df['sugerido_1'] = df['sugerido_1'].astype(str)\n", - "df['sugerido_2'] = df['sugerido_2'].astype(str)\n", - "df['sugerido_3'] = df['sugerido_3'].astype(str)\n", - "df['sugerido_4'] = df['sugerido_4'].astype(str)\n", - "df['sugerido_5'] = df['sugerido_5'].astype(str)\n", - "df['sugerido_6'] = df['sugerido_6'].astype(str)\n", - "df['num_tema_cadastrado'] = df['num_tema_cadastrado'].astype(str)\n", - "df['relevancia_tema_cadastrado']=10" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "bdc2dc26-171f-44a6-b0cf-fba961da9644", - "metadata": {}, - "outputs": [], - "source": [ - "print(len(df))" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "f733b536-70dc-47e7-b405-73a60af238e5", - "metadata": {}, - "outputs": [], - "source": [ - "print(df.head())" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "0c170ef1-096d-42e4-b5a3-ab905d603b10", - "metadata": {}, - "outputs": [], - "source": [ - "q_id = []\n", - "doc_id = []\n", - "score = []\n", - "for indice, linha in df.iterrows():\n", - " for i in range(1,7):\n", - " q_id.append(linha[0])\n", - " sug = f\"sugerido_{i}\"\n", - " doc_id.append(int(linha[sug]))\n", - " sim = f\"similaridade_{i}\"\n", - " score.append(linha[sim])\n", - " \n" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "1b115ec7-77b1-4bd7-b295-f87832322708", - "metadata": {}, - "outputs": [], - "source": [ - "print(len(score))" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "836664f0-9566-4367-923a-8b09f344c5f7", - "metadata": {}, - "outputs": [], - "source": [] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "98e16dba-d999-45d6-b470-758dbba94ac5", - "metadata": {}, - "outputs": [], - "source": [] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "04bbe32b-a882-4799-a134-6a8d0512992b", - "metadata": {}, - "outputs": [], - "source": [ - "#len(q_id)\n", - "#len(doc_id)\n", - "len(score)" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "165e3b90-12b9-4c5a-902b-94ac8f73c2fb", - "metadata": {}, - "outputs": [], - "source": [ - "ranx_dict ={\"q_id\": q_id,\n", - " \"doc_id\": doc_id,\n", - " \"score\" : score\n", - "}\n" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "9f72578a-9ad2-42bc-927e-d0cad36933a6", - "metadata": {}, - "outputs": [], - "source": [ - "qrel = Qrels.from_df(df, q_id_col='indice', doc_id_col='num_tema_cadastrado', score_col='relevancia_tema_cadastrado')" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "38b7df5e-38e6-440b-a348-c99cf38026aa", - "metadata": {}, - "outputs": [], - "source": [ - "print(len(qrel))" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "7f61ea60-65ad-4fd5-bd03-1e5953d1e24d", - "metadata": {}, - "outputs": [], - "source": [ - "run_df = DataFrame.from_dict(ranx_dict)\n", - "run_df['q_id'] = run_df['q_id'].astype(str)\n", - "run_df['doc_id'] = run_df['doc_id'].astype(str)\n", - "run = Run.from_df(\n", - " df=run_df,\n", - " q_id_col=\"q_id\",\n", - " doc_id_col=\"doc_id\",\n", - " score_col=\"score\"\n", - ")\n", - "run.name = \"my_run\"" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "8dc1afac-22cd-44d6-9848-32b45d491f40", - "metadata": {}, - "outputs": [], - "source": [ - "def recallAtK(k,df):\n", - " Relevant_retrieved = 0\n", - " Total_relevant = len(df)\n", - " for indice,linha in df.iterrows():\n", - " if(0 < linha['posicao_tema_real'] <= k):\n", - " Relevant_retrieved +=1\n", - " return Relevant_retrieved/Total_relevant\n", - " \n", - " " - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "735e067d-84e3-493b-ad75-5d86c34d2075", - "metadata": {}, - "outputs": [], - "source": [ - "recall = recallAtK(6,df)\n", - "print(\"recall@6\")\n", - "print(round(recall,5))" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "557cceb3-517f-4358-9b2d-3261118af7a9", - "metadata": {}, - "outputs": [], - "source": [ - "#print(list(Qrels.keys(qrel)))" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "b6ea9b74-f4c0-4105-a807-c35fd8724abb", - "metadata": {}, - "outputs": [], - "source": [ - "#print(list(Run.keys(run)))" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "6cd573e2-43b6-403b-961f-08997eb945e7", - "metadata": {}, - "outputs": [], - "source": [ - "dicionario = evaluate(qrel, run, [\"map@6\",\"ndcg@6\",\"mrr\"])" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "a170f6e4-901f-4f9a-a5f9-d3deea092193", - "metadata": {}, - "outputs": [], - "source": [ - "# Computed metric scores are saved in the Run object\n", - "run.mean_scores\n", - "\n", - "\n" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "aea3557d-ed84-4fdd-9bd0-bf6647aa366c", - "metadata": {}, - "outputs": [], - "source": [ - "# Access scores for each query\n", - "#dict(run.scores)\n" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "0e63c632-52f2-473a-8419-90eb5eb76936", - "metadata": {}, - "outputs": [], - "source": [ - "f1_score = (2*dicionario['map@6']*recall)/(dicionario['map@6']+recall)" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "7b8f939e-8028-4bcf-a391-915edc14ff1f", - "metadata": {}, - "outputs": [], - "source": [ - "# Compare different runs and perform statistical tests\n", - "#report = compare(\n", - "# qrels=qrels,\n", - "# runs=[run_1, run_2, run_3, run_4, run_5],\n", - "# metrics=[\"map@100\", \"mrr@100\", \"ndcg@10\"],\n", - "# max_p=0.01 # P-value threshold\n", - "#)\n", - "\n", - "#print(report)" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "782a63b1-b2e9-44b4-91ce-7d332af1deb7", - "metadata": {}, - "outputs": [], - "source": [ - "print(round(f1_score,5))" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "0bfd7e7a-33ed-4ea3-9256-5910e5bb30b8", - "metadata": {}, - "outputs": [], - "source": [] - } - ], - "metadata": { - "kernelspec": { - "display_name": "Python 3 (ipykernel)", - "language": "python", - "name": "python3" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.10.5" - } - }, - "nbformat": 4, - "nbformat_minor": 5 -} diff --git a/notebooks/bertopic_unsupervised.ipynb b/notebooks/bertopic_unsupervised.ipynb deleted file mode 100644 index b9f76a4..0000000 --- a/notebooks/bertopic_unsupervised.ipynb +++ /dev/null @@ -1,775 +0,0 @@ -{ - "cells": [ - { - "cell_type": "code", - "execution_count": null, - "id": "46bc9ec7-5aa8-433c-9712-10ef101007f8", - "metadata": { - "scrolled": true, - "tags": [] - }, - "outputs": [], - "source": [ - "!pip install bertopic[flair,gensim,spacy,use]" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "5efdcade-f0d0-4db8-a5a4-035d90fde762", - "metadata": {}, - "outputs": [], - "source": [ - "!pip install bertopic[vision]" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "f7bd912e-676c-406e-97a8-29862da27d21", - "metadata": {}, - "outputs": [], - "source": [ - "!pip install rank_bm25" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "f299107e-5af2-4195-a8b0-0efc6084ff5b", - "metadata": {}, - "outputs": [], - "source": [ - "from bertopic import BERTopic\n", - "import openai\n", - "from bertopic.representation import OpenAI\n", - "from sentence_transformers import SentenceTransformer, util\n", - "from sklearn.feature_extraction.text import TfidfVectorizer\n", - "import pandas as pd\n", - "import csv\n", - "import re\n", - "import nltk\n", - "import string\n", - "from rank_bm25 import BM25Okapi" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "02c9eeaf-9f0f-40ac-8538-899e6a9364ff", - "metadata": {}, - "outputs": [], - "source": [ - "nltk.download('stopwords')\n", - "nltk.download('punkt')\n", - "from nltk.corpus import stopwords" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "5b401921-e817-4ba3-9fc4-7bc9cb67d228", - "metadata": {}, - "outputs": [], - "source": [ - "\n", - "def remove_punctuation(text):\n", - " translator = str.maketrans('', '', string.punctuation)\n", - " text_without_punctuation = text.translate(translator)\n", - " return text_without_punctuation" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "6558f965-d51b-4b4f-a25e-372fcf724cac", - "metadata": {}, - "outputs": [], - "source": [ - "def remove_stopwords(text):\n", - " stop_words = set(stopwords.words('portuguese'))\n", - " stop_words.update([\"nº\",\"cep\",\"telefone\",\"rua\",\"avenida\",\"endereço\",\"fax\",\"fones\"])\n", - " stop_words.update([\"egrégia\",\"egrégio\",\"eg\",\"e.g.\"])\n", - " stop_words.update([\"copy\",\"reg\",\"trade\",\"ldquo\",\"rdquo\",\"lsquo\",\"rsquo\",\"bull\",\"middot\",\"sdot\",\"ndash\",\"mdash\",\"cent\",\"pound\",\"euro\",\"ne\",\"frac12\",\"frac14\",\"frac34\",\"deg\",\"larr\",\"rarr\",\"uarr\",\"darr\",\"egrave\",\"eacute\",\"ccedil\",\"hellip\"])\n", - " tokens = nltk.word_tokenize(text, language='portuguese')\n", - " tokens_cleaned = [token for token in tokens if token not in stop_words]\n", - " text_cleaned = ' '.join(tokens_cleaned)\n", - " return text_cleaned" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "46e1f6f2-9420-43a7-a871-d371f05ef609", - "metadata": {}, - "outputs": [], - "source": [ - "def clean_text(doc):\n", - " final_doc = \"\"\n", - " doc = doc.lower()\n", - " #Tenta identificar parte relevante do documento\n", - " match = re.search(r' cabimento[^\\n]*',doc)\n", - " #Palavras irrelevantes\n", - " match_pattern = [r'\\b_+(?:\\d+|[a-zA-Z]+)?\\b',r'https?://\\S+',r'www\\.\\S+',r'\\S+@\\S+',r'^\\d{3}.\\d{3}.\\d{3}-\\d{2}$',r'^\\d{2}\\.\\d{3}\\.\\d{3}\\/\\d{4}\\-\\d{2}$',r'\\d{2}/\\d{2}/\\d{4}[ ,]',r'procuradoria regional (federal|da união) da \\d+[ªa] região',r'tribunal regional federal[ da] \\d+[ªa] região',r'advocacia[ -]geral da união',r'(excelentíssimo|senhor|vice-presidente|desembargador|\\(a\\))',r'procuradoria[ -]geral federal',r'escritório de advocacia',r'[ superior] tribunal de justiça',r'supremo tribunal federal',r'fones',r'fax']\n", - " subs = [''] * len(match_pattern)\n", - " if match:\n", - " start = match.start()\n", - " final_doc = doc[start:]\n", - " else:\n", - " final_doc = doc\n", - " for match_pattern, subs in zip(match_pattern,subs):\n", - " final_doc = re.sub(match_pattern,subs,final_doc)\n", - " final_doc = remove_stopwords(final_doc)\n", - " \n", - " return final_doc\n", - " " - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "58e61516-109a-4dbe-9d12-e9ce86a0b4f6", - "metadata": {}, - "outputs": [], - "source": [ - "def remove_stopwords_tfidf(text,stop_words):\n", - " tokens = nltk.word_tokenize(text, language='portuguese')\n", - " tokens_cleaned = [token for token in tokens if token not in stop_words]\n", - " text_cleaned = ' '.join(tokens_cleaned)\n", - " return text_cleaned" - ] - }, - { - "cell_type": "markdown", - "id": "2bb4adfb-33a4-403c-a669-16afdc582699", - "metadata": { - "id": "ho2P0r4xD0MC" - }, - "source": [ - "## **Lê recursos a partir do dataset e faz limpeza inicial dos textos**" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "42559cf5-68b3-4240-8d85-f641afbecbc9", - "metadata": {}, - "outputs": [], - "source": [ - "#Lê recursos especiais\n", - "resp = pd.read_csv('REsp_completo.csv')\n", - "\n", - "docs = []\n", - "num_cadastrado = []\n", - "indice = []\n", - "clean = True\n", - "\n", - "for i, linha in resp.iterrows():\n", - " tipo = type(linha['recurso'])\n", - " try:\n", - " #tratamento necessário, textos estavam sendo identificados como float\n", - " if (tipo == str):\n", - " if clean:\n", - " doc_cleaned = clean_text(linha['recurso'])\n", - " num_cadastrado.append(int(linha['num_tema_cadastrado']))\n", - " docs.append(doc_cleaned)\n", - " indice.append(i) \n", - " else:\n", - " num_cadastrado.append(int(linha['num_tema_cadastrado']))\n", - " docs.append(linha['recurso'])\n", - " indice.append(i)\n", - " \n", - " except Exception as erro:\n", - " print(f\"Erro ao capturar numero de tema cadastrado {i}\")\n", - " continue" - ] - }, - { - "cell_type": "markdown", - "id": "690f4742-9cea-4105-ac2d-e8ff9fe17b29", - "metadata": { - "id": "ho2P0r4xD0MC" - }, - "source": [ - "## **Cria matriz tf-idf e a partir de um limite estabelecido, cria um conjunto de stopwords e faz nova limpeza dos textos antes de inicar a modelagem de topicos**" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "67041e64-38e0-4b8a-8571-23d065e63f88", - "metadata": {}, - "outputs": [], - "source": [ - "vectorizer = TfidfVectorizer()\n", - "tfidf_matrix = vectorizer.fit_transform(docs)\n", - "\n", - "vocab = vectorizer.get_feature_names_out()\n", - "\n", - "df_tfidf = pd.DataFrame(tfidf_matrix.toarray(), columns=vocab)\n", - "\n", - "# limite para o valor de TF-IDF\n", - "limite_tfidf = 0.005\n", - "\n", - "# Encontra as palavras com TF-IDF inferior ao limite em todos os registros\n", - "inferior_tfidf_words_all = df_tfidf.columns[df_tfidf.lt(limite_tfidf).all()]\n", - "\n", - "stopwords_list = inferior_tfidf_words_all.tolist()\n", - "\n", - "for i in range(len(docs)):\n", - " docs[i]=remove_stopwords_tfidf(docs[i],stopwords_list)" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "e6f92cf3-c66d-4cfb-9543-660c55b67749", - "metadata": {}, - "outputs": [], - "source": [ - "#print(docs[0])" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "fbfa8c3a-c553-4eb1-93e3-7d8e49c0009d", - "metadata": {}, - "outputs": [], - "source": [ - "print(stopwords_list)" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "53ce903b-2b56-4ea2-8c06-223cc69fcb8c", - "metadata": {}, - "outputs": [], - "source": [ - "#Cria lista de temas apartir de arquivo\n", - "temas_repetitivos_eproc = pd.read_csv('temas_repetitivos.csv', sep=',' )\n", - "temas = temas_repetitivos_eproc[['tema','num_tema_cadastrado']].copy()\n", - "temas.columns = ['texto','numTema']\n", - "list_temas = list(temas.itertuples(index=False, name=None))" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "be454dce-fe91-4e1b-bd7c-da8f42494b84", - "metadata": {}, - "outputs": [], - "source": [ - "temas_seed_list = []\n", - "temas_seed = temas_repetitivos_eproc[['tema']].copy()\n", - "temas_seed.columns = ['texto']\n", - "for indice,linha in temas_seed.iterrows():\n", - " seed = clean_text(linha[0])\n", - " seed = remove_punctuation(seed)\n", - " temas_seed_list.append(seed.split())\n", - "\n" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "9e02bee6-a97d-437f-ad9e-bbab31565d83", - "metadata": {}, - "outputs": [], - "source": [ - "#print(temas_seed_list)" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "064a2e3a-b683-4cf0-9ed5-f6320b2c2c9f", - "metadata": {}, - "outputs": [], - "source": [ - "\n", - "len(docs)\n", - "#print(docs[470])" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "b99f0a64-dfcd-49dd-b666-e0f3f4f32faf", - "metadata": {}, - "outputs": [], - "source": [ - "len(num_cadastrado)" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "5c461af8-886c-4a00-8396-595885041764", - "metadata": {}, - "outputs": [], - "source": [ - "#Carrega modelo pré-treinado pra criar embeddings dos textos \n", - "#Modelo do bertopic não estava gerando corretamente topicos em portugues estava excluindo letras acentuadas e cedilha\n", - "sentence_model = SentenceTransformer('distiluse-base-multilingual-cased-v1')\n", - "topic_model = BERTopic(embedding_model=sentence_model,top_n_words=13, seed_topic_list=temas_seed_list)\n", - "topics, probs = topic_model.fit_transform(docs)" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "4cd4b139-2ca1-4b04-9de7-8c8486c52ce7", - "metadata": {}, - "outputs": [], - "source": [] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "02a998a3-9b2a-405a-866e-5ea7d6b1ea27", - "metadata": {}, - "outputs": [], - "source": [ - "#Verifica saida do SBERT\n", - "#embeddings = sentence_model.encode(docs)\n", - "#iteracoes = 1\n" - ] - }, - { - "cell_type": "code", - "execution_count": 43, - "id": "afab7b7f-c291-4325-a7f6-18edd71e7fb4", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Sentence: cabimento recurso análise autos , verifica-se : ) acórdão recorrido julgamento tribunal estadual ; b ) acórdão caminhou , data vênia , sentido contrário lei federal : afron- tando-lhe , contradizendo-lhe negando-lhe vigência ; c ) acórdão recorrido deu interpretação divergente caso análogo analisado pel estado paulo mato grosso sul , julgamento recurso apelação 1034016-33.2017.8.26.0562 agravo instrumento 1414475-39.2018.8.12.0000 - docs . anexos . posto , luz artigo 105 , iii , alínea ? ? ? c ? , cf , , artigo 1.029 , ii , novo cpc , cabível presente recurso especial alcançar fim desejado , : reforma acórdão reconhecer ilegitimidade banco brasil responder atuali- zação valores relacionados fundo pasep , extinguindo-se ação , resolução mé- rito , termos artigo 475 , vi código processo civil . prejudicial mérito : prescrição quinquenal obediência princípio eventualidade , considerando remota hipótese deferimento pedido autoral , requer , logo , condenação , tão somente , relativa últi- mos cinco anos , tendo vista plenário d. declarou inconstitu- cionalidade art . 23 , § 5º , lei 8.036/90 , previa prescrição trintenária perquirir verbas fundiárias , aqui utilizada base princípio simetria , vejamos : recurso extraordinário . direito trabalho . fundo garantia tempo serviço ( fgts ) . cobrança valores pagos . prazo prescricional . prescrição quinquenal . art . 7º , xxix , constituição . superação entendimento anterior sobre prescrição trintenária . inconstitucionalidade arts . 23 , § 5º , lei 8.036/90 55 regulamento fgts aprovado decreto 99.684/90 . segurança jurídica . necessidade modulação efeitos decisão . art . 27 lei 9.868/99 . declaração inconstitucionalidade efeitos ex nunc . recurso extraordinário página 5 17 nega provimento. ? ( stf , pleno , are 709.212/df , rel . min . gilmar mendes , j . 13.11.2014 ) . vez , superio , julgamento recurso espe- cial 1.205.277 ? pb , sob rito recursos repetitivos , concluiu : ? cinco anos prazo prescricional ação promovida contra união federal titulares contas vinculadas pis/pasep visando cobrança diferenças correção monetária incidente sobre saldo referidas contas , termos art . 1º decreto-lei 20.910/32 ? : processual civil . recurso especial . fundo pis/pasep . diferença correção monetária . demanda . prazo prescricional quinquenal . ( art . 1º decreto 20.910/32 ) . 1. cinco anos prazo prescricional ação promovida contra união federal titulares contas vinculadas pis/pasep visando cobrança diferenças correção monetária sobre saldo referidas contas , termos art . 1º decreto-lei 20.910/32 . precedentes . 2. recurso especial dá provimento . acórdão sujeito regime art . 543-c cpc resolução stj 08/08 . ( resp 1205277/pb , rel . ministro teori albino zavascki , primeira seção , julgado dje 01/08/2012 ) embora acórdão proferido sob égide procedimento recursos repe- titivos ter consignado , forma expressa , termo inicial prazo prescricional , expressa menção agrg ag 848.861/sp , 2ª turma , relatoria ministro herman benjamin , , vez , fixa termo inicial prazo prescricional sendo data deixou feito credita- mento última diferença pleiteada . portanto , termo inicial correspondente data último depó- sito , ocorreu 1988. nesta mesma toada vem posicionando tribunais federação : recurso inominado . consumidor . expurgos inflacionários . ação discute correção monetária contas vinculadas pis/pasep . banco brasil mero depositário valores existentes título pasep . ilegitimidade banco brasil figurar polo passivo reconhecida ofício . entedimento sedimentado jurisprudência pá- tria . sentença reformada extinguir ação resolução mé- rito . trata-se recurso inominado interposto face sentença prolatada seguinte dispositivo ora transcrevo in verbis : assim , ante exposto tudo autos consta , acolho preliminar prescrição pretensões autorais , fundamento art . 487 , inciso ii , código processo civil , extinguir queixa proposta cosme trindade santos contra banco brasil página 6 17 s/a , julgamento mérito . custas honorários forma lei 9099/95 . p.ri . presentes condições admissibilidade recurso , conheço . ( tjba , recurso inominado 0156583-05.2017.8.05.0001 , relator : isabela kruschewsky pedreira silva , publicado : g.n ) tributário . pis/pasep . legitimidade passiva união . ação cobrança . expurgos inflacionários . prazo prescricional quinquenal . art . 1º decreto 20.910/32 . 1. ação inicialmente ajuizada face banco brasil jus- tiça federal declarou incompetente determinando remessa autos justiça estadual . sede julgamento agravo instrumento , interposto justiça estadual , decidido tratar-se competência justiça federal união federal gestora recursos pis/pasep , razão autos retor- naram 5ª vara cível justiça federal paulo . 2. fls . 117 parte autora requereu citação banco brasil conselho di- retor fundo participação pis/pasep . fls . 172 determinada citação união federal , tendo vista possuir conselho diretor fundo partici- pação pis/pasep personalidade jurídica fls . 178 , união fede- ral citada . 3. embora legislação discipline prazo específico exercício pretensão fundamento relação jurídica obrigacional titulares con- tas fundo pis/pasep ( diferenças correção monetária ) órgão responsável gestão , jurisprudência , acerca tema , encontra-se consolidada sen- tido sujeita prazo prescrição quinquenal , termos artigo 1º decreto 20.910/32 . 4. caso comento , ação ajuizada contra banco brasil somente união passou integrar demanda polo passivo . autores requerem recebimento diferença apurada índices correção monetária aplicados saldo conta individual pis/pasep anos 1970 1994 . 5. embora presente demanda sido proposta 1996 , proposta contra parte ilegítima , tendo sido , portanto , interrompida prescrição . somente união citada compor lide considerando pedido refere-se período 1970 1996 , rigor reconhecimento prescrição termos r. sentença 6. agravos retidos conhecidos . apelo desprovido . ( trf3 . apelação cível n . 0039989-66.1996.4.03.6100 , paulo , 4ª turma , relator : des . fed . marcelo saraiva , j : p : 16/02/2017 ) tendo vista distribuição cotas pasep vigorou 1988 , eventual recolhimento valores união federal poderia reclamado quinquênio seguinte último página 7 17 depósito . tendo vista , promulgação constituição federal 1988 descabem novos depósitos , somente 1993 poderia proposta ação reclamando eventuais calores creditados . assim , rigor reconhecimento prescrição caso posto tela , presente demanda ajuizada tão somente 29/04/2019 . subsidiariamente , caso aplicação princípio actio nata , , considerado data conhecimento dano ameaça direito tutelado momento nasce pretensão deduzir juízo , cabe banco recorrente tecer algumas considerações . entendimento cotista toma conhecimento saldo irrisório tão somente disponibilizado extrato instituição financeira , contudo , consignar caso discussão parte recorrida efetuou saque cotas aposentadoria/reforma remunerada/falecimento 24.05.2011 , , 10 anos ajuizamento ação , , mesma recebeu quantia supostamente irrisória tão somente ano 2019 ajuizou ação visando recebimento valor devidamente corrigido . nesse sentido : agravo instrumento . processo civil . pasep ? programa formação patrimônio servidor público . administração valores vertidos união . correção monetária . legitimidade banco brasil . denunciação lide . afastada . competência justiça estadual . súmula 508 . prescrição decenal . ocorrência . relação trato sucessivo . termo inicial . teoria actio nata . data disponibilização numerário . 1. banco brasil parte legítima figurar polo passivo ações cuja causa pedir refere unicamente incorreta atualização depósitos efetuados união título pasep desfalque sofrido conta individual servidora decorrência saques supostamente indevidos . 2. acordo súmula 508 supremo tribunal federal , compete justiça estadual , ambas instâncias , processar julgar causas parte banco brasil s.a .. 3. ações reparação danos materiais decorrentes ato ilícito praticado através má gestão recursos pasep repassados união custodiados banco brasil , aplica- prazo prescricional 10 ( dez ) anos , previsto art . 205 código civil . jurisprudência oitava turma cível . ressalva relator . 4. recurso conhecido provido . ( agravo instrumento 0712642-94.2020.8.07.0000 ? relator : eustaquio castro ? 08ª turma cível ? tj/dft ? julgado 22/07/2020 ) página 8 17 deste modo , considerando recebimento cotas parte apelada , momento realmente sabia saldo recepcionado , aplicação princípio actio in nata , caso tela , aplica partir saque disponibilização extrato , devendo , pois , reconhecida prescrição direto parte recorrida sobre eventual ressarcimento . ad argumentandum tantum , caso entendimento vossas excelências , sendo afastada aplicação código defesa consumidor , razão pasep produto bancário oferecido banco recorrente , requer-se aplicação prescrição trienal saques rendimentos tidos suposto desfalque , prevista código civil . 2.1 - admissibilidade presente recurso termos art . 105 , iii alínea ? ? ( violação artigo 485 , inciso vi artigo 17 código processo civil , art . 4-a lei complementar 26/1975 , bem artigos 07º 10º decreto 4.751/2003 ) alínea ? c ? ( dissenso jurisprudencial constituição federal ) v. acórdão recorrido violou dispositivos legais motivando , desta forma , subsunção decisão nele contida preceitos daquela contida permissivo constitucional invocado . cumpre salientar presente recurso tempestivo , adequado , devida- mente preparado prequestionado . consoante disposto artigo 105 , ii alínea ? ? , constituição federal , ad- missível recurso especial v. acórdão contrariar tratado lei federal , negar-lhes vi- gência . assim , tem-se presente recurso especial fundamento artigo 105 , inciso iii , alínea ? ? permissivo constitucional frontalmente violados ferindo , assim , artigo 485 , inciso vi artigo 17 código processo civil , artigo 4-a lei complementar oportuno ressaltar presente recurso esbarra súmula 7 stj , implica reexame prova , medida flagrante violação ferindo , assim , artigo 485 , inciso vi artigo 17 código processo civil , artigo 4-a lei complementar posto , rigor conhecido final totalmente provido presente recurso especial , medida direito . 2.3 - prequestionamento exige-se conhecimento recurso especial matéria sido devida- mente prequestionada tribunal ? quo ? . página 9 17 toda discussão cinge-se fato saque realizado conta pasep administrada banco brasil , alegando beneficiário saldo irrisório , contudo , responsabilidade instituição financeira limita-se atos mero arrecadador ingerência sobre índices atualização fixados conselho diretor , contrário abordado acórdão questionado , fe- rindo , assim , artigo 485 , inciso vi artigo 17 código processo civil , artigo 4-a lei com- plementar 26/1975 , bem arts .. 7º , §6º 10º , parágrafo único decreto lei 4.751/2003 ( revogado decreto lei 9978/2019 ) . conforme verifica autos , requisito prequestionamento devida- mente cumprido , eis todos artigos lei tidos violados constaram acórdão guerreado . 3- mérito recursal 3.1 - violação artigos 485 , inciso vi c.c artigos 17º legislação processual civil ressalta-se resta nítida ausência pressupostos básicos desenvolvimento regularidade processual demanda posta apreciação desta colenda corte especial , vista nítida impossibilidade jurídica pedido aventado autos , ensejando carência ação parte parte recorrida , entidade bancária recorrente parte ilegítima figurar polo passivo presente causa . cumpre salientar cabe banco recorrente realizar atualização conformidade pretensão parte recorrida , tendo vista obedece parâmetros ditados união federal . demanda versa acerca alegação recorrida depositados valores correções . contudo , parte recorrida movimenta máquina judiciário sanado falta , aparada inércia buscar benefício pode ocorrer . termos artigo 17 cpc , propor ação ? autora ? deverá ter interesse agir . entenda-se , interesse agir , fato irregularidade praticada réu contra regras contratuais , ocorreu momento . interesse agir , pois , secundário , instrumental pressupõe interesse material . recorrida prova último , obviamente falta interesse agir , porquanto provimento jurisdicional pleiteado adequado trará utilidade prática partes . demais argumentos suficientes invocar prestação jurisdicional . ingressou , recorrida , om presente demanda requerendo indenização danos materiais danos morais razão valores depositados conta pasep , contudo , entende página 10 17 valor atualizado apontado conta indevido , alegando suposto desvio parte banco recorrido . contudo , consoante exaustivamente debatido autos , reponsabili- dade banco brasil ocorrido . primeiramente porque atos ocorridos fogem capacidade controle recor- rente , vista ações discute correção monetária contas vinculadas pis/pasep parte passiva deve composta , unicamente , união federal , eis cabe ente reali- zar depósitos proceder devida estipulação correção monetária , termos art . 7° , decreto n° 4.751/2003 , conforme cabalmente demonstrado anteriormente . nobre ministro relator ante flagrante ilegitimidade desta instituição financeira , bem necessidade permanência união federal lide , resta clara necessidade manutenção autos justiça federal . justiça federal competente processar julgar ações refere sa- ques , retiradas pagamento pasep . tais ações referem abordagem relação trabalho . ficou decidido stj conflito competência 3.149-6 ? rj ? ( . 92.0014216-8 ) relatoria exce- lentíssimo ministro josé jesus filho . ainda , artigo 109 constituição federal dispõe quanto competência justiça federal causas união figurar ré : art . 109. juízes federais compete processar julgar : i - causas união , entidade autárquica empresa pública federal interessadas condição autoras , rés , assistentes oponentes , exceto falência , acidentes trabalho sujeitas justiça eleitoral justiça trabalho ; corroborando exposto acima , vejamos decisões egrégios tribunais justiça : agravo instrumento ? ação obrigação fazer ? resgate va- lor existente pasep titular ? competência justiça federal ? recurso nega provimento . competência processar jul- gar demanda relativa resgate valor depositado pasep titular justiça federal , acordo artigo 109 , i , cf. ( tj-ms ? ai : 14144753920188120000 ms 1414475-39.2019.8.12.0000 , relator : des . luiz tadeu barbosa silva , data julgamento : 5ª câmara cí- vel , data publicação : 31/01/2019 ) . ( grifo ) página 11 17 apelação . pretensão pagamento diferenças remuneração pis/pasep , decorrentes aplicação índices correção monetária . compen- tência . gestão fundo compete banco brasil , conselho diretor subordinado ministério fazenda . fundo representado juízo procuradoria fazenda nacional . competência justiça federal . recurso conhecido , determinação remessa autos justiça federal . ( tj-sp ? ac : 10340163320178260562 sp 1034016-33.2017.8.26.0562 , relator : flávio cunha silva , data julgamento : 38ª câmara direito privado . ( grifo ) assim , requer reforma decisão entendeu remessa autos justiça comum tendo vista competência processar julgar ação justiça federal , devendo autos permanecerem esfera judiciária federal . assim sendo , observa-se exordial cuidou reunir pressupostos básicos desenvolvimento válido regular ação , , interesse agir legitimidade parte , bem prova inequívoca fatos alegados pedido possa apto apreciado nobre poder judiciário , razão faz necessária reforma r. decisão , fim reconhecer ilegitimidade passiva banco brasil legitimidade união , consequentemente , julgar processo extinto , apreciação mérito , conforme norma jurídica elencada artigo 485 , inciso vi , código processo civil , face desta casa bancária . 3.2 ? negativa vigência arts . 7º , §6º 10º , parágrafo único decreto lei 4.751/2003 ( revogado decreto lei 9978/2019 ) primeiramente , cumpre banco recorrente esclarecer aplicação decreto revogado 4.751/03 detrimento daquele entrou vigor 20 agosto 2019 ( decreto 9.978 ) dá única exclusivamente base princípio tempus regit actum , , norma posterior influenciará relação firmada época lei anterior , revogada , visando assegurar segurança jurídica estabelecida eficácia , tempo modo anteriormente previstos ? superados ? lei posterior . partindo desta premissa , acórdão vergastado , reconhecer legitimidade banco brasil compor polo passivo lide , consequentemente , ilegitimidade união responder fatos narrados peça exordial , negou vigência legislação aplicável contas vinculadas fundo pasep , passo banco brasil apenas executa normas provenientes conselho diretor pis/pasep , , fato , compete gerência citado fundo , termos artigo 7º , §4º parágrafo único artigo 10 , todos decreto n . 4.751 , 17 julho 2003. vejamos : art . 7º - pis pasep gerido conselho diretor , órgão colegiado constituído sete membros efetivos suplentes igual número , mandatos dois anos , designados ministério estado fazenda , seguinte página 12 17 composição . § 4º - conselho diretor coordenado representante secretaria tesouro nacional . art . 10º - omissis . parágrafo único . banco brasil exercerá atribuições previstas neste artigo acordo normas , diretrizes critérios estabelecidos conselho diretor pis pasep , observância lei complementar 26 , 1975 , disposições deste decreto . instituição financeira , ora recorrente , penas segue normas estabelecidas legislação regulamentadora fundo pasep , modo conselho diretor instituído ministério estado fazenda órgão delibera sobre cálculo atualização monetária saldo credor contas individuais participantes , inclusive , resolve casos omissos quanto pedidos saques quotas pis pasep . ademais , representação citado conselho juízo , teor dispõe §6º artigo 7º decreto 4.751/03 , competência atribuída fazenda nacional : art . 7º . omissis § 6º - conselho diretor fica investido representação ativa passiva pis pasep , representado defendido juízo procurador fazenda nacional . ínclitos ministros , corte sedimentou entendimento sobre ilegitimidade banco brasil om relação questão fundo pis pasep , editando , assim súmula 77 , dispõe : ? caixa econômica federal parte ilegítima figurar polo passivo ações relativas contribuições fundo pispasep ? . enunciado faz distinção discussão relação má gestão ente financeiro reclamação trazida conhecimento poder judiciário elo beneficiário incutida insuficiência saldo saldo irrisório momento saque , implicando correção monetária fundo aplicada forma incorreta atribuindo responsabilidade banco brasil . banco recorrente , assim caixa econômica federal , papel mero administrador fundo governamental , modo entendimento encravada súmula 77 aplicada maneira análoga favor , reconhecendo-se , consequentemente , ilegitimidade compor figurar polo passivo qualquer demanda causa pedir saldo irrisório fundo pasep , conforme exaustivamente exposto , responsabilidade conselho página 13 17 diretor vinculado união federal . decreto 4.751/03 expõe forma clara atribuições conselho diretor , bem competência banco brasil quanto fundo pasep , sendo obrigação correção monetária valores , sim somente manter contas individuais , processar solicitações saques fornecer , sempre solicitado conselho diretor , documentos relativos repasses recursos . portanto , evidente acórdão guerreado negou vigência artigo 7º , §4º parágrafo único artigo 10 decreto 4.751/2003 , sendo certo reforma medida impõe , extinção processo termos artigo 485 , vi código processo civil . 3.3 - violação artigo 4º lei complementar 26/1975 importante ressaltar nítida impossibilidade jurídica pedido aventado autos , autorização expressa realização pagamento rendimentos , senão vejamos : certo parte referente rendimentos anuais pagos reduzem saldo antes saque final , assim eventual saque total motivo aposentadoria , caso autos . corroborando exposto acima , importante verificar 5ª turma especializada tribunal regional federal 2ª região observou autorização expressa realização pagamento rendimentos conforme artigo 4º-a lei complementar 26/1975 : art . 4º-a . caixa econômica federal banco brasil s.a. ficam autorizados disponibilizar saldo conta individual participante pis/pasep folha pagamento mediante crédito automático conta depósito , conta-poupança outro arranjo pagamento titularidade participante , enquadrado hipóteses normativas saque prévia manifestação contrária . ( redação dada lei 13.677 , 2018 ) desta feita presente requerer reforma acórdão proferido diante clara afronta lei complementar 26/1975 . 3.4 - cotejo analítico termos art . 105 , iii alínea ? c ? constituição federal prejuízo violação artigos lei amplamente discutidos acima , acórdão recorrido divergiu arestos proferidos perante egrégios tribunais justiça estados paulo mato grosso sul ( apelação 1034016-33.2017.8.26.0562 agravo instrumento 1414475-39.2018.8.12.0000 - docs . anexo ) demonstrando claro cristalino dissídio jurisprudencial . acórdão objeto irresignação presente recurso especial fundamentação ponderou quanto ilegitimidade banco brasil , concluiu : página 14 17 ( ... ) ? considerando pedido formulado parte autora face união trata condenação suposta responsabilidade falha serviço imputada banco brasil s/a , ente federal possui legitimidade passiva relação tal pedido , merece re- forma decisão excluiu união lide , consequente remessa autos justiça estadual. ? vez aresto proferido autos recurso apelação 1034016- 33.2017.8.26.0562 ( acórdão 2019.0000148165 ? tj/sp ) relator consignou : ? cabe , primeiramente , esclarecer entendimento adotado majoritariamente est inclina sentido banco réu parte ilegítima figurar polo passivo demanda , pois tange administração contas individuais pasep , trata-se mero prestador serviços , recebendo comissão . parte ilegítima compor polo passivo ações união , pois patrimônio fundo participação pis/pasep regido conselho diretor , cujos membros designados ministério fazenda , competência calcular correção monetária sobre saldo credor contas vinculadas participantes , bem percentual juros incidentes , qualquer participação banco brasil s/a . tal fato atrai competência julgamento justiça federal . união parte legitima compor polo passivo ações discutem contas referentes fundo participação pis/pasep , vista tal patrimônio gerido conselho diretor designado ministério fazenda ? . , claramente afasta responsabilidade legitimidade banco recorrente responder sobre quaisquer questões relativas poder ingerência conselho diretor gestor fundo pis/pasep , vez instituição financeira mera arrecadadora valores depositados conta individual . acórdão objeto presente recurso especial apenas tece considerações sobre documentação colacionada exordial sobre fatos narrados parte recorrida , questiona realização saque fundo pasep valor irrisório , , correção monetária atribuída conselho diretor questionada . vez , aresto proferido pel estado mato grosso sul , autos agravo instrumento 1414475-39.2018.8.12.0000 , relator afastou responsabilidade casa bancária recorrente responder sobre supostos valores insuficiência depósitos pasep , vejamos : ? agravante defende competência justiça estadual porque fim visado ação condenar banco brasil insuficiência depósitos pasep , página 15 17 segundo teoria asserção , condição ação analisável termos relação jurídica deduzida inicial . razão agravante . verifica-se inicial pretensão agravante resgatar valor recolhido pasep . sabe-se pasep programa instituído governo federal melhor distribuição renda pais , integrar vida trabalhador , custeio seguro- desemprego fgts programas sociais . competência justiça estadual dar-se-ia hipóteses pagamento dependentes sucessores titular , termos lei 6.858/80 , caso apreço , onde pretensão resgate titular ? . veja-se , ínclitos ministros julgadores , pacificação harmônica arestos indicados , sendo flagrante dissenso gera insegurança jurídica instituição financeira , atuante todos estados federação . resta claro consenso tribunais federação quanto fixação competência processar julgar ações envolvendo fundo pis/pasep , sendo divergência jurisprudencial cai sobre ingerência banco brasil valores depositados administração contas individuais , conforme amplamente exposto razões recursais , recai integralmente sobre conselho diretor , , responsabilidade união federal . deste modo , vez realizado cotejo analítico aresto proferido 5ª turma especializada tribunal regional federal 2ª região ( objeto razões recursais ) prolatados pel estado paulo ( acórdão 2019.0000148165 ? tj/sp ) mato grosso sul ( acórdão 2019000501 ? tj/ms ) , restam dúvidas quanto dissenso ora suscitado . assim , resta evidente divergência jurisprudencial , devendo considerado v. acórdão ateve entendimento tribunais pátrios , conforme restou demonstrado , devendo superio pronunciar sobre precedentes colacionados razões recursais , apontando firmando entendimento uníssono sobre questão . pedidos tudo quanto exposto , requer recebimento presente recurso especial termos artigo 255 § 1º regimento interno deste colendo superior tribunal justiça . requer ainda , adoção regime recursos assunto caráter repetitivo , termos artigo 1029 , §4º 1036 código processo civil , suspensão todos processos mesma temática ( pasep ? ilegitimidade banco brasil legitimidade união ) . fim , requer colenda turma conhecimento presente recurso especial , consoante permissão contida art . 105 , inciso iii , alíneas ? ? ? c ? constituição federal página 16 17 combinados art . 1.029 segs . código processo civil , sendo mérito provido , eformando-se v. acórdão proferido autos apelação epígrafe retornar status quo ante sentença extinção resolução mérito , termos artigo 485 , vi código processo civil , sendo certo acolhimento pedido recorrente fará integral tão almejada justiça . fim , requer anotado contracapa e/ou habilitação autos eletrônicos página 17 17\n", - "Embedding: [ 1.04064234e-02 7.09883403e-03 1.61010697e-02 7.14033982e-03\n", - " 3.82977314e-02 -2.36491673e-02 -1.55100096e-02 -1.70701668e-02\n", - " -1.30704986e-02 7.73574971e-03 -1.78947262e-02 -4.09197472e-02\n", - " 6.20177947e-02 -5.30756228e-02 -8.04439858e-02 1.17883459e-02\n", - " -1.92579627e-02 4.12835665e-02 -1.22788409e-02 8.73515606e-02\n", - " 3.20549197e-02 -7.04465806e-03 -1.57132596e-02 3.78552079e-02\n", - " 1.58206169e-02 1.02445269e-02 5.20436047e-03 4.19564135e-02\n", - " -3.95845883e-02 -1.35158040e-02 -2.23864987e-03 -3.00136134e-02\n", - " -3.94421630e-02 -6.20731115e-02 3.78940292e-02 -6.82698041e-02\n", - " 2.75792275e-02 -5.42416535e-02 6.73640370e-02 1.90257896e-02\n", - " 2.58500837e-02 -1.07759563e-02 -8.01168084e-02 2.65741199e-02\n", - " 4.90505882e-02 -6.43809959e-02 2.77132373e-02 -5.69354147e-02\n", - " 9.33143310e-03 1.81629357e-03 9.46925208e-03 -1.04655333e-01\n", - " 4.73891981e-02 1.95245091e-02 -1.98681056e-02 -3.63113056e-03\n", - " -7.32814372e-02 -2.79600243e-03 6.33909926e-02 1.07323136e-02\n", - " 4.79836389e-03 -4.48499918e-02 3.73688675e-02 -1.83096174e-02\n", - " 6.89377636e-03 -2.00795550e-02 5.32055199e-02 -6.53427467e-03\n", - " 4.32461471e-04 1.13811176e-02 -6.35359529e-03 -4.33501899e-02\n", - " 1.82004143e-02 9.80027206e-03 2.39920011e-03 8.08508229e-03\n", - " 5.58121130e-03 -1.34623342e-03 -6.75086956e-03 1.59551110e-02\n", - " 3.36356349e-02 -8.81464407e-02 3.84379104e-02 4.62137610e-02\n", - " 7.71480724e-02 5.28096221e-02 -1.77057013e-02 6.33484218e-03\n", - " 7.38257589e-03 5.37920520e-02 8.13669339e-02 4.47545387e-03\n", - " -1.10880248e-02 3.04828770e-02 -4.35302081e-03 -2.55615059e-02\n", - " 2.43516709e-03 1.99852809e-02 -3.79860215e-03 -1.30243720e-02\n", - " -2.07958985e-02 1.37938289e-02 1.13578886e-02 3.85225751e-02\n", - " 1.17977299e-02 1.33694441e-03 3.19931246e-02 -4.32614163e-02\n", - " 4.57042903e-02 -1.10493205e-01 4.21615876e-02 -4.09403853e-02\n", - " 3.96628864e-02 1.66745521e-02 1.81729700e-02 3.72951515e-02\n", - " -2.09327117e-02 5.94153628e-02 -4.98905927e-02 8.72076750e-02\n", - " 2.80683059e-02 -3.12180147e-02 -3.01338751e-02 -6.41956134e-03\n", - " 1.14059774e-03 -4.96006347e-02 3.88478637e-02 -2.33180635e-02\n", - " 3.87404375e-02 -2.50692223e-03 6.08566478e-02 3.87064670e-03\n", - " 3.97551544e-02 -1.10311825e-02 -6.96410984e-02 -1.57434605e-02\n", - " -9.06875916e-03 -2.66795256e-03 -7.65623003e-02 -2.84163523e-02\n", - " -1.64986346e-02 1.11417556e-02 -2.98231058e-02 -6.87934309e-02\n", - " -2.42920518e-02 2.39473376e-02 4.31034416e-02 4.87299599e-02\n", - " 2.14231499e-02 -5.96136339e-02 1.79035356e-03 1.09054223e-02\n", - " -1.53305888e-01 -1.72072146e-02 -5.53753693e-03 -2.57260110e-02\n", - " 1.41072841e-02 -1.85376257e-02 -1.06905522e-02 -6.05384335e-02\n", - " 6.00811141e-03 5.10977805e-02 1.32480059e-02 7.40020722e-02\n", - " 3.08269635e-04 -3.36134471e-02 -2.16885768e-02 -2.31404454e-02\n", - " 6.05464205e-02 -2.01223269e-02 3.33066620e-02 -5.77438027e-02\n", - " 4.41746041e-02 1.78381689e-02 3.35252099e-02 -2.45139021e-02\n", - " -4.00425717e-02 -3.43710147e-02 -1.36723081e-02 -3.94881517e-02\n", - " 6.52719736e-02 -2.86509674e-02 3.79910879e-02 -5.73277287e-02\n", - " -2.46151220e-02 2.87476778e-02 3.42779569e-02 2.43703946e-02\n", - " 7.31567387e-03 5.97224273e-02 -6.39378205e-02 1.42521439e-02\n", - " -2.07970161e-02 -5.17651951e-03 4.00302000e-03 -5.44563215e-03\n", - " -2.17120647e-02 3.35728154e-02 -6.00179508e-02 -7.52763152e-02\n", - " -4.63520316e-03 1.65570658e-02 5.25260493e-02 -3.71902958e-02\n", - " 1.43641299e-02 -4.97974418e-02 3.31002995e-02 8.02566186e-02\n", - " 4.25060093e-02 7.20561668e-02 1.91904083e-02 2.30700225e-02\n", - " 3.57521028e-04 -3.34149674e-02 3.88495140e-02 -1.28140789e-03\n", - " 1.41002601e-02 -2.37872209e-02 1.72336455e-02 -6.49631210e-03\n", - " 9.30447876e-03 -4.63424139e-02 2.33051069e-02 3.48915942e-02\n", - " -3.97096807e-03 5.45431487e-02 1.41929323e-02 -1.74399484e-02\n", - " -8.10552612e-02 -8.56685266e-03 -4.87201139e-02 5.85779957e-02\n", - " 3.33487913e-02 -4.98036034e-02 4.16717343e-02 3.40657160e-02\n", - " 2.85621658e-02 9.66816843e-02 -2.59094182e-02 1.67559311e-02\n", - " -1.15772085e-02 -5.53736649e-03 -3.18975523e-02 -8.04515928e-02\n", - " -1.30269108e-02 -1.40117481e-04 5.85044958e-02 -5.01354523e-02\n", - " -4.43884777e-03 -5.94733208e-02 -4.31226986e-03 7.06746755e-03\n", - " -1.60668939e-02 2.41306908e-02 2.42426153e-03 -1.12775257e-02\n", - " -4.09015082e-02 5.52176265e-03 1.09932991e-03 -3.30150202e-02\n", - " -2.34796945e-02 -6.67400211e-02 -8.56702551e-02 -1.98611952e-02\n", - " 1.74499378e-02 -6.16591610e-02 2.37820614e-02 3.73987556e-02\n", - " 5.60843274e-02 -5.79681918e-02 2.07761880e-02 5.07258065e-02\n", - " -3.16141881e-02 -4.14278172e-02 -3.33326496e-02 -1.61337461e-02\n", - " -7.89717864e-03 5.24283499e-02 8.26517120e-03 -1.84048004e-02\n", - " -4.82665971e-02 7.34194135e-03 2.92793065e-02 -2.64041442e-02\n", - " -2.40778495e-02 4.07038406e-02 1.32209510e-02 -1.20880203e-02\n", - " 3.07065225e-03 -3.21735218e-02 5.04230522e-02 2.29009409e-02\n", - " 5.24491295e-02 -9.67620872e-03 -3.73286530e-02 -1.25299934e-02\n", - " -5.01709711e-03 4.49291319e-02 -3.19802724e-02 -2.80208904e-02\n", - " 5.08257784e-02 1.75069571e-02 -5.48903830e-02 -8.42684880e-03\n", - " 1.67456605e-02 -2.90970691e-02 3.46692167e-02 2.01647244e-02\n", - " -1.86169576e-02 1.15078129e-02 -3.82553488e-02 1.90610643e-02\n", - " 3.53600532e-02 7.68584991e-03 -1.00870552e-02 3.61226909e-02\n", - " -4.04646285e-02 2.24103797e-02 -3.35186943e-02 -1.50756016e-02\n", - " -4.97878641e-02 -2.46196035e-02 -3.36881019e-02 5.81463892e-03\n", - " -1.10272430e-02 4.62543964e-02 3.16124149e-02 1.54992472e-02\n", - " -5.86711094e-02 -3.29547711e-02 -5.19020334e-02 -6.61178976e-02\n", - " -4.25224192e-02 -1.00936706e-03 -2.23794915e-02 1.38657857e-02\n", - " 5.14004892e-03 -8.40323337e-04 -4.75005172e-02 1.56505331e-02\n", - " -5.72386011e-02 5.87297045e-02 -3.38339270e-03 1.92835778e-02\n", - " -2.18543075e-02 -2.17898879e-02 1.44158090e-02 -2.97675701e-03\n", - " 5.09857666e-03 1.60985570e-02 -2.00756881e-02 6.28547091e-03\n", - " 3.60220410e-02 -3.68620381e-02 2.51146331e-02 -8.81580636e-03\n", - " -3.59356925e-02 -8.86245966e-02 2.06078924e-02 -1.55704340e-03\n", - " 4.02745865e-02 -1.92918666e-02 3.22058648e-02 4.94854786e-02\n", - " 2.89993174e-02 2.86870375e-02 -3.11579481e-02 -6.47670999e-02\n", - " -6.70948401e-02 -2.04612520e-02 -2.11273972e-02 -2.02116892e-02\n", - " -4.61451374e-02 -2.40483414e-03 7.63731524e-02 -3.22725698e-02\n", - " 6.65888563e-02 -3.14313988e-03 2.67969314e-02 -1.88556761e-02\n", - " 3.49055715e-02 -3.00073363e-02 8.89134258e-02 9.31190036e-04\n", - " -1.72560848e-02 -4.92238905e-03 5.03362855e-03 -2.73509677e-02\n", - " 7.16889128e-02 2.29214299e-02 -3.90199799e-04 5.46122789e-02\n", - " 1.32696435e-03 -2.14224402e-02 -5.70430458e-02 -1.59113389e-02\n", - " -5.31742349e-03 3.61806639e-02 -2.33151577e-02 -3.71238892e-03\n", - " 1.60846813e-03 5.54168299e-02 -1.04983635e-02 -1.02192592e-02\n", - " -5.47269545e-02 -3.36854011e-02 -4.24288847e-02 4.00350094e-02\n", - " -8.06753784e-02 -4.29416709e-02 3.69397476e-02 3.51359248e-02\n", - " 2.86620650e-02 -2.55677179e-02 5.02950884e-02 -1.71130020e-02\n", - " 7.66633451e-02 3.55131105e-02 -8.62665102e-03 1.57263987e-02\n", - " -3.34156677e-03 -6.18511857e-03 -3.67377810e-02 1.43200578e-02\n", - " -3.72568592e-02 3.23549472e-02 1.93197501e-03 3.17226313e-02\n", - " 7.08894432e-02 9.91090783e-04 1.80540103e-02 9.75263584e-03\n", - " -6.69154618e-03 -1.25530297e-02 -5.25522195e-02 2.92034801e-02\n", - " 6.65204749e-02 1.55102555e-02 -2.29146704e-02 1.42407883e-02\n", - " 3.76818771e-03 -5.19416817e-02 2.27077622e-02 7.78227486e-03\n", - " -5.64169418e-03 -2.23432314e-02 1.64563879e-02 -4.83300798e-02\n", - " -3.70506160e-02 -5.26307663e-03 -5.43236621e-02 -6.76751509e-02\n", - " -4.26248983e-02 -4.53050099e-02 2.40631886e-02 -8.81829578e-03\n", - " 6.43965229e-02 7.22375661e-02 6.40291860e-03 1.59556251e-02\n", - " -5.62442392e-02 2.73077167e-03 -3.75106819e-02 3.42822596e-02\n", - " -4.57620323e-02 -1.93793979e-03 -1.74207352e-02 -5.38239554e-02\n", - " 1.01288231e-02 -1.59260426e-02 1.63917355e-02 1.79997068e-02\n", - " 3.54180895e-02 2.86716558e-02 -2.45400779e-02 -4.36105765e-02\n", - " -1.69670023e-02 -6.31836131e-02 -1.90181825e-02 -3.81851420e-02\n", - " -2.07545832e-02 3.11507974e-02 2.23386735e-02 6.76979776e-03\n", - " -7.68234730e-02 -2.09685154e-02 -3.49601507e-02 6.08146004e-02\n", - " 3.19078751e-02 4.21314128e-02 -6.21713512e-03 6.79429853e-03\n", - " -3.78473476e-02 -5.57735190e-03 9.47882328e-03 -2.08929405e-02\n", - " -9.44338739e-02 3.00149918e-02 1.04414895e-02 -6.25145137e-02\n", - " -6.49299938e-03 -8.95774644e-03 -2.35389285e-02 2.03051586e-02\n", - " -2.42126938e-02 1.71387196e-02 -8.26481730e-02 2.60978341e-02\n", - " -8.25120658e-02 3.76807638e-02 4.95575042e-03 -1.82816747e-03]\n", - "\n", - "Dimensões do embedding: 512\n", - "\n" - ] - } - ], - "source": [ - "#Verifica saida do SBERT\n", - "#for sentence,embedding in zip(docs[:iteracoes],embeddings[:iteracoes]):\n", - " #print(\"Sentence:\", sentence)\n", - " #print(\"Embedding:\", embedding)\n", - " #print(\"\\nDimensões do embedding:\", len(embedding))\n", - " #print(\"\")" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "c0279a3d-9f25-494c-9605-95c81d0498fc", - "metadata": {}, - "outputs": [], - "source": [ - "topic_info=topic_model.get_topic_info()" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "80acfb98-b135-449b-ac70-a6cff200a986", - "metadata": {}, - "outputs": [], - "source": [ - "representacao = topic_model.get_document_info(docs)" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "144ace44-8f95-46db-b9fd-312afecaddc8", - "metadata": {}, - "outputs": [], - "source": [ - "print(representacao)\n" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "2e5fd974-11c7-4e07-84ef-bbb5f0c9b2ee", - "metadata": {}, - "outputs": [], - "source": [ - "features = topic_model.vectorizer_model.get_feature_names()" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "9123d62b-9ef0-46b5-bf7b-208c20653a45", - "metadata": {}, - "outputs": [], - "source": [ - "print(features)" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "c2fd6ffd-0ac7-4df4-a88b-9e6e8ffd545c", - "metadata": {}, - "outputs": [], - "source": [ - "fig = topic_model.visualize_term_rank(log_scale=True)\n", - "fig.write_html(\"grafico_topicos.html\")" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "2671f6c3-229e-44e4-9db5-6ab141df592e", - "metadata": {}, - "outputs": [], - "source": [ - "bertopic_unsupervised = pd.DataFrame()" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "c24e346e-5582-4586-a949-5c3f5068265c", - "metadata": {}, - "outputs": [], - "source": [ - "bertopic_unsupervised[\"indice\"]=indice\n", - "bertopic_unsupervised[\"num_tema_cadastrado\"]=num_cadastrado\n", - "bertopic_unsupervised[\"recurso\"]=docs\n", - "bertopic_unsupervised[\"topicos\"]=representacao['Top_n_words']" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "3994b40e-1ca5-4ed2-8898-1ca3ae78e654", - "metadata": {}, - "outputs": [], - "source": [ - "print(bertopic_unsupervised)" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "cced8dee-e148-488a-a955-ae962d99eb8b", - "metadata": {}, - "outputs": [], - "source": [ - "#Salva em arquivo os textos com topicos principais extraidos e numeros de temas reais cadastrados\n", - "file = 'bertopic_nao_supervisionado.csv'\n", - "bertopic_unsupervised.to_csv(file,index=False)" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "01312469-77e0-43d7-96a6-b680a7383338", - "metadata": {}, - "outputs": [], - "source": [ - "def read_text(dataframe, linha, coluna):\n", - " texto = dataframe.at[linha, coluna]\n", - " return texto" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "b36b2566-97ac-4140-9a1f-c07fd4d3d402", - "metadata": {}, - "outputs": [], - "source": [ - "def sort_list(lista):\n", - " return(sorted(lista, key = lambda x: x[1],reverse=True))" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "a1b4e631-a9b4-4004-9f3a-e819fc9373ca", - "metadata": {}, - "outputs": [], - "source": [ - "\n", - "def calc_similarity(topics, temas ,k,tema_real):\n", - " lista_similaridade = []\n", - " lista_tema_real = []\n", - " \n", - " for indice, tupla_num_tema in enumerate(temas):\n", - " query_embedding = sentence_model.encode(topics)\n", - " #print(f\"Tema {indice} : {tupla_num_tema[0]}\")\n", - " tema_cleaned = clean_text(tupla_num_tema[0])\n", - " text_embedding = sentence_model.encode(tema_cleaned)\n", - " tensor_similaridade = util.cos_sim(query_embedding, text_embedding)\n", - " valor_similaridade = tensor_similaridade.item()\n", - " tupla = (tupla_num_tema[1],valor_similaridade)\n", - " lista_similaridade.append(tupla)\n", - "\n", - " sorted_list = sort_list(lista_similaridade)\n", - " for i, linha in enumerate(sorted_list):\n", - " if(linha[0]==tema_real):\n", - " lista_tema_real.append(i+1)#identifica posição do tema real no ranking\n", - " lista_tema_real.append(linha[1]) \n", - " break\n", - " ranking = sorted_list[:k]\n", - " return ranking,lista_tema_real" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "631785f2-41ec-4169-9c0d-fb3364f77a1b", - "metadata": {}, - "outputs": [], - "source": [ - "def create_columns(k):\n", - " #k refere-se ao numero de elementos no ranking\n", - " colunas = []\n", - " colunas.append(\"indice\")\n", - " colunas.append(\"num_tema_cadastrado\")\n", - " for i in range(1, k + 1):\n", - " nome = f\"sugerido_{i}\"\n", - " colunas.append(nome)\n", - " nome = f\"similaridade_{i}\"\n", - " colunas.append(nome)\n", - " colunas.append(\"posicao_tema_real\")\n", - " colunas.append(\"similaridade_tema_real\")\n", - " return colunas\n" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "b4bdfb54-0b68-4fe5-a37e-c623956b7caf", - "metadata": {}, - "outputs": [], - "source": [ - "#Cria dataframe pra armazenar dados sobre textos classificados\n", - "nomes_colunas = create_columns(6)\n", - "resp_classificados = pd.DataFrame(columns=nomes_colunas)\n", - "#Cria arquivo pra armazenar resultados\n", - "#resp_classificados.to_csv('resp_classif_bertopic_unsuperv.csv', index=False)\n", - "resp_classificados.to_csv('resp_classificado_bertopic_cos_0005.csv', index=False)\n" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "25696541-8b19-4424-87e8-d43f348bf1e4", - "metadata": {}, - "outputs": [], - "source": [ - "#passa topicos de cada documento e lista de temas\n", - "for indice, linha in bertopic_unsupervised.iterrows():\n", - " dados = []\n", - " dados.append(indice)\n", - " #numero do tema cadastrado por um analista\n", - " try:\n", - " dados.append(int(linha['num_tema_cadastrado']))\n", - " except Exception as erro:\n", - " print(f\"Erro ao capturar numero de tema cadastrado {indice}\")\n", - " continue\n", - " \n", - " try:\n", - " #retira hifen entre as palavras dos topicos\n", - " topicos = linha['topicos'].replace(\"-\",\"\") \n", - " ranking , lista_tema_real = calc_similarity(topicos, list_temas, 6, linha['num_tema_cadastrado'])\n", - " except Exception as erro:\n", - " print(f\"Erro calculo similaridade indice {indice}\") \n", - " continue\n", - " for i, tupla_num_tema in enumerate(ranking):\n", - " #captura numero do tema sugerido e valor da similaridade\n", - " dados.append(tupla_num_tema[0])\n", - " dados.append(tupla_num_tema[1])\n", - " \n", - " if(lista_tema_real):\n", - " dados.append(lista_tema_real[0])\n", - " dados.append(lista_tema_real[1])\n", - " else:\n", - " dados.append(\"NA\")\n", - " dados.append(\"NA\")\n", - " #with open('resp_classif_bertopic_unsuperv.csv', mode='a', newline='') as arquivo:\n", - " with open('resp_classificado_bertopic_cos_0005.csv', mode='a', newline='') as arquivo:\n", - " writer = csv.writer(arquivo)\n", - " writer.writerow(dados)" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "82d0f2d5-00c4-413e-bd06-81ca7d4fe7d2", - "metadata": {}, - "outputs": [], - "source": [ - "#Salva modelo\n", - "topic_model.save(\"is_notes/my_model_bertopic.pt\", serialization=\"pytorch\", save_ctfidf=True, save_embedding_model=embedding_model)\n" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "55b4486d-ef05-4964-8eda-dcd1926f1840", - "metadata": {}, - "outputs": [], - "source": [] - } - ], - "metadata": { - "kernelspec": { - "display_name": "Python 3 (ipykernel)", - "language": "python", - "name": "python3" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.10.5" - } - }, - "nbformat": 4, - "nbformat_minor": 5 -} diff --git a/notebooks/similaridadeTextoCompleto.ipynb b/notebooks/similaridadeTextoCompleto.ipynb deleted file mode 100644 index 0463251..0000000 --- a/notebooks/similaridadeTextoCompleto.ipynb +++ /dev/null @@ -1,894 +0,0 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "source": [ - "## **Instalação do pacote transformers**" - ], - "metadata": { - "id": "ho2P0r4xD0MC" - } - }, - { - "cell_type": "code", - "source": [ - "!pip install transformers" - ], - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/" - }, - "id": "ZNhzR-BUDyqC", - "outputId": "643568bd-88bf-40bc-858e-2612f1483c32" - }, - "execution_count": null, - "outputs": [ - { - "output_type": "stream", - "name": "stdout", - "text": [ - "Requirement already satisfied: transformers in /usr/local/lib/python3.10/dist-packages (4.33.1)\n", - "Requirement already satisfied: filelock in /usr/local/lib/python3.10/dist-packages (from transformers) (3.12.2)\n", - "Requirement already satisfied: huggingface-hub<1.0,>=0.15.1 in /usr/local/lib/python3.10/dist-packages (from transformers) (0.17.1)\n", - "Requirement already satisfied: numpy>=1.17 in /usr/local/lib/python3.10/dist-packages (from transformers) (1.23.5)\n", - "Requirement already satisfied: packaging>=20.0 in /usr/local/lib/python3.10/dist-packages (from transformers) (23.1)\n", - "Requirement already satisfied: pyyaml>=5.1 in /usr/local/lib/python3.10/dist-packages (from transformers) (6.0.1)\n", - "Requirement already satisfied: regex!=2019.12.17 in /usr/local/lib/python3.10/dist-packages (from transformers) (2023.6.3)\n", - "Requirement already satisfied: requests in /usr/local/lib/python3.10/dist-packages (from transformers) (2.31.0)\n", - "Requirement already satisfied: tokenizers!=0.11.3,<0.14,>=0.11.1 in /usr/local/lib/python3.10/dist-packages (from transformers) (0.13.3)\n", - "Requirement already satisfied: safetensors>=0.3.1 in /usr/local/lib/python3.10/dist-packages (from transformers) (0.3.3)\n", - "Requirement already satisfied: tqdm>=4.27 in /usr/local/lib/python3.10/dist-packages (from transformers) (4.66.1)\n", - "Requirement already satisfied: fsspec in /usr/local/lib/python3.10/dist-packages (from huggingface-hub<1.0,>=0.15.1->transformers) (2023.6.0)\n", - "Requirement already satisfied: typing-extensions>=3.7.4.3 in /usr/local/lib/python3.10/dist-packages (from huggingface-hub<1.0,>=0.15.1->transformers) (4.5.0)\n", - "Requirement already satisfied: charset-normalizer<4,>=2 in /usr/local/lib/python3.10/dist-packages (from requests->transformers) (3.2.0)\n", - "Requirement already satisfied: idna<4,>=2.5 in /usr/local/lib/python3.10/dist-packages (from requests->transformers) (3.4)\n", - "Requirement already satisfied: urllib3<3,>=1.21.1 in /usr/local/lib/python3.10/dist-packages (from requests->transformers) (2.0.4)\n", - "Requirement already satisfied: certifi>=2017.4.17 in /usr/local/lib/python3.10/dist-packages (from requests->transformers) (2023.7.22)\n" - ] - } - ] - }, - { - "cell_type": "markdown", - "source": [ - "## **Importação de bibliotecas**" - ], - "metadata": { - "id": "0pyOWc9oD86-" - } - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "CxCBk9LgPmyC" - }, - "outputs": [], - "source": [ - "import pandas as pd\n", - "import torch\n", - "import torch.nn as nn\n", - "import re\n", - "from transformers import pipeline\n", - "import torch\n", - "from transformers import AutoTokenizer\n", - "from transformers import AutoModel # or BertModel, for BERT without pretraining heads" - ] - }, - { - "cell_type": "markdown", - "source": [ - "## **Carregamento do modelo BERTimbau**" - ], - "metadata": { - "id": "Gyr8SIATIkvp" - } - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "MQqCD8jBfJGv" - }, - "outputs": [], - "source": [ - "tokenizer = AutoTokenizer.from_pretrained('neuralmind/bert-large-portuguese-cased', do_lower_case=False)\n", - "model = AutoModel.from_pretrained('neuralmind/bert-large-portuguese-cased')" - ] - }, - { - "cell_type": "markdown", - "source": [ - "## **Carregamento dos conjuntos de dados**" - ], - "metadata": { - "id": "fGTt4fuDEMKU" - } - }, - { - "cell_type": "code", - "source": [ - "resp = pd.read_csv('/content/drive/MyDrive/amostra_recurso.csv')\n", - "temas_repetitivos = pd.read_csv('/content/drive/MyDrive/temas.csv', sep=';',encoding='ISO-8859-1' )\n", - "dicionario_temas = pd.read_csv('/content/drive/MyDrive/dicionario-temas.csv', sep=';')" - ], - "metadata": { - "id": "OdqSBkY8EV68" - }, - "execution_count": null, - "outputs": [] - }, - { - "cell_type": "markdown", - "source": [ - "## **Criação de data frame de temas contendo apenas numeração e texto**" - ], - "metadata": { - "id": "14RcsiipIGLT" - } - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/", - "height": 206 - }, - "id": "o-0nKxYeCd7E", - "outputId": "70e8e8d0-8315-4bc6-a34e-b30721ab8f00" - }, - "outputs": [ - { - "output_type": "execute_result", - "data": { - "text/plain": [ - " numTema texto\n", - "0 1 Validade da cláusula contratual de plano de sa...\n", - "1 2 Definir se a Lei n. 13.000/2014, que assegurou...\n", - "2 3 Discute-se o termo inicial do prazo prescricio...\n", - "3 4 Aplicação do inciso II do art. 115 da Lei 8.21...\n", - "4 5 Aplicabilidade da Súmula 345 do STJ diante da ..." - ], - "text/html": [ - "\n", - "
\n", - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
numTematexto
01Validade da cláusula contratual de plano de sa...
12Definir se a Lei n. 13.000/2014, que assegurou...
23Discute-se o termo inicial do prazo prescricio...
34Aplicação do inciso II do art. 115 da Lei 8.21...
45Aplicabilidade da Súmula 345 do STJ diante da ...
\n", - "
\n", - "
\n", - "\n", - "
\n", - " \n", - "\n", - " \n", - "\n", - " \n", - "
\n", - "\n", - "\n", - "
\n", - " \n", - "\n", - "\n", - "\n", - " \n", - "
\n", - "
\n", - "
\n" - ] - }, - "metadata": {}, - "execution_count": 47 - } - ], - "source": [ - "temas = temas_repetitivos[['numeroPrecedente','questaoSubmetidaAJulgamento']].copy()\n", - "temas.columns = ['numTema','texto']\n", - "temas.head()" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "rCCuhI71hjj9" - }, - "source": [ - "#**Cria embedding a partir de texto**\n", - "\n", - "---\n", - "Os modelos do projeto transformers geram embeddings de tamanho fixo para cada palavra do texto ( além de embeddings para tokens especiais). Então os embeddings foram agrupados pelo cálculo de média pra gerar um único embedding que represente todo o texto.\n", - "\n", - "\n" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "o_0RPiHjfJDO" - }, - "outputs": [], - "source": [ - "def create_embedding(text):\n", - " input_ids = tokenizer.encode(text, return_tensors='pt')\n", - "\n", - " with torch.no_grad():\n", - " outs = model(input_ids)\n", - " encoded = outs[0][0, 1:-1]\n", - " #cálculo da média\n", - " mean_embedding = torch.mean(encoded, dim=0)\n", - " return mean_embedding\n", - "\n" - ] - }, - { - "cell_type": "markdown", - "source": [ - "##**Gera embeddings de todos os temas**\n", - "Salva em arquivo" - ], - "metadata": { - "id": "S_vOZej0oYB3" - } - }, - { - "cell_type": "code", - "source": [ - "lista_embeddings_temas = []\n", - "for indice, linha in temas.iterrows():\n", - " try:\n", - " embedding_tema = create_embedding(linha['texto'])\n", - " tupla_numTema_embedding = (linha['numTema'],embedding_tema)\n", - " lista_embeddings_temas.append(tupla_numTema_embedding)\n", - " except Exception as erro:\n", - " print(f\"Erro no indice {indice} : {erro}\")\n", - "torch.save(lista_embeddings_temas, 'embeddings_temas.pt')\n" - ], - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/" - }, - "outputId": "0f7b4338-14be-406a-faea-be308d5be3f5", - "id": "gBTQmAIfFFH5" - }, - "execution_count": 48, - "outputs": [ - { - "metadata": { - "tags": null - }, - "name": "stdout", - "output_type": "stream", - "text": [ - "Erro no indice 101 : The expanded size of the tensor (932) must match the existing size (512) at non-singleton dimension 1. Target sizes: [1, 932]. Tensor sizes: [1, 512]\n" - ] - } - ] - }, - { - "cell_type": "markdown", - "source": [ - "## **Carregamento do arquivo que contem os embeddings dos temas**\n", - "Para acelerar a execução da avaliação de similaridade, foi gerado um arquivo que contém a numeração e o word embedding de cada tema" - ], - "metadata": { - "id": "beNwjXs6FK2C" - } - }, - { - "cell_type": "code", - "source": [ - "embeddings_temas = torch.load('/content/drive/MyDrive/embeddings_temas.pt')" - ], - "metadata": { - "id": "oVt4cKxeDhvW" - }, - "execution_count": 49, - "outputs": [] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "H7vrf0c5jErQ" - }, - "source": [ - "#**Lê recurso**" - ] - }, - { - "cell_type": "code", - "execution_count": 50, - "metadata": { - "id": "ObW2-gx-B1Nz" - }, - "outputs": [], - "source": [ - "def read_text(dataframe, linha, coluna):\n", - " texto = dataframe.at[linha, coluna]\n", - " return texto" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "CYYkEQxHZuUO" - }, - "source": [ - "#**Identifica fim do paragrafo**\n", - "\n", - "A implementar" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "8xN5CpQ3bYEG" - }, - "source": [ - "#**Extrai fragmentos do texto**\n", - "Necessário devido à limitação de tamanho imposta pelo modelo" - ] - }, - { - "cell_type": "code", - "execution_count": 51, - "metadata": { - "id": "ZINBpCKxbdBK" - }, - "outputs": [], - "source": [ - "def extract_fragments(text, max_words_per_fragment):\n", - " words = text.split() # Divide o texto em palavras\n", - " fragments = []\n", - " current_fragment = []\n", - "\n", - " for word in words:\n", - " if len(current_fragment) + len(word.split()) <= max_words_per_fragment:\n", - " current_fragment.append(word)\n", - " else:\n", - " fragments.append(\" \".join(current_fragment))\n", - " current_fragment = [word]\n", - "\n", - " # Adiciona o último fragmento, se houver\n", - " if current_fragment:\n", - " fragments.append(\" \".join(current_fragment))\n", - "\n", - " return fragments\n" - ] - }, - { - "cell_type": "markdown", - "source": [ - "## **Ordena lista de tuplas**\n", - "Ordena pelo segundo elemento em ordem descendente" - ], - "metadata": { - "id": "4XS-f3WTsu9I" - } - }, - { - "cell_type": "code", - "source": [ - "def sort_list(lista):\n", - "\treturn(sorted(lista, key = lambda x: x[1],reverse=True))\n" - ], - "metadata": { - "id": "ASnPpCLksqVx" - }, - "execution_count": 52, - "outputs": [] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "VBxtPSQ1luzy" - }, - "source": [ - "## **Início do processamento**" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/" - }, - "id": "Ga_Iycxcltjv", - "outputId": "d51e77ed-7da7-4e87-eae6-f3fe405bcdb9" - }, - "outputs": [ - { - "output_type": "stream", - "name": "stdout", - "text": [ - "Fragmento 1: ADVOCACIA-GERAL DA UNIÃO PROCURADORIA-GERAL FEDERAL PROCURADORIA REGIONAL FEDERAL 2a REGIÃO NPREV - SUBNÚCLEO FINALÍSTICO ATUAÇÃO TÉCNICA ESPECIALIZADA PREVIDENCIÁRIA TRIBUNAIS - EATE/TRF2/PREV AV. NILO PEÇANHA, 151 - CENTRO, RIO DE JANEIRO/RJ, CEP 20020-100 EXCELENTÍSSIMO(A) SENHOR(A) DESEMBARGADOR(A) DO(A) GABINETE 03 NÚMERO: 0216608-09.2017.4.02.5107 RECORRENTE(S): INSTITUTO NACIONAL DO SEGURO SOCIAL - INSS RECORRIDO(S): GESSE JAMES ELOY SANTOS INSTITUTO NACIONAL DO SEGURO SOCIAL - INSS, pessoa jurídica de direito público, representado(a) pelo membro da Advocacia-Geral da União infra assinado(a), vem, respeitosamente, à presença de Vossa Excelência, interpor, com fulcro no art. 105, inciso III, alínea 'a' da Constituição Federal da República Federativa do Brasil, vem interpor RECURSO ESPECIAL pelas razões que seguem, em anexo, requerendo o seu recebimento, processamento e remessa ao Colendo Superior Tribunal de Justiça, na forma da lei. RAZÓES DO RECURSO ESPECIAL DA TEMPESTIVIDADE O presente recurso é tempestivo, pois que protocolado dentro do prazo de 30 dias úteis (art. 1.003, -5 c/c arts. 183 e 219 do CPC), a contar da intimação pessoal, nos termos do art. 17 da Lei 10.910/2004.\n", - "Fragmento 2: DO CABIMENTO DO RECURSO O art. 1.029 do CPC, em seu inciso II, determina que o Recorrente deve demonstrar o cabimento do Recurso Especial, in verbis: 'Art. 1.029. O recurso extraordinário e o recurso especial, nos casos previstos na Constituição Federal, serão interpostos perante o presidente ou o vice-presidente do tribunal recorrido, em petições distintas que conterão: I - a exposição do fato e do direito; II - a demonstração do cabimento do recurso interposto; III - as razões do pedido de reforma ou de invalidação da decisão recorrida. - 1o Quando o recurso fundar-se em dissídio jurisprudencial, o recorrente fará a prova da divergência com a certidão, cópia ou citação do repositório de jurisprudência, oficial ou credenciado, inclusive em mídia eletrônica, em que houver sido publicado o acórdão divergente, ou ainda com a reprodução de julgado disponível na rede mundial de computadores, com indicação da respectiva fonte, devendo-se, em qualquer caso, mencionar as circunstâncias que identifiquem ou assemelhem os casos confrontados. - 2 (Revogado). (Redação dada pela Lei n\n", - "Fragmento 3: 13.256, de 2016) (Vigência) - 3o O Supremo Tribunal Federal ou o Superior Tribunal de Justiça poderá desconsiderar vício formal de recurso tempestivo ou determinar sua correção, desde que não o repute grave.' (grifo nosso) Com efeito, trata-se de decisão proferida em última instância pelo colegiado do Tribunal Regional Federal da 2a Região, da qual não cabe nenhum outro recurso para a instância ordinária. Logo, houve esgotamento das vias ordinárias. Ademais, o acórdão recorrido, ao deixar de se manifestar expressamente acerca da matéria suscitada pelo Recorrente, em sede de Embargos de Declaração, viola a lei federal, tendo sido a matéria prequestionada, como se expõe a seguir. Portanto, restou demonstrado o cabimento do presente recurso com base no art. 105, III, 'a' da Constituição da República. DA SUSPENSÃO DO PROCESSO - TEMA 1.083 - FATO SUPERVENIENTE A matéria objeto do presente feito foi afetada no Tema 1.083 do STJ, que submeteu a seguinte questão a julgamento: \"Possibilidade de reconhecimento do exercício de atividade sob condições especiais pela exposição ao agente ruído,\n", - "Fragmento 4: quando constatados diferentes níveis de efeitos sonoros, considerando-se apenas o nível máximo aferido (critério \"pico de ruído\"), a média aritmética simples ou o Nível de Exposição Normalizado (NEN).\" Confira-se (http://www.stj.jus.br/repetitivos/temas_repetitivos/pesquisa.jsp): Ainda, \"Há determinação de suspensão do processamento de todos os processos pendentes, individuais ou coletivos, que versem acerca da questão delimitada e tramitem no território nacional (acórdão publicado no DJe de 22/3/2021).\": PROCESSUAL CIVIL E PREVIDENCIÁRIO. APOSENTADORIA ESPECIAL.AGENTE NOCIVO RUÍDO. DIFERENTES NÍVEIS DE EFEITOS SONOROS.CRITÉRIOS DE AFERIÇÃO. RECURSO ESPECIAL REPETITIVO.REQUISITOS. PRESENÇA. AFETAÇÃO. 1. A questão submetida ao Superior Tribunal de Justiça diz respeito aos critérios de aferição do agente nocivo ruído para fins de aposentadoria especial, sendo que o apelo excepcional interposto é admissível e contém abrangente argumentação e discussão sobre o tema, há multiplicidade de recursos sobre o mesmo assunto e foram atendidos os requisitos para a afetação. 2. Controvérsia objeto de Nota Técnica n.26/2020, aprovada pelo Grupo Decisório do Centro Nacional de Inteligência do Conselho da Justiça Federal, na qual foi constatada: (i) a ausência de uniformidade de\n", - "Fragmento 5: entendimento no Poder Judiciário sobre a forma de aferição do ruído, quando existente variação de níveis sonoros, e (ii) a existência de alto índice de litigiosidade das aposentadorias especiais (80%). 3. Tese controvertida: possibilidade de reconhecimento do exercício de atividade sob condições especiais pela exposição ao agente ruído, quando constatados diferentes níveis de efeitos sonoros, considerando-se apenas o nível máximo aferido (critério \"pico de ruído\"), a média aritmética simples ou o Nível de Exposição Normalizado (NEN). 4. Afetação do recurso especial como representativo de controvérsia repetitiva para julgamento pela Primeira Seção do Superior Tribunal de Justiça. Requer-se, portanto, a suspensão deste processo, em obediência à decisão acima e nos termos do artigo 1.037, II, do CPC/2015. DA VIOLAÇÃO AOS ARTIGOS 57 E 58 DA LEI 8213/91- RUÍDO sem NEN Reconheceu-se, com base no agente RUÍDO, a suposta especialidade dos períodos de trabalho de 22/11/1995 a 04/10/2004 e de 05/04/2006 a 05/11/2007, MESMO SEM TÉCNICA CORRETA PARA MEDIÇÃO DE RUÍDO. Quanto ao particular, todavia, o r. decisum recorrido deve ser reformado\n", - "Fragmento 6: em relação a alguns aspectos relevantes. Dentre eles, os principais foram: a) o porquê de se afastar a necessidade de observância aos requisitos técnico-normativos fixados na legislação e na normativa específica para tal fim estipulada pelos órgãos competentes (MTE, INSS...), sendo que há discricionariedade técnica ao Poder Executivo quanto ao particular, como se sabe; e b) omissão em relação a ponto relevante trazido à apelação e nos embargos de declaração do INSS, atinente à obrigatoriedade do uso do NEN (NÍVEL DE EXPOSIÇÃO NORMALIZADA) a partir de 19/11/2003, exigência técnico-normativa que foi inobservada o PPP em comento. Pede-se, pois, o expresso e específico pronunciamento dessa Colenda Turma quanto a tais questões e a outros pontos abaixo indicados: A) AFERIÇÃO DE CONDIÇÕES ESPECIAIS DE TRABALHO - CRITÉRIOS TÉCNICOS - NÃO OBSERVÂNCIA - SUBSTITUIÇÃO DE FORMA DE AVALIAÇÃO DE EXPOSIÇÃO A AGENTES NOCIVOS - IMPOSSIBILIDADE - DISCRICIONARIEDADE TÉCNICA - CAPACIDADE INSTITUCIONAL DO PODER EXECUTIVO X PODER JUDICIÁRIO. A decisão ora embargada não se pronunciou especificamente sobre o porquê de se afastar, contra legem,\n", - "Fragmento 7: a necessidade de comprovar a efetiva permanência do trabalho sob influência de agentes agressivos, conforme a regra dos art. 57 e 58 da lei n 8213/91, e com observância aos procedimentos e critérios de aferição exigidos para tal mister pelas normas técnicas, conforme será demonstrado a seguir. O v. decisum não se manifestou especificamente sobre o fato de se tratarem de medidas únicas de RUÍDO nos formulários apontados, tampouco em relação ao fato de que podem perfeitamente ser medidas referentes à pressão máxima (pico) de ruído (o que, sabidamente, não se presta para o fim de reconhecimento de labor especial) e que, conforme o item 6 do Anexo 1 da NR 15, da Lei 6.514/77 e Portaria 3.214/78/MTPS, devem ser considerados os efeitos combinados se ocorrerem dois ou mais períodos de exposição a ruído de diferentes níveis na jornada de trabalho (e, não, da forma indicada no PPP, através de medição única). Também não se pronunciou sobre o porquê de se afastar a exigência técnico-normativa de uso/indicação do NEN (NÍVEL\n", - "Fragmento 8: DE EXPOSIÇÃO NORMALIZADA) a partir de 01/01/2004, quando passou a ser obrigatório. A decisão ora recorrida, pois, não se pronunciou especificamente sobre o porquê de se afastar, contra legem, a necessidade de comprovar a efetiva permanência do trabalho sob influência de agentes agressivos, conforme a regra dos art. 57 e 58 da lei n 8213/91, e com observância aos procedimentos e critérios de aferição exigidos para tal mister pelas normas técnicas, conforme será demonstrado a seguir. A lei 8.213/91 ao tratar da concessão de aposentadoria especial e da respectiva conversão em comum de tempo de contribuição laborado sob condições especiais assim dispôs: Art. 57. A aposentadoria especial será devida, uma vez cumprida a carência exigida nesta Lei, ao segurado que tiver trabalhado sujeito a condições especiais que prejudiquem a saúde ou a integridade física, durante 15 (quinze), 20 (vinte) ou 25 (vinte e cinco) anos, conforme dispuser a lei. (Redação dada pela Lei n 9.032, de 1995) - 3 A concessão da aposentadoria especial dependerá de comprovação pelo segurado, perante\n", - "Fragmento 9: o Instituto Nacional do Seguro SocialINSS, do tempo de trabalho permanente, não ocasional nem intermitente, em condições especiais que prejudiquem a saúde ou a integridade física, durante o período mínimo fixado. (Redação dada pela Lei n 9.032, de 1995) - 4 O segurado deverá comprovar, além do tempo de trabalho, exposição aos agentes nocivos químicos, físicos, biológicos ou associação de agentes prejudiciais à saúde ou à integridade física, pelo período equivalente ao exigido para a concessão do benefício. (Redação dada pela Lei n 9.032, de 1995) - 5 O tempo de trabalho exercido sob condições especiais que sejam ou venham a ser consideradas prejudiciais à saúde ou à integridade física será somado, após a respectiva conversão ao tempo de trabalho exercido em atividade comum, segundo critérios estabelecidos pelo Ministério da Previdência e Assistência Social, para efeito de concessão de qualquer benefício. Vê-se, portanto, que a contagem como especial de tempo de contribuição exige a comprovação de exposição permanente, não ocasional nem intermitente, a agentes nocivos químicos, físicos, biológicos ou associação\n", - "Fragmento 10: de agentes prejudiciais à saúde ou à integridade física. Note-se que a Lei 8213/91 não estabelece uma relação de agentes nocivos, delegando esta função expressamente ao Poder Executivo, como se observa em seu artigo 58, que dispõe: Art. 58. A relação dos agentes nocivos químicos, físicos e biológicos ou associação de agentes prejudiciais à saúde ou à integridade física considerados para fins de concessão da aposentadoria especial de que trata o artigo anterior será definida pelo Poder Executivo. Resta evidente, portanto, que a Lei 8213/91 incumbiu ao Poder Executivo estabelecer os critérios técnicos para aferição das condições especiais do ambiente de trabalho que dariam ensejo a contagem especial do tempo de contribuição. Fê-lo certamente em deferência à capacidade institucional do Poder Executivo para avaliação destas condições, tendo em vista a existência em seu seio de corpo técnico especializado em sua aferição, com capacidade de analisar de forma sistêmica o impacto da escolha de cada técnica, avaliando seu impacto no conjunto dos trabalhadores vinculados ao sistema de previdência social. Portanto, a\n", - "Fragmento 11: Lei 8213/91 concedeu ao Poder Executivo uma discricionariedade técnica para eleger o critério de aferição das condições especiais do ambiente de trabalho que dão ensejo a contagem do tempo de contribuição como especial. A respeito da discricionariedade técnica, Almiro do Couto e Silva em lição clássica afirma: A discussão de poder discricionário e conceitos jurídicos indeterminados têm em comum, ou não, o estabelecimento de uma área de livre apreciação, dentro dos limites legais, na realização da ação administrativa, é hoje mais do que centenária. Remonta ao confronto, estabelecido no direito austríaco, entre as posições de Bernazik e Tezner. O primeiro sustentava a existência de uma discricionariedade técnica, pretendendo com isso referir-se à extrema complexidade com que freqüentemente se apresentam os problemas administrativos. Estes suscitarão várias opiniões ou propostas de solução, a respeito das quais, porém - muito embora no plano estritamente lógico só possa existir uma única correta -, será freqüentemente difícil ou mesmo impossível afirmar qual a mais acertada. Essa deficiência cognitiva é que estaria a impedir que o\n", - "Fragmento 12: Poder Judiciário, nesses casos, exerça controle, substituindo o juízo da administração pelo seu. (...) Bem por isso é que na doutrina e na jurisprudência tem sido sustentado que, em tais casos, pode haver um controle jurisdicional limitado da aplicação pela Administração Pública de conceitos jurídicos indeterminados. Reconhece-se, desse modo, em favor dos órgãos administrativos do Estado, a existência de uma \"área de apreciação\" (Beurteilungsspielraum) , como quer Bachof, ou a impossibilidade de o Judiciário substituir a decisão tomada pela Administração Pública ao eleger uma das várias soluções \"sustentáveis\" (Vertretbaren) ou razoáveis, como pretende Ule, pois em todas essas situações teria a Administração Pública o que Hans Julius Wolf chama de \"prerrogativas de avaliação\" (Einschiitzungspriirogative). Nesses casos altamente duvidosos, como a Administração Pública está mais perto dos problemas e, de regra, está mais bem aparelhada para resolvê-los, parece que só a ela deve caber a decisão final, não indo, pois, excepcionalmente, o controle judicial ao ponto de modificar ou de substituir a decisão administrativa. Observa-se, portanto, que a Administração possui uma\n", - "Fragmento 13: discricionariedade para avaliar os critérios técnicos que serão utilizados para aferir as condições especiais do ambiente de trabalho, pois é detentora de uma capacidade institucional que lhe habilita a decidir qual técnica deve ser empregada neste mister. O Ministro Luís Roberto Barroso assim resume o debate sobre capacidades institucionais, defendendo que o Judiciário deve abster-se de imiscuir-se em critérios técnicos eleitos pelo do Poder Executivo: Capacidade institucional envolve a determinação de qual Poder está mais habilitado a produzir a melhor decisão em determinada matéria. Temas envolvendo aspectos técnicos ou científicos de grande complexidade podem não ter no juiz de direito o árbitro mais qualificado, por falta de informação ou conhecimento específico. Formalmente, os membros do Poder Judiciário sempre conservarão a sua competência para o pronunciamento definitivo. Mas em situações como as descritas, normalmente deverão eles prestigiar as manifestações do Legislativo ou do Executivo, cedendo o passo para juízos discricionários dotados de razoabilidade. Não só a doutrina, mas também a jurisprudência pátria asseguram uma margem de avaliação discricionária da administração a\n", - "Fragmento 14: respeito de critérios técnicos, como se observa nas seguintes ementas: MS 20729 / DF MANDADO DE SEGURANÇA 2014/0000461-0 Relator(a) Ministro OG FERNANDES (1139) Órgão Julgador S1 - PRIMEIRA SEÇÃO Data do Julgamento 24/06/2015 Data da Publicação/Fonte DJe 01/07/2015 ADMINISTRATIVO. MANDADO DE SEGURANÇA. SELEÇÃO PÚBLICA DE PROJETO CULTURAL. INABILITAÇÃO DA CANDIDATA POR MOTIVO DIVERSO DO ALEGADO NA INICIAL. AUSÊNCIA DE DIREITO LÍQUIDO E CERTO. 1. Mandado de segurança impetrado contra ato do Secretário de Fomento e Incentivo à Cultura do Ministério da Cultura e da Ministra de Estado da Cultura, que indeferiu a inscrição da impetrante na seleção pública para apoio a projetos culturais da região norte - \"Programa Amazônia Cultural\", sob a alegação de ausência de assinatura de próprio punho na ficha de inscrição. 2. Em verdade, o ato de indeferimento deu-se por motivo diverso do alegado. 3. Conforme consta do Edital, a candidata deveria apresentar, no mínimo, 2 (dois) anos de atividades culturais comprovadas em território nacional. 4. Fica evidente que a análise da comprovação da realização de atuação\n", - "Fragmento 15: profissional em atividades culturais deságua no âmbito da discricionariedade técnica da autoridade administrativa. Precedentes. E o Edital, buscando preservar a isonomia e impessoalidade, previu, nos itens 10 a 10.2, que os requisitos de habilitação seriam avaliados por peritos previamente credenciados no Ministério da Cultura para análise de projetos. 5. Segurança denegada. AgRg na SLS 163 / PE AGRAVO REGIMENTAL NA SUSPENSÃO DE LIMINAR E DE SENTENÇA 2005/0128970-7 Relator(a) Ministro EDSON VIDIGAL (1074) Órgão Julgador CE - CORTE ESPECIAL Data do Julgamento 19/12/2005 Data da Publicação/Fonte DJ 27/03/2006 p. 133 SUSPENSÃO DE LIMINAR E SENTENÇA. AGRAVO INTERNO. REAJUSTE DE CONTRATOS DE PLANOS DE SAÚDE FIRMADOS ANTERIORMENTE À LEI N 9.656/98. FUNÇÃO INSTITUCIONAL DA AGÊNCIA NACIONAL DE SAÚDE ANS. 1. Considerados o alto interesse público envolvido, os efeitos prospectivos da medida, os riscos e resultados que conclusões açodadas possam ocasionar - desarmonia e desequilíbrio para o setor da saúde suplementar -, deve ser deferido o pedido para suspender a decisão que concedeu o efeito modificativo ativo ao Agravo de Instrumento. 2. Lesão\n", - "Fragmento 16: à saúde e à ordem pública administrativa caracterizada, com a interferência na legítima atividade regulatória desempenhada pela ANS, respaldada em discricionariedade técnica . 3. Agravo Interno não provido. Resta claro, portanto, que os critérios de avaliação das condições especiais do ambiente de trabalho eleitos pelas normativas do INSS não podem ser substituídos por outros critérios, sendo inválidos os formulários PPP, SB -40 etc. emitidos sem observância destas normativas, uma vez que o artigo 58 da Lei 8213/91 expressamente delegou ao Poder Executivo o estabelecimento destes critérios técnicos. A mera indicação de um nível de ruído, por parte do PPP, não evidencia a condição indispensável de permanência para a obtenção da aposentadoria requerida pela parte autora. O nível de ruído explicitado não possui fundamentação, não indica ser resultado de procedimento capaz de aferir a sua incidência durante toda a jornada de trabalho do Autor, não obtendo, dessa forma, êxito na comprovação de tal condição primordial. Entende-se que, para o cálculo de um índice de ruído que represente sua incidência durante toda\n", - "Fragmento 17: a jornada, seria necessária a efetuação de diversas medições durante sua duração com o intuito de se apurar a continuidade da ocorrência da suposta condição insalubre. Nas hipóteses de agente agressivo ruído, como no caso em tela, é obrigatório, segundo a legislação, que se informe se tal medição é média, máxima ou mínima e indicar-se se o ruído é contínuo e intermitente informação também inexistente no laudo. Também se exige, no caso de ruídos acima de 80 dB (A), que seja anexado histograma ou memória dos cálculos referentes à atividade exercida pelo requerente. A medida pontual de ruído não informa o circuito de compensação (A), (B) ou (C) e o circuito de resposta (slow ou fast). É importante (obrigatório) mencionar o circuito de compensação utilizado, pois indica o tipo de ruído avaliado. Há tipos de ruídos diferentes (contínuo/intermitente e impacto) e logo com limites de tolerância distintos (limite para ruído de impacto é de 120 dB (C). A falta do registro dos níveis de ruído instantâneos e do tempo de\n", - "Fragmento 18: exposição a cada um deles (efeitos combinados - Cn/Tn) não permite comprovar exposição permanente a níveis de ruído acima do limite de tolerância. Uma exposição eventual de poucos minutos a nível elevado pode, na integração dos diversos níveis instantâneos de ruído ocorridos no período de uma jornada, resultar em dose acima do valor unitário, porém não caracteriza o trabalho permanente em condições especiais. Tal como nos revela a jurisprudência pátria, 'para fins de enquadramento da atividade especial pela exposição a agente nocivo ruído com níveis de ruído variados durante a jornada de trabalho do segurado, a técnica ideal a ser considerada é a média ponderada(...).' Resta afastada a técnica de 'picos de ruído', onde se considera apenas o nível de ruído máximo, desconsiderando-se os valores mínimos'. De qualquer modo, principalmente para o período integralmente posterior a 18/11/2003 - a partir de quando se passou a exigir a técnica/metodologia da FUNDACENTRO, com nível de intensidade em NEN - utilizou-se metodologia de aferição inadequada, ultrapassada e não mais cabível nos termos da\n", - "Fragmento 19: legislação aplicável à hipótese. A partir de 19 de novembro de 2003, data da publicação do Decreto n 4.882, de 18 de novembro de 2003, é efetuado o enquadramento quando o Nível de Exposição Normalizado - NEN se situar acima de 85 dB(A) ou for ultrapassada a dose unitária, aplicando-se os limites de tolerância definidos no Quadro Anexo I da NR-15 do MTE e as metodologias e os procedimentos definidos nas NHO-01 da FUNDACENTRO. A partir de 19.11.2003, quando o Decreto n 4.882/2003 modificou o artigo 68, - 11, do Decreto n 3.048/1999, passou a ser obrigatório observar a metodologia e os procedimentos de avaliação estabelecidos pela Fundação Jorge Duprat Figueiredo de Segurança e Medicina do Trabalho FUNDACENTRO, as Normas de Higiene Ocupacional (NHO). Dosimetria/Decibelímetro X NEN: Inobservância à Metodologia Fixada em Legislação para Comprovar Habitualidade e Permanência No RECURSO ESPECIAL N 1.151.363 - MG (2009/0145685-8), representativo da controvérsia, o STJ definiu que '1. A teor do - 1 do art. 70 do Decreto n. 3.048/99, a legislação em vigor\n", - "Fragmento 20: na ocasião da prestação do serviço regula a caracterização e a comprovação do tempo de atividade sob condições especiais\". O Decreto n 4.882/2003 modificou o Decreto n 3.028, e impôs como requisito da especialidade do ruído 'a exposição a Níveis de Exposição Normalizados (NEN) superiores a 85 dB(A)'. Se somente aceitamos como especiais a exposição a ruído superior a 85 dB (A), não há por que não exigirmos também a observância ao NEN, ali também previsto. Vejamos, a título de ilustração: INTEIRO TEOR [...] I - RELATÓRIO. Trata-se de recurso, interposto pelo réu, contra sentença que reconheceu tempos laborados sobre condições especiais. II - VOTO. No presente, caso, em face dos PPP emitidos pelo empregador, Prefeitura Municipal, constata-se que o recorrido trabalhou como gari e como operador de máquinas. Nesta última atividade, não se fez constar a exposição ao agente agressivo ruído. Foi juntado laudo técnico, elaborado por engenheiro contratado pelo próprio autor, constando, dentre outros agentes agressivos, a exposição a conjuntivite bacteriana. No que tange ao agente agressivo ruído,\n", - "Fragmento 21: consta a seguinte conclusão: Conjugando tais informações, ainda que não específicas, com a descrição das atividades constantes do PPP, a sentença reconheceu o tempo como especial a atividade de operador de máquinas, reconsiderando decisão anterior, que determinava a elaboração de perícia judicial. Ainda que o laudo utilizado indique a exposição ao agente insalubre acima do limite legal, este apenas menciona, de forma genérica, os níveis de ruído encontrados em outras perícias para tratores do mesmo tipo e modelo com que trabalhava o autor. Não se especifica, no entanto, a metodologia e equipamentos utilizados nas medições, e, principalmente, se os níveis de ruído encontrados foram mensurados nas proximidades do motor do trator ou na cabine, onde se encontra o seu operador. Não se esclarece, também, se os níveis de ruído foram medidos no regime normal de operação do trator. Tais esclarecimentos se mostram essenciais para o deslinda da controvérsia. Em face do exposto, nos termos de precedentes desta Turma, voto pela conversão do julgamento em diligências, a fim de que seja\n", - "Fragmento 22: elaborada perícia técnica, na origem, para o esclarecimento dos pontos controvertidos. III EMENTA PREVIDENCIÁRIO. ATIVIDADE ESPECIAL. NECESSIDADE DE REALIZAÇÃO DE PERÍCIA TÉCNICA PARA EFETIVA AFERIÇÃO DA EXISTÊNCIA DE CONDIÇÕES INSALUBRES. CONVERSÃO DO JULGAMENTO EM DILIGÊNCIA. (6a Turma Recursal de São Paulo, Recurso Inominado, Processo: 00112873220094036302, Relator: Juiz(a) Federal Roberto Santoro Facchini, Data do Julgamento: 13/05/2016, Fonte: e-DJF3 Judicial, Data: 24/05/2016) VOTO-EMENTA 1. Pedido de concessão de benefício de aposentadoria por tempo de contribuição, mediante reconhecimento de atividade especial. Agente nocivo ruído; 8. Para efeito de apuração da medição sonora existem dois aparelhos - o decibelímetro e o dosímetro. O decibelímetro mede o nível de intensidade da pressão sonora no exato momento em que ela ocorre. O dosímetro tem por função medir uma dose de ruído ao qual uma pessoa tenha sido exposta por um determinado período de tempo. Para períodos anteriores a 18/11/2003, véspera da vigência do Decreto n 4.882/2003, a NR-15/MTE (Anexo I, item 6) admitia-se a medição do ruído por meio de decibelímetro; entretanto, já exigia a feitura\n", - "Fragmento 23: de uma média ponderada do ruído medido em função do tempo: Com efeito, seria ilógico admitir o enquadramento por exposição ao agente agressivo ruído por meio de um decibelímetro caso não se proceda, ao final, a uma média de valores medidos ao longo do tempo. Já a partir de 19/11/2003, vigência do Decreto n 4.882/2003, que incluiu o -11 no art. 68 do Decreto 3.048/99 (- 11. As avaliações ambientais deverão considerar a classificação dos agentes nocivos e os limites de tolerância estabelecidos pela legislação trabalhista, bem como a metodologia e os procedimentos de avaliação estabelecidos pela Fundação Jorge Duprat Figueiredo de Segurança e Medicina do Trabalho - FUNDACENTRO), a medição do ruído deve-se dar em conformidade com que preconiza a NHO 01 (itens. 6.4 a 6.4.3) da Fundacentro (órgão do Ministério do Trabalho), por meio de dosímetro de ruído (técnica dosimetria - item 5.1.1.1 da NHO-01), cujo resultado é indicado em nível equivalente de ruído (Leq Equivalent Level ou Neq Nível equivalente), ou qualquer outra forma de aferição existente\n", - "Fragmento 24: que leve em consideração a intensidade do ruído em função do tempo (tais como a média ponderada Lavg Average Level / NM nível médio, ou ainda o NEN Nível de exposição normalizado), tudo com o objetivo apurar o valor normalizado para toda a jornada de trabalho, permitindo-se constatar se a exposição diária (e não eventual / instantânea / de picos ou extremos) ultrapassou os limites de tolerância vigentes em cada época, não sendo mais admissível a partir de então a utilização de decibelímetro ou medição em conformidade com a NR-15. Houve alteração do código 2.0.1 do Decreto 3.048/99, que passou a exigir não só uma simples exposição a 'níveis de ruído', e sim exposição a 'Níveis de Exposição Normalizados (NEN) superiores a 85 decibéis', justamente conforme preconiza a metodologia de medição da NHO-01 da Fundacentro: Destarte, extraem-se as seguintes conclusões: (i) para períodos laborados antes de 19/11/2003, admite-se a medição por decibelímetro; (ii) para períodos laborados após 19/11/2003, exige-se a medição por meio da técnica de dosimetria (dosímetro), não sendo\n", - "Fragmento 25: admissível a medição por decibelímetro, salvo se comprovado minuciosamente nos autos que foi feita, ao final, média ponderada dos valores aferidos pelo instrumento durante toda a jornada de trabalho do obreiro (item 6.4.3.e e g da NHO-01), segundo a fórmula lá estipulada; (2a Turma Recursal de São Paulo, Recurso Inominado, Processo: 00013727120104036318, Relator: JUIZ(A) FEDERAL UILTON REINA CECATO, Data do Julgamento: 27/07/2017, Fonte: Documento N : 2017/930100830988-59409. Consulte autenticidade em: http://web.trf3.jus.br/autenticacaojef) Uma das grandes inovações da NHO-01 da FUNDACENTRO é que ela introduziu o conceito de nível de exposição (NE) como um dos critérios para a quantificação e caracterização da exposição ocupacional ao ruído contínuo ou intermitente e o conceito de nível de exposição normalizado (NEN) para interpretação dos resultados. É que, como se sabe, a exposição à pressão sonora não é uma coisa estanque; é algo que vai se acumulando no organismo do indivíduo e acaba por lhe prejudicar a saúde. O ruído pode ser contínuo, intermitente ou impulsivo. A exposição pode ser variável durante a jornada de trabalho\n", - "Fragmento 26: do trabalhador que fica exposto algumas horas, outras fica em repouso ou fica exposto a diferentes níveis de ruídos, sendo a própria jornada de trabalho variável, de 4, 6, 8 horas etc...Tudo isso deve ser avaliado a fim de se saber se há, ou não, situação que envolva um perigo presumido à saúde do trabalhador que justifique sua aposentação prematura. Assim, a partir de 01/01/2004 deve-se utilizar a dosimetria NEN (Níveis de exposição Normatizado)', conforme NHO 01 da FUNDACENTRO (Item 2.0.1 \"a\" do Anexo IV ao Regulamento da Previdência Social, alterado pelo Decreto n 4.882 de 18/11/2003), referente à avaliação da exposição ocupacional ao ruído. Dosimetria NÃO é NEN ! Para ruídos contínuos ou intermitentes, o NEN é a unidade de medida do limite de exposição ocupacional diária. Ele é o nível de exposição, convertido para uma jornada padrão de 8 horas diárias. O NEN nada mais é do que o NE ou o Leq, convertido para uma jornada padrão de 8 horas diárias, para fins de comparação com o\n", - "Fragmento 27: limite de exposição. Um dos pontos costumeiramente inobservados por quem não tem conhecimento quanto aos critérios/metodologia de aferição do agente ruído para fins de reconhecimento de tempo especial é o fator de dobra utilizado para o cálculo, que, não raramente, é diverso do previsto na legislação aplicável (NHO-01 da FUNDACENTRO X NR-15). Discute-se entre Q = 5 ou Q = 3. Quando se utiliza o Q = 5, fica determinado que a cada incremento de 5 dB(A) no ruído avaliado à altura do ouvido do trabalhador, o tempo de exposição permitido se reduz pela metade. Já o fator de dobra Q = 3, faz com que o tempo de exposição permitida caia pela metade a cada incremento de apenas 3 dB(A) no ruído avaliado.Disso se deduz que o Q = 3 é mais protetivo ao segurado, enquanto o Q = 5 é favorável ao INSS. No plano normativo, a NHO-01 da FUNDACENTRO adota o Q = 3 e a NR-15 adota o Q = 5. Daí a diferença nas duas\n", - "Fragmento 28: normas entre os limites de exposição máxima permissível. Repare-se que a cada incremento de 5 dB(A) a NR 15 reduz pela metade o tempo de exposição permitido, enquanto o mesmo efeito é conseguido com o incremento de 3 dB(A) na NHO-01: dB(A) NHO-01 (h) Anexo I da NR 15 85 8 8 horas 86 6,3495 7 horas 87 6 horas 88 4 5 horas 89 3,17466667 4 horas e 30 minutos 90 2,51983333 4 horas 91 2 3 horas e 30 minutos 92 1,58733333 3 horas 93 1,25983333 2 horas e 40 minutos 94 1 2 horas e 15 minutos 95 0,79366667 2 horas 96 0,62983333 1 hora e 45 minutos 97 0,5 98 0,39683333 1 hora e 15 minutos 99 0,31483333 100 0,25 1 hora 101 - 102 - 45 minutos 103 - 104 - 35 minutos 105 - 30 minutos 106 - 25 minutos 108 - 20 minutos 110 - 15 minutos 112 - 10 minutos 114 - 8 minutos 115 - 7 minutos. Vale destacar, de qualquer\n", - "Fragmento 29: modo, que os dosímetros projetam a dose, mas tal dado não é suficiente para averiguar a exposição ao ruído. É necessário averiguar o ciclo de trabalho e o tempo de exposição durante a jornada. Assim, se o autor trabalha em uma empresa onde os colaboradores trabalham 8 horas por dia, 5 dias por semana, basta fazer a medição e utilizar o valor projetado que o aparelho irá mostrar. Agora se os colaboradores trabalham em turnos com horários alternativos é necessário calcular o NEN relativo ao tempo de exposição. Um colaborador exposto a um ruído de 88 dB 8h/dia e 5 dias/semana não tem o mesmo efeito de um colaborador que trabalha exposto ao mesmo ruído 10h/dia e 5 dias/semana. Assim, é necessário verificar a forma que foi efetuada o cálculo do NÍVEL DE EXPOSIÇÃO, se foi feito com base no tempo de medição e mesma exposição ao longo das oito horas ou considerou a mesma dose presumindo que no restante da jornada não houve exposição a ruído. Ao contrário do\n", - "Fragmento 30: que, vez ou outra, se verifica em alguns julgados, não se há de falar, outrossim, que a observância a um ou a outra técnica/metodologia, dependendo da época a que se refere a aferição do agente ruído, adviria apenas de instruções normativas do INSS. Há de se combater, pois, logo de plano, esse falacioso argumento de que a previsão de uma ou outra metodologia em Instrução Normativa do INSS exorbitaria de qualquer poder regulamentar, estabelecendo exigência não prevista em lei. O poder regulamentar, primeiramente exercido via Decretos do Poder Executivo, em NADA se mostra ilegal, muito pelo contrário. Os níveis de tolerância previstos na legislação para os diversos agentes nocivos avaliados de modo QUANTITATIVO, a exemplo do ruído e do calor, JAMAIS estiveram presentes na LEI, mas SEMPRE em atos infralegais. Não se trata, portanto, de mero capricho e tampouco preciosismo e burocracia do INSS: a metodologia que nada mais é um DESDOBRAMENTO da exigência legal de comprovação de avaliação quantitativa em níveis superiores aos tolerados pela LEGISLAÇÃO PREVIDENCIÁRIA. Se é\n", - "Fragmento 31: certo que 'a eleição do critério técnico para aferição do calor foge aos limites da competência do Poder Judiciário, o qual ante a ausência de ilegalidade ou desproporcionalidade deve observar a definição do parâmetro usado pela Administração Pública' (TNU PROC. 0502181-06.2015.4.05.8312, voto do Juiz Federal FÁBIO CESAR DOS SANTOS OLIVEIRA), o mesmo raciocínio vale para o ruído: a eleição do critério técnico para a aferição do ruído também escapa dos limites da competência do Judiciário, que deve observar a definição do parâmetro usado pela Administração Pública. Portanto, restou incontroverso, COMO DITO ACIMA, que, para os períodos a partir de 18/11/2003, NÃO FOI INFORMADO O NEN; mas a lei previdenciária exige que seja informado o Nível de Exposição Normalizado (NEN), que representa o nível médio convertido para uma jornada padrão de 8 horas para, enfim, comparar se foi ou não ultrapassado o limite máximo permitido. Pelo menos após 2003, qualquer outro padrão para aferição de ruído que não seja o NEN contraria a legislação previdenciária. Há, na verdade, IMPEDITIVO LEGAL de\n", - "Fragmento 32: atribuir caráter especial a períodos laborados sem a apresentação dos elementos que demonstre Níveis de Exposição Normalizados acima de 85dB(A). Por tudo quanto acima demonstrado, a simples medição por dosimetria/decibelímetro informada nos PPP's/LTCAT(s) é insuficiente para gerar efeitos na seara previdenciária porque não foi calculado/informado o Nível de Exposição Normalizado NEN. Importa-nos, ainda, destacar que há mais de 15 anos (desde outubro/2001) as regras para aferição de ruído para fins previdenciários foram ALTERADAS, exigindo-se desde 2001 apresentação de HISTOGRAMA e, a partir de 19/11/2003, a medição do Nível de Exposição Normatizado NEN, então NADA JUSTIFICA A INOBSERVÂNCIA da legislação previdenciária, quer pelo Poder Executivo, quer pelo Poder Judiciário. O técnico, ao realizar a avaliação de ruído, determina o valor da exposição diária a este agente físico mediante a medição do nível de pressão sonora dos diferentes locais de trabalho, durante a realização de diversas tarefas, ao longo do dia. O valor médio é calculado tendo por base os valores medidos e o tempo passado em cada local ou na realização\n", - "Fragmento 33: de cada tarefa. Se o perito fez diversas medições como exige a lei, porque não a demonstra? É simples. Está, portanto, afastada a possibilidade de enquadramento pelo agente físico ruído. Eventual conversão do tempo especial em comum dar-se-á em contrariedade ao artigo 31 da Lei n 3.807/1960, artigo 3 do Decreto n 53.831/1964, artigo 60 do Decreto n 83.080/1979 e artigo 57, - 3 , da Lei n 8.213/1991. A metodologia definida como obrigatória a partir de 01/01/2004 (NEN) não foi observada no PPP, HAVENDO ofensa ao art. 57 E 58 da Lei 8.213/91 e ao Item 2.0.1 \"a\" do Anexo IV ao Regulamento da Previdência Social, alterado pelo Decreto n 4.882 de 18/11/2003 . Portanto, há manifesta violação à lei federal. * * * DO PEDIDO Ante o exposto, requer o INSS o conhecimento e o provimento do presente Recurso Especial diante da violação de lei federal- art. 57 , 58 da Lei 8.213/91 e ao​ Item 2.0.1 \"a\" do Anexo IV ao Regulamento da Previdência Social, alterado pelo\n", - "Fragmento 34: Decreto n 4.882 de 18/11/2003 .\n", - "Criando embedding do fragmento 1 ... \n", - "Criando embedding do fragmento 2 ... \n", - "Criando embedding do fragmento 3 ... \n", - "Criando embedding do fragmento 4 ... \n", - "Criando embedding do fragmento 5 ... \n", - "Criando embedding do fragmento 6 ... \n", - "Criando embedding do fragmento 7 ... \n", - "Criando embedding do fragmento 8 ... \n", - "Criando embedding do fragmento 9 ... \n", - "Criando embedding do fragmento 10 ... \n", - "Criando embedding do fragmento 11 ... \n", - "Criando embedding do fragmento 12 ... \n", - "Criando embedding do fragmento 13 ... \n", - "Criando embedding do fragmento 14 ... \n", - "Criando embedding do fragmento 15 ... \n", - "Criando embedding do fragmento 16 ... \n", - "Criando embedding do fragmento 17 ... \n", - "Criando embedding do fragmento 18 ... \n", - "Criando embedding do fragmento 19 ... \n", - "Criando embedding do fragmento 20 ... \n", - "Criando embedding do fragmento 21 ... \n", - "Criando embedding do fragmento 22 ... \n", - "Criando embedding do fragmento 23 ... \n", - "Criando embedding do fragmento 24 ... \n", - "Criando embedding do fragmento 25 ... \n", - "Criando embedding do fragmento 26 ... \n", - "Criando embedding do fragmento 27 ... \n", - "Criando embedding do fragmento 28 ... \n", - "Criando embedding do fragmento 29 ... \n", - "Criando embedding do fragmento 30 ... \n", - "Criando embedding do fragmento 31 ... \n", - "Criando embedding do fragmento 32 ... \n", - "Criando embedding do fragmento 33 ... \n", - "Criando embedding do fragmento 34 ... \n", - "Tensores fragmentos\n", - "[tensor([ 0.0268, -0.0578, -0.1421, ..., 0.1459, -0.3626, -0.1162]), tensor([-0.1743, 0.2509, 0.0728, ..., 0.1415, -0.5942, 0.0799]), tensor([-0.0890, 0.1237, -0.0298, ..., 0.0765, -0.7034, 0.0763]), tensor([-0.0134, 0.1626, -0.1344, ..., 0.0477, -0.5381, -0.0431]), tensor([ 0.0368, -0.0378, 0.0373, ..., 0.1090, -0.7037, -0.0683]), tensor([ 0.2026, 0.0170, -0.2354, ..., -0.0380, -0.7741, -0.0732]), tensor([ 0.3275, -0.0843, 0.0384, ..., 0.1572, -0.6944, 0.0506]), tensor([ 0.0335, 0.1068, 0.1048, ..., 0.0665, -0.5961, -0.0783]), tensor([ 0.0676, 0.1714, 0.1307, ..., 0.1074, -0.4780, 0.1464]), tensor([ 0.1028, 0.1348, -0.0084, ..., 0.1073, -0.5667, 0.0693]), tensor([-0.0838, 0.0420, 0.1340, ..., 0.1479, -0.5824, -0.0400]), tensor([ 0.1232, 0.0034, 0.1664, ..., 0.0022, -0.7909, 0.1272]), tensor([ 0.0854, 0.1091, -0.0448, ..., 0.0867, -0.6935, -0.0273]), tensor([ 0.0370, -0.2664, -0.2584, ..., -0.0734, -0.4887, -0.0697]), tensor([ 0.0345, -0.1040, -0.2107, ..., 0.0618, -0.5348, -0.1160]), tensor([ 0.0196, -0.0149, -0.1030, ..., -0.1083, -0.6815, 0.0557]), tensor([ 0.3134, -0.0174, 0.0379, ..., 0.0327, -0.6629, 0.1506]), tensor([ 0.1040, 0.0535, 0.0751, ..., 0.0288, -0.6709, 0.0352]), tensor([ 0.2124, 0.0705, 0.0032, ..., 0.1842, -0.5976, -0.1144]), tensor([ 0.2313, -0.0240, 0.0482, ..., 0.0115, -0.7891, 0.0318]), tensor([ 0.1770, -0.1949, -0.0216, ..., 0.0271, -0.6528, 0.0759]), tensor([-0.0382, 0.0579, -0.0168, ..., 0.1004, -0.5864, -0.1514]), tensor([ 0.2760, 0.0174, 0.1084, ..., 0.2164, -0.5651, -0.0903]), tensor([ 0.2353, -0.0137, 0.1047, ..., 0.1582, -0.5821, -0.0482]), tensor([ 0.2093, 0.0218, 0.0747, ..., 0.0660, -0.5437, -0.1348]), tensor([ 0.1820, -0.1167, 0.0816, ..., 0.2228, -0.5543, -0.0284]), tensor([ 0.0873, 0.0232, -0.0336, ..., 0.1002, -0.6559, -0.0057]), tensor([ 0.1577, 0.0756, 0.0054, ..., 0.4092, -0.4263, 0.1172]), tensor([ 0.4316, -0.3298, 0.0726, ..., 0.2331, -0.7424, 0.4075]), tensor([ 0.0652, -0.1034, -0.1214, ..., 0.0610, -0.6615, 0.0109]), tensor([-0.1002, -0.0332, 0.0173, ..., 0.2378, -0.6945, -0.0715]), tensor([ 0.2091, -0.0417, 0.0563, ..., 0.1421, -0.5422, 0.1065]), tensor([ 0.1285, 0.0415, 0.0818, ..., 0.2737, -0.6682, 0.0750]), tensor([ 0.0910, 0.1176, 0.0284, ..., 0.4789, -0.3653, -0.4131])]\n", - "Tensor final\n", - "tensor([[ 0.0268, -0.0578, -0.1421, ..., 0.1459, -0.3626, -0.1162],\n", - " [-0.1743, 0.2509, 0.0728, ..., 0.1415, -0.5942, 0.0799],\n", - " [-0.0890, 0.1237, -0.0298, ..., 0.0765, -0.7034, 0.0763],\n", - " ...,\n", - " [ 0.2091, -0.0417, 0.0563, ..., 0.1421, -0.5422, 0.1065],\n", - " [ 0.1285, 0.0415, 0.0818, ..., 0.2737, -0.6682, 0.0750],\n", - " [ 0.0910, 0.1176, 0.0284, ..., 0.4789, -0.3653, -0.4131]])\n", - "Embedding do texto completo a partir da média\n", - "tensor([ 0.1091, 0.0047, 0.0035, ..., 0.1183, -0.6101, -0.0022])\n" - ] - } - ], - "source": [ - "# Texto\n", - "text = read_text(resp,1,'recurso')\n", - "\n", - "tensores_fragmentos = []\n", - "\n", - "# Quantidade máxima de palavras por fragmento\n", - "max_words_per_fragment = 170\n", - "\n", - "# Extrai os fragmentos\n", - "fragments = extract_fragments(text, max_words_per_fragment)\n", - "\n", - "# Imprime os fragmentos\n", - "for idx, fragment in enumerate(fragments, start=1):\n", - " print(f\"Fragmento {idx}: {fragment}\")\n", - "\n", - "#Cria embeddings\n", - "for idx, fragment in enumerate(fragments, start=1):\n", - " print(f\"Criando embedding do fragmento {idx} ... \")\n", - " tensor_fragmento = create_embedding(fragment)\n", - " tensores_fragmentos.append(tensor_fragmento)\n", - "\n", - "print(\"Tensores fragmentos\")\n", - "print(tensores_fragmentos)\n", - "tensor_final = torch.stack(tensores_fragmentos)\n", - "\n", - "print(\"Tensor final\")\n", - "print(tensor_final)\n", - "tensor_final_media = torch.mean(tensor_final, dim=0)\n", - "\n", - "#Imprime Embedding do texto completo\n", - "print(\"Embedding do texto completo a partir da média\")\n", - "print(tensor_final_media)\n", - "embedding_resp = tensor_final_media" - ] - }, - { - "cell_type": "markdown", - "source": [ - "## **Calcula Similaridade entre texto do recurso especial e cada um dos temas**" - ], - "metadata": { - "id": "LxfvjlewLCWt" - } - }, - { - "cell_type": "code", - "execution_count": 53, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/" - }, - "id": "kxev8RGF0BsZ", - "outputId": "be874a87-4f50-4400-d6a7-7e2d5e55cfae" - }, - "outputs": [ - { - "output_type": "stream", - "name": "stdout", - "text": [ - "[(1090, tensor(0.9707)), (274, tensor(0.9706)), (175, tensor(0.9578)), (149, tensor(0.9557)), (1150, tensor(0.9556)), (247, tensor(0.9552)), (368, tensor(0.9549)), (126, tensor(0.9543)), (493, tensor(0.9534)), (516, tensor(0.9524)), (9, tensor(0.9519)), (401, tensor(0.9517)), (351, tensor(0.9514)), (359, tensor(0.9506)), (531, tensor(0.9499)), (524, tensor(0.9497)), (165, tensor(0.9497)), (259, tensor(0.9495)), (611, tensor(0.9489)), (1142, tensor(0.9477)), (996, tensor(0.9474)), (7, tensor(0.9472)), (694, tensor(0.9465)), (435, tensor(0.9463)), (105, tensor(0.9462)), (337, tensor(0.9461)), (47, tensor(0.9457)), (216, tensor(0.9457)), (362, tensor(0.9454)), (1147, tensor(0.9448)), (974, tensor(0.9444)), (931, tensor(0.9442)), (10, tensor(0.9441)), (203, tensor(0.9439)), (292, tensor(0.9439)), (360, tensor(0.9438)), (100, tensor(0.9436)), (416, tensor(0.9434)), (143, tensor(0.9434)), (954, tensor(0.9433)), (485, tensor(0.9430)), (419, tensor(0.9425)), (174, tensor(0.9425)), (723, tensor(0.9424)), (527, tensor(0.9416)), (1041, tensor(0.9411)), (477, tensor(0.9403)), (401, tensor(0.9401)), (405, tensor(0.9400)), (295, tensor(0.9397)), (785, tensor(0.9395)), (995, tensor(0.9395)), (538, tensor(0.9392)), (232, tensor(0.9390)), (305, tensor(0.9389)), (191, tensor(0.9387)), (27, tensor(0.9386)), (157, tensor(0.9383)), (629, tensor(0.9381)), (263, tensor(0.9378)), (271, tensor(0.9377)), (286, tensor(0.9376)), (909, tensor(0.9373)), (1020, tensor(0.9371)), (1020, tensor(0.9371)), (1165, tensor(0.9371)), (280, tensor(0.9371)), (25, tensor(0.9370)), (609, tensor(0.9370)), (118, tensor(0.9370)), (177, tensor(0.9368)), (14, tensor(0.9365)), (14, tensor(0.9365)), (1102, tensor(0.9365)), (269, tensor(0.9364)), (97, tensor(0.9360)), (887, tensor(0.9360)), (230, tensor(0.9360)), (1056, tensor(0.9357)), (42, tensor(0.9356)), (79, tensor(0.9356)), (79, tensor(0.9356)), (943, tensor(0.9353)), (452, tensor(0.9350)), (284, tensor(0.9345)), (474, tensor(0.9345)), (624, tensor(0.9344)), (406, tensor(0.9342)), (640, tensor(0.9341)), (217, tensor(0.9336)), (1073, tensor(0.9334)), (320, tensor(0.9334)), (324, tensor(0.9334)), (325, tensor(0.9334)), (326, tensor(0.9334)), (327, tensor(0.9334)), (328, tensor(0.9334)), (329, tensor(0.9334)), (330, tensor(0.9334)), (331, tensor(0.9334)), (1042, tensor(0.9333)), (50, tensor(0.9333)), (51, tensor(0.9333)), (519, tensor(0.9332)), (60, tensor(0.9328)), (1057, tensor(0.9325)), (597, tensor(0.9324)), (437, tensor(0.9324)), (530, tensor(0.9322)), (352, tensor(0.9322)), (1131, tensor(0.9321)), (1201, tensor(0.9318)), (86, tensor(0.9317)), (1010, tensor(0.9316)), (450, tensor(0.9314)), (163, tensor(0.9313)), (449, tensor(0.9312)), (322, tensor(0.9303)), (1184, tensor(0.9303)), (677, tensor(0.9303)), (73, tensor(0.9302)), (600, tensor(0.9299)), (262, tensor(0.9299)), (405, tensor(0.9298)), (159, tensor(0.9297)), (951, tensor(0.9295)), (288, tensor(0.9293)), (923, tensor(0.9292)), (555, tensor(0.9290)), (556, tensor(0.9290)), (888, tensor(0.9289)), (857, tensor(0.9289)), (92, tensor(0.9288)), (93, tensor(0.9288)), (94, tensor(0.9288)), (466, tensor(0.9287)), (140, tensor(0.9286)), (420, tensor(0.9285)), (935, tensor(0.9285)), (397, tensor(0.9283)), (520, tensor(0.9282)), (1209, tensor(0.9281)), (473, tensor(0.9275)), (1043, tensor(0.9275)), (32, tensor(0.9274)), (448, tensor(0.9274)), (239, tensor(0.9273)), (249, tensor(0.9273)), (3, tensor(0.9270)), (313, tensor(0.9269)), (443, tensor(0.9268)), (890, tensor(0.9268)), (897, tensor(0.9268)), (644, tensor(0.9267)), (1163, tensor(0.9264)), (999, tensor(0.9263)), (1080, tensor(0.9263)), (172, tensor(0.9261)), (764, tensor(0.9260)), (578, tensor(0.9260)), (142, tensor(0.9259)), (1007, tensor(0.9258)), (400, tensor(0.9257)), (268, tensor(0.9257)), (769, tensor(0.9256)), (1176, tensor(0.9255)), (1017, tensor(0.9254)), (265, tensor(0.9253)), (633, tensor(0.9252)), (1, tensor(0.9251)), (544, tensor(0.9250)), (1018, tensor(0.9249)), (1129, tensor(0.9247)), (460, tensor(0.9247)), (1110, tensor(0.9245)), (349, tensor(0.9244)), (679, tensor(0.9242)), (84, tensor(0.9240)), (373, tensor(0.9239)), (250, tensor(0.9239)), (772, tensor(0.9239)), (15, tensor(0.9237)), (366, tensor(0.9236)), (443, tensor(0.9234)), (134, tensor(0.9231)), (554, tensor(0.9230)), (981, tensor(0.9230)), (1005, tensor(0.9229)), (1061, tensor(0.9229)), (762, tensor(0.9228)), (364, tensor(0.9228)), (867, tensor(0.9228)), (287, tensor(0.9227)), (447, tensor(0.9227)), (29, tensor(0.9226)), (1127, tensor(0.9225)), (337, tensor(0.9225)), (339, tensor(0.9224)), (812, tensor(0.9220)), (347, tensor(0.9220)), (836, tensor(0.9220)), (552, tensor(0.9219)), (212, tensor(0.9219)), (601, tensor(0.9218)), (714, tensor(0.9218)), (156, tensor(0.9217)), (85, tensor(0.9217)), (310, tensor(0.9216)), (21, tensor(0.9212)), (928, tensor(0.9210)), (205, tensor(0.9210)), (4, tensor(0.9210)), (1081, tensor(0.9209)), (214, tensor(0.9209)), (1169, tensor(0.9207)), (484, tensor(0.9205)), (40, tensor(0.9205)), (519, tensor(0.9204)), (293, tensor(0.9204)), (439, tensor(0.9203)), (1161, tensor(0.9202)), (567, tensor(0.9201)), (1103, tensor(0.9200)), (369, tensor(0.9200)), (1093, tensor(0.9199)), (926, tensor(0.9199)), (126, tensor(0.9199)), (150, tensor(0.9198)), (151, tensor(0.9198)), (1079, tensor(0.9198)), (367, tensor(0.9197)), (239, tensor(0.9196)), (78, tensor(0.9196)), (721, tensor(0.9195)), (784, tensor(0.9194)), (387, tensor(0.9193)), (805, tensor(0.9193)), (748, tensor(0.9192)), (4, tensor(0.9192)), (1086, tensor(0.9190)), (321, tensor(0.9186)), (433, tensor(0.9186)), (433, tensor(0.9186)), (194, tensor(0.9185)), (1070, tensor(0.9184)), (55, tensor(0.9184)), (1085, tensor(0.9183)), (332, tensor(0.9182)), (275, tensor(0.9177)), (978, tensor(0.9173)), (7, tensor(0.9172)), (134, tensor(0.9171)), (487, tensor(0.9170)), (1055, tensor(0.9169)), (344, tensor(0.9169)), (319, tensor(0.9168)), (833, tensor(0.9168)), (10, tensor(0.9165)), (517, tensor(0.9165)), (402, tensor(0.9165)), (547, tensor(0.9164)), (950, tensor(0.9163)), (913, tensor(0.9163)), (323, tensor(0.9162)), (491, tensor(0.9162)), (491, tensor(0.9162)), (398, tensor(0.9162)), (28, tensor(0.9160)), (1151, tensor(0.9160)), (37, tensor(0.9158)), (628, tensor(0.9157)), (1186, tensor(0.9157)), (279, tensor(0.9156)), (1083, tensor(0.9156)), (294, tensor(0.9155)), (477, tensor(0.9154)), (920, tensor(0.9153)), (338, tensor(0.9153)), (896, tensor(0.9152)), (411, tensor(0.9152)), (447, tensor(0.9152)), (348, tensor(0.9151)), (312, tensor(0.9151)), (377, tensor(0.9150)), (154, tensor(0.9149)), (1114, tensor(0.9147)), (513, tensor(0.9146)), (930, tensor(0.9146)), (19, tensor(0.9146)), (615, tensor(0.9145)), (316, tensor(0.9145)), (107, tensor(0.9144)), (440, tensor(0.9144)), (282, tensor(0.9144)), (545, tensor(0.9144)), (13, tensor(0.9143)), (176, tensor(0.9142)), (444, tensor(0.9141)), (696, tensor(0.9140)), (947, tensor(0.9140)), (692, tensor(0.9139)), (1019, tensor(0.9139)), (690, tensor(0.9138)), (231, tensor(0.9138)), (245, tensor(0.9137)), (1089, tensor(0.9137)), (44, tensor(0.9137)), (396, tensor(0.9136)), (92, tensor(0.9136)), (92, tensor(0.9136)), (118, tensor(0.9135)), (171, tensor(0.9133)), (280, tensor(0.9131)), (281, tensor(0.9131)), (283, tensor(0.9131)), (379, tensor(0.9130)), (195, tensor(0.9129)), (110, tensor(0.9129)), (8, tensor(0.9129)), (1132, tensor(0.9128)), (765, tensor(0.9128)), (1128, tensor(0.9126)), (342, tensor(0.9126)), (153, tensor(0.9123)), (154, tensor(0.9123)), (155, tensor(0.9123)), (1075, tensor(0.9123)), (383, tensor(0.9122)), (393, tensor(0.9122)), (339, tensor(0.9121)), (492, tensor(0.9120)), (492, tensor(0.9120)), (1036, tensor(0.9120)), (267, tensor(0.9118)), (750, tensor(0.9118)), (566, tensor(0.9117)), (221, tensor(0.9117)), (982, tensor(0.9116)), (384, tensor(0.9116)), (704, tensor(0.9116)), (476, tensor(0.9114)), (1028, tensor(0.9114)), (290, tensor(0.9113)), (1138, tensor(0.9113)), (245, tensor(0.9112)), (852, tensor(0.9111)), (809, tensor(0.9111)), (230, tensor(0.9110)), (1084, tensor(0.9110)), (272, tensor(0.9110)), (1181, tensor(0.9106)), (127, tensor(0.9105)), (395, tensor(0.9105)), (1135, tensor(0.9105)), (1140, tensor(0.9105)), (283, tensor(0.9104)), (135, tensor(0.9101)), (1207, tensor(0.9101)), (486, tensor(0.9101)), (1137, tensor(0.9100)), (911, tensor(0.9099)), (181, tensor(0.9099)), (456, tensor(0.9099)), (457, tensor(0.9099)), (584, tensor(0.9098)), (972, tensor(0.9096)), (458, tensor(0.9094)), (1178, tensor(0.9094)), (508, tensor(0.9094)), (112, tensor(0.9094)), (534, tensor(0.9094)), (350, tensor(0.9093)), (400, tensor(0.9090)), (1195, tensor(0.9090)), (210, tensor(0.9089)), (211, tensor(0.9089)), (889, tensor(0.9089)), (225, tensor(0.9088)), (2, tensor(0.9088)), (181, tensor(0.9087)), (366, tensor(0.9087)), (198, tensor(0.9086)), (19, tensor(0.9086)), (30, tensor(0.9086)), (36, tensor(0.9086)), (449, tensor(0.9085)), (571, tensor(0.9084)), (470, tensor(0.9083)), (1196, tensor(0.9083)), (969, tensor(0.9083)), (50, tensor(0.9081)), (166, tensor(0.9081)), (1024, tensor(0.9081)), (636, tensor(0.9081)), (166, tensor(0.9079)), (302, tensor(0.9079)), (558, tensor(0.9078)), (871, tensor(0.9078)), (101, tensor(0.9078)), (264, tensor(0.9078)), (1030, tensor(0.9077)), (526, tensor(0.9077)), (570, tensor(0.9077)), (1120, tensor(0.9076)), (475, tensor(0.9076)), (476, tensor(0.9076)), (64, tensor(0.9076)), (65, tensor(0.9076)), (66, tensor(0.9076)), (67, tensor(0.9076)), (68, tensor(0.9076)), (69, tensor(0.9076)), (70, tensor(0.9076)), (71, tensor(0.9076)), (72, tensor(0.9076)), (73, tensor(0.9076)), (74, tensor(0.9076)), (75, tensor(0.9076)), (78, tensor(0.9076)), (49, tensor(0.9075)), (83, tensor(0.9075)), (224, tensor(0.9073)), (1097, tensor(0.9073)), (255, tensor(0.9072)), (429, tensor(0.9072)), (341, tensor(0.9072)), (258, tensor(0.9072)), (797, tensor(0.9071)), (9, tensor(0.9070)), (297, tensor(0.9069)), (1003, tensor(0.9068)), (403, tensor(0.9067)), (1167, tensor(0.9067)), (5, tensor(0.9067)), (291, tensor(0.9066)), (1126, tensor(0.9066)), (306, tensor(0.9066)), (804, tensor(0.9065)), (945, tensor(0.9065)), (344, tensor(0.9065)), (1148, tensor(0.9064)), (472, tensor(0.9062)), (417, tensor(0.9062)), (340, tensor(0.9059)), (662, tensor(0.9059)), (200, tensor(0.9059)), (1088, tensor(0.9059)), (347, tensor(0.9058)), (68, tensor(0.9057)), (1144, tensor(0.9057)), (34, tensor(0.9056)), (91, tensor(0.9056)), (471, tensor(0.9056)), (550, tensor(0.9056)), (75, tensor(0.9054)), (75, tensor(0.9054)), (75, tensor(0.9054)), (290, tensor(0.9053)), (296, tensor(0.9053)), (31, tensor(0.9052)), (790, tensor(0.9051)), (236, tensor(0.9051)), (316, tensor(0.9050)), (496, tensor(0.9050)), (546, tensor(0.9049)), (853, tensor(0.9049)), (585, tensor(0.9048)), (426, tensor(0.9048)), (1141, tensor(0.9046)), (246, tensor(0.9045)), (450, tensor(0.9045)), (15, tensor(0.9043)), (480, tensor(0.9043)), (569, tensor(0.9041)), (988, tensor(0.9040)), (374, tensor(0.9040)), (328, tensor(0.9039)), (775, tensor(0.9038)), (453, tensor(0.9038)), (407, tensor(0.9037)), (1124, tensor(0.9037)), (363, tensor(0.9037)), (363, tensor(0.9037)), (279, tensor(0.9037)), (351, tensor(0.9036)), (351, tensor(0.9036)), (195, tensor(0.9035)), (335, tensor(0.9034)), (331, tensor(0.9034)), (1109, tensor(0.9032)), (387, tensor(0.9032)), (700, tensor(0.9032)), (465, tensor(0.9031)), (695, tensor(0.9031)), (6, tensor(0.9030)), (178, tensor(0.9030)), (1105, tensor(0.9029)), (454, tensor(0.9028)), (779, tensor(0.9028)), (780, tensor(0.9028)), (232, tensor(0.9027)), (71, tensor(0.9027)), (872, tensor(0.9026)), (184, tensor(0.9025)), (98, tensor(0.9024)), (282, tensor(0.9023)), (141, tensor(0.9022)), (162, tensor(0.9022)), (414, tensor(0.9021)), (1037, tensor(0.9021)), (117, tensor(0.9020)), (500, tensor(0.9020)), (431, tensor(0.9019)), (432, tensor(0.9019)), (1001, tensor(0.9018)), (497, tensor(0.9016)), (1054, tensor(0.9016)), (244, tensor(0.9016)), (761, tensor(0.9015)), (884, tensor(0.9014)), (183, tensor(0.9014)), (1027, tensor(0.9014)), (1031, tensor(0.9012)), (622, tensor(0.9011)), (346, tensor(0.9011)), (1111, tensor(0.9009)), (641, tensor(0.9009)), (858, tensor(0.9008)), (1, tensor(0.9008)), (717, tensor(0.9008)), (233, tensor(0.9007)), (676, tensor(0.9007)), (380, tensor(0.9007)), (627, tensor(0.9006)), (503, tensor(0.9005)), (222, tensor(0.9004)), (1032, tensor(0.9004)), (140, tensor(0.9004)), (301, tensor(0.9003)), (122, tensor(0.9002)), (364, tensor(0.9002)), (409, tensor(0.9002)), (1045, tensor(0.9002)), (252, tensor(0.9001)), (824, tensor(0.9001)), (289, tensor(0.8999)), (234, tensor(0.8998)), (21, tensor(0.8998)), (971, tensor(0.8998)), (532, tensor(0.8997)), (270, tensor(0.8994)), (51, tensor(0.8993)), (375, tensor(0.8993)), (985, tensor(0.8992)), (13, tensor(0.8992)), (18, tensor(0.8990)), (18, tensor(0.8990)), (9, tensor(0.8989)), (371, tensor(0.8988)), (378, tensor(0.8988)), (548, tensor(0.8988)), (334, tensor(0.8986)), (596, tensor(0.8986)), (343, tensor(0.8985)), (319, tensor(0.8985)), (345, tensor(0.8984)), (905, tensor(0.8983)), (905, tensor(0.8983)), (522, tensor(0.8982)), (523, tensor(0.8982)), (418, tensor(0.8982)), (1133, tensor(0.8981)), (864, tensor(0.8981)), (744, tensor(0.8980)), (264, tensor(0.8978)), (54, tensor(0.8978)), (132, tensor(0.8976)), (728, tensor(0.8975)), (781, tensor(0.8975)), (375, tensor(0.8975)), (1011, tensor(0.8975)), (1011, tensor(0.8975)), (372, tensor(0.8975)), (246, tensor(0.8974)), (247, tensor(0.8974)), (385, tensor(0.8974)), (963, tensor(0.8972)), (963, tensor(0.8972)), (962, tensor(0.8970)), (22, tensor(0.8970)), (390, tensor(0.8967)), (815, tensor(0.8966)), (1051, tensor(0.8966)), (46, tensor(0.8966)), (1194, tensor(0.8965)), (729, tensor(0.8965)), (1064, tensor(0.8964)), (1149, tensor(0.8963)), (130, tensor(0.8962)), (1077, tensor(0.8959)), (520, tensor(0.8958)), (521, tensor(0.8958)), (1198, tensor(0.8958)), (869, tensor(0.8958)), (870, tensor(0.8958)), (395, tensor(0.8957)), (48, tensor(0.8957)), (1189, tensor(0.8957)), (185, tensor(0.8955)), (16, tensor(0.8955)), (16, tensor(0.8955)), (433, tensor(0.8954)), (612, tensor(0.8953)), (778, tensor(0.8952)), (588, tensor(0.8951)), (116, tensor(0.8949)), (918, tensor(0.8949)), (438, tensor(0.8948)), (1130, tensor(0.8948)), (180, tensor(0.8948)), (412, tensor(0.8947)), (262, tensor(0.8947)), (129, tensor(0.8946)), (61, tensor(0.8946)), (314, tensor(0.8946)), (6, tensor(0.8946)), (334, tensor(0.8946)), (172, tensor(0.8945)), (946, tensor(0.8944)), (456, tensor(0.8943)), (938, tensor(0.8942)), (293, tensor(0.8942)), (510, tensor(0.8942)), (356, tensor(0.8942)), (315, tensor(0.8940)), (18, tensor(0.8940)), (768, tensor(0.8940)), (21, tensor(0.8940)), (549, tensor(0.8939)), (76, tensor(0.8939)), (1193, tensor(0.8939)), (543, tensor(0.8939)), (303, tensor(0.8938)), (1182, tensor(0.8937)), (854, tensor(0.8936)), (613, tensor(0.8936)), (733, tensor(0.8936)), (580, tensor(0.8936)), (927, tensor(0.8936)), (381, tensor(0.8935)), (1021, tensor(0.8934)), (139, tensor(0.8934)), (507, tensor(0.8933)), (353, tensor(0.8933)), (1162, tensor(0.8932)), (415, tensor(0.8931)), (1052, tensor(0.8931)), (260, tensor(0.8931)), (698, tensor(0.8930)), (190, tensor(0.8929)), (1074, tensor(0.8929)), (234, tensor(0.8929)), (786, tensor(0.8929)), (1038, tensor(0.8929)), (17, tensor(0.8929)), (906, tensor(0.8929)), (1117, tensor(0.8928)), (1157, tensor(0.8927)), (190, tensor(0.8926)), (191, tensor(0.8926)), (602, tensor(0.8926)), (98, tensor(0.8926)), (483, tensor(0.8924)), (314, tensor(0.8923)), (498, tensor(0.8923)), (1199, tensor(0.8923)), (151, tensor(0.8922)), (898, tensor(0.8922)), (218, tensor(0.8921)), (225, tensor(0.8921)), (175, tensor(0.8920)), (488, tensor(0.8920)), (384, tensor(0.8920)), (412, tensor(0.8920)), (660, tensor(0.8919)), (88, tensor(0.8919)), (322, tensor(0.8919)), (1062, tensor(0.8918)), (1059, tensor(0.8917)), (603, tensor(0.8917)), (365, tensor(0.8916)), (492, tensor(0.8915)), (149, tensor(0.8914)), (138, tensor(0.8912)), (1190, tensor(0.8911)), (423, tensor(0.8911)), (975, tensor(0.8911)), (249, tensor(0.8911)), (380, tensor(0.8910)), (209, tensor(0.8910)), (724, tensor(0.8909)), (594, tensor(0.8907)), (342, tensor(0.8907)), (446, tensor(0.8906)), (201, tensor(0.8906)), (1115, tensor(0.8905)), (406, tensor(0.8905)), (467, tensor(0.8904)), (468, tensor(0.8904)), (3, tensor(0.8904)), (572, tensor(0.8904)), (1174, tensor(0.8903)), (535, tensor(0.8902)), (850, tensor(0.8902)), (57, tensor(0.8901)), (58, tensor(0.8901)), (36, tensor(0.8900)), (1123, tensor(0.8900)), (862, tensor(0.8899)), (296, tensor(0.8899)), (11, tensor(0.8898)), (255, tensor(0.8898)), (726, tensor(0.8897)), (866, tensor(0.8897)), (457, tensor(0.8896)), (980, tensor(0.8895)), (124, tensor(0.8893)), (919, tensor(0.8892)), (434, tensor(0.8892)), (461, tensor(0.8891)), (294, tensor(0.8891)), (1145, tensor(0.8891)), (1159, tensor(0.8889)), (10, tensor(0.8888)), (941, tensor(0.8888)), (425, tensor(0.8887)), (445, tensor(0.8887)), (125, tensor(0.8887)), (528, tensor(0.8886)), (317, tensor(0.8885)), (355, tensor(0.8885)), (341, tensor(0.8883)), (271, tensor(0.8882)), (524, tensor(0.8879)), (759, tensor(0.8879)), (968, tensor(0.8879)), (45, tensor(0.8878)), (1, tensor(0.8878)), (1009, tensor(0.8877)), (198, tensor(0.8877)), (568, tensor(0.8877)), (499, tensor(0.8877)), (199, tensor(0.8875)), (997, tensor(0.8875)), (810, tensor(0.8874)), (273, tensor(0.8874)), (755, tensor(0.8873)), (494, tensor(0.8871)), (989, tensor(0.8871)), (128, tensor(0.8870)), (129, tensor(0.8870)), (1029, tensor(0.8870)), (248, tensor(0.8870)), (398, tensor(0.8869)), (233, tensor(0.8867)), (105, tensor(0.8866)), (266, tensor(0.8865)), (1100, tensor(0.8865)), (277, tensor(0.8864)), (391, tensor(0.8864)), (391, tensor(0.8864)), (505, tensor(0.8864)), (7, tensor(0.8863)), (1153, tensor(0.8863)), (1025, tensor(0.8863)), (256, tensor(0.8862)), (69, tensor(0.8862)), (217, tensor(0.8861)), (970, tensor(0.8860)), (490, tensor(0.8860)), (243, tensor(0.8859)), (485, tensor(0.8859)), (486, tensor(0.8859)), (487, tensor(0.8859)), (488, tensor(0.8859)), (489, tensor(0.8859)), (490, tensor(0.8859)), (212, tensor(0.8859)), (3, tensor(0.8857)), (693, tensor(0.8856)), (1004, tensor(0.8856)), (583, tensor(0.8856)), (965, tensor(0.8855)), (469, tensor(0.8854)), (324, tensor(0.8854)), (402, tensor(0.8854)), (822, tensor(0.8853)), (90, tensor(0.8853)), (528, tensor(0.8852)), (891, tensor(0.8852)), (894, tensor(0.8852)), (201, tensor(0.8852)), (1188, tensor(0.8851)), (139, tensor(0.8849)), (396, tensor(0.8849)), (327, tensor(0.8847)), (200, tensor(0.8846)), (912, tensor(0.8846)), (939, tensor(0.8844)), (391, tensor(0.8843)), (511, tensor(0.8842)), (229, tensor(0.8842)), (645, tensor(0.8842)), (62, tensor(0.8841)), (202, tensor(0.8841)), (114, tensor(0.8840)), (499, tensor(0.8840)), (1187, tensor(0.8839)), (180, tensor(0.8839)), (1155, tensor(0.8839)), (20, tensor(0.8839)), (281, tensor(0.8838)), (502, tensor(0.8838)), (193, tensor(0.8838)), (248, tensor(0.8837)), (392, tensor(0.8837)), (604, tensor(0.8836)), (455, tensor(0.8836)), (416, tensor(0.8835)), (393, tensor(0.8835)), (1168, tensor(0.8835)), (832, tensor(0.8834)), (903, tensor(0.8834)), (757, tensor(0.8833)), (22, tensor(0.8833)), (1023, tensor(0.8832)), (462, tensor(0.8831)), (910, tensor(0.8831)), (241, tensor(0.8831)), (85, tensor(0.8831)), (1047, tensor(0.8830)), (208, tensor(0.8830)), (921, tensor(0.8830)), (407, tensor(0.8830)), (408, tensor(0.8830)), (409, tensor(0.8830)), (410, tensor(0.8830)), (33, tensor(0.8829)), (462, tensor(0.8828)), (399, tensor(0.8826)), (752, tensor(0.8825)), (753, tensor(0.8825)), (8, tensor(0.8825)), (455, tensor(0.8825)), (10, tensor(0.8825)), (11, tensor(0.8825)), (12, tensor(0.8825)), (942, tensor(0.8824)), (133, tensor(0.8823)), (899, tensor(0.8822)), (359, tensor(0.8820)), (722, tensor(0.8820)), (382, tensor(0.8819)), (1053, tensor(0.8819)), (933, tensor(0.8819)), (2, tensor(0.8818)), (354, tensor(0.8817)), (537, tensor(0.8817)), (388, tensor(0.8817)), (321, tensor(0.8817)), (478, tensor(0.8816)), (358, tensor(0.8816)), (67, tensor(0.8816)), (83, tensor(0.8816)), (76, tensor(0.8815)), (818, tensor(0.8815)), (498, tensor(0.8814)), (421, tensor(0.8813)), (835, tensor(0.8812)), (736, tensor(0.8811)), (1208, tensor(0.8811)), (15, tensor(0.8810)), (525, tensor(0.8809)), (1113, tensor(0.8809)), (521, tensor(0.8809)), (1185, tensor(0.8809)), (849, tensor(0.8807)), (4, tensor(0.8806)), (861, tensor(0.8806)), (626, tensor(0.8805)), (874, tensor(0.8803)), (647, tensor(0.8802)), (79, tensor(0.8801)), (306, tensor(0.8801)), (307, tensor(0.8801)), (308, tensor(0.8801)), (309, tensor(0.8801)), (454, tensor(0.8801)), (639, tensor(0.8801)), (510, tensor(0.8801)), (206, tensor(0.8798)), (397, tensor(0.8796)), (16, tensor(0.8795)), (475, tensor(0.8795)), (1143, tensor(0.8795)), (308, tensor(0.8795)), (504, tensor(0.8794)), (816, tensor(0.8793)), (1156, tensor(0.8792)), (425, tensor(0.8792)), (1044, tensor(0.8791)), (882, tensor(0.8791)), (542, tensor(0.8791)), (509, tensor(0.8791)), (725, tensor(0.8791)), (1122, tensor(0.8791)), (177, tensor(0.8790)), (1048, tensor(0.8790)), (419, tensor(0.8788)), (879, tensor(0.8788)), (1050, tensor(0.8788)), (523, tensor(0.8785)), (353, tensor(0.8784)), (153, tensor(0.8782)), (80, tensor(0.8781)), (1015, tensor(0.8780)), (796, tensor(0.8780)), (441, tensor(0.8780)), (11, tensor(0.8780)), (904, tensor(0.8780)), (1202, tensor(0.8780)), (228, tensor(0.8779)), (702, tensor(0.8778)), (703, tensor(0.8778)), (332, tensor(0.8777)), (258, tensor(0.8777)), (1118, tensor(0.8777)), (720, tensor(0.8776)), (231, tensor(0.8776)), (193, tensor(0.8776)), (413, tensor(0.8775)), (60, tensor(0.8773)), (205, tensor(0.8772)), (330, tensor(0.8772)), (1191, tensor(0.8772)), (352, tensor(0.8772)), (617, tensor(0.8770)), (127, tensor(0.8767)), (977, tensor(0.8767)), (170, tensor(0.8767)), (55, tensor(0.8767)), (365, tensor(0.8763)), (500, tensor(0.8763)), (17, tensor(0.8763)), (100, tensor(0.8763)), (1049, tensor(0.8763)), (168, tensor(0.8762)), (532, tensor(0.8762)), (533, tensor(0.8762)), (1119, tensor(0.8761)), (424, tensor(0.8761)), (284, tensor(0.8760)), (263, tensor(0.8760)), (162, tensor(0.8759)), (841, tensor(0.8759)), (914, tensor(0.8758)), (61, tensor(0.8758)), (863, tensor(0.8758)), (966, tensor(0.8757)), (59, tensor(0.8756)), (1012, tensor(0.8756)), (383, tensor(0.8756)), (253, tensor(0.8756)), (573, tensor(0.8756)), (630, tensor(0.8755)), (801, tensor(0.8755)), (415, tensor(0.8754)), (238, tensor(0.8754)), (873, tensor(0.8753)), (1099, tensor(0.8753)), (452, tensor(0.8751)), (132, tensor(0.8750)), (774, tensor(0.8750)), (495, tensor(0.8750)), (791, tensor(0.8750)), (792, tensor(0.8750)), (196, tensor(0.8750)), (80, tensor(0.8749)), (563, tensor(0.8749)), (107, tensor(0.8748)), (285, tensor(0.8745)), (1173, tensor(0.8745)), (158, tensor(0.8744)), (1179, tensor(0.8744)), (171, tensor(0.8744)), (840, tensor(0.8743)), (756, tensor(0.8743)), (1094, tensor(0.8743)), (557, tensor(0.8741)), (998, tensor(0.8741)), (6, tensor(0.8740)), (709, tensor(0.8739)), (368, tensor(0.8739)), (807, tensor(0.8739)), (114, tensor(0.8738)), (237, tensor(0.8736)), (473, tensor(0.8735)), (96, tensor(0.8734)), (119, tensor(0.8734)), (363, tensor(0.8733)), (267, tensor(0.8732)), (426, tensor(0.8732)), (241, tensor(0.8732)), (1016, tensor(0.8731)), (511, tensor(0.8731)), (413, tensor(0.8731)), (1136, tensor(0.8730)), (959, tensor(0.8730)), (385, tensor(0.8729)), (5, tensor(0.8729)), (734, tensor(0.8728)), (227, tensor(0.8728)), (504, tensor(0.8728)), (1013, tensor(0.8727)), (2, tensor(0.8727)), (503, tensor(0.8727)), (113, tensor(0.8726)), (507, tensor(0.8726)), (1076, tensor(0.8726)), (459, tensor(0.8724)), (876, tensor(0.8724)), (326, tensor(0.8723)), (533, tensor(0.8723)), (287, tensor(0.8723)), (984, tensor(0.8722)), (895, tensor(0.8721)), (1175, tensor(0.8721)), (361, tensor(0.8721)), (147, tensor(0.8720)), (497, tensor(0.8720)), (346, tensor(0.8719)), (388, tensor(0.8719)), (315, tensor(0.8719)), (1154, tensor(0.8716)), (179, tensor(0.8716)), (856, tensor(0.8715)), (1000, tensor(0.8715)), (64, tensor(0.8714)), (84, tensor(0.8714)), (8, tensor(0.8713)), (574, tensor(0.8712)), (389, tensor(0.8711)), (208, tensor(0.8711)), (686, tensor(0.8710)), (616, tensor(0.8710)), (860, tensor(0.8709)), (632, tensor(0.8708)), (38, tensor(0.8708)), (222, tensor(0.8707)), (228, tensor(0.8706)), (715, tensor(0.8706)), (993, tensor(0.8705)), (141, tensor(0.8704)), (300, tensor(0.8704)), (1183, tensor(0.8703)), (268, tensor(0.8701)), (976, tensor(0.8701)), (445, tensor(0.8698)), (112, tensor(0.8698)), (41, tensor(0.8698)), (606, tensor(0.8697)), (607, tensor(0.8697)), (482, tensor(0.8697)), (386, tensor(0.8697)), (173, tensor(0.8696)), (885, tensor(0.8696)), (116, tensor(0.8696)), (427, tensor(0.8695)), (1082, tensor(0.8695)), (1139, tensor(0.8694)), (94, tensor(0.8693)), (9, tensor(0.8692)), (1046, tensor(0.8692)), (285, tensor(0.8690)), (286, tensor(0.8690)), (138, tensor(0.8689)), (587, tensor(0.8687)), (823, tensor(0.8687)), (886, tensor(0.8687)), (1197, tensor(0.8687)), (675, tensor(0.8687)), (489, tensor(0.8686)), (509, tensor(0.8686)), (382, tensor(0.8685)), (514, tensor(0.8685)), (251, tensor(0.8685)), (252, tensor(0.8685)), (253, tensor(0.8685)), (254, tensor(0.8685)), (72, tensor(0.8685)), (1096, tensor(0.8684)), (130, tensor(0.8684)), (865, tensor(0.8682)), (254, tensor(0.8682)), (458, tensor(0.8682)), (122, tensor(0.8682)), (1034, tensor(0.8682)), (820, tensor(0.8680)), (710, tensor(0.8680)), (666, tensor(0.8679)), (223, tensor(0.8678)), (189, tensor(0.8677)), (87, tensor(0.8676)), (1039, tensor(0.8676)), (37, tensor(0.8675)), (38, tensor(0.8675)), (40, tensor(0.8675)), (218, tensor(0.8675)), (219, tensor(0.8675)), (12, tensor(0.8675)), (1204, tensor(0.8674)), (125, tensor(0.8674)), (880, tensor(0.8673)), (650, tensor(0.8673)), (299, tensor(0.8672)), (472, tensor(0.8672)), (1068, tensor(0.8671)), (512, tensor(0.8670)), (586, tensor(0.8667)), (86, tensor(0.8667)), (137, tensor(0.8667)), (16, tensor(0.8666)), (276, tensor(0.8666)), (111, tensor(0.8664)), (194, tensor(0.8662)), (961, tensor(0.8661)), (229, tensor(0.8660)), (237, tensor(0.8659)), (838, tensor(0.8657)), (3, tensor(0.8657)), (161, tensor(0.8657)), (392, tensor(0.8656)), (819, tensor(0.8655)), (536, tensor(0.8654)), (1002, tensor(0.8654)), (699, tensor(0.8653)), (27, tensor(0.8653)), (1108, tensor(0.8653)), (367, tensor(0.8653)), (5, tensor(0.8653)), (608, tensor(0.8652)), (89, tensor(0.8651)), (994, tensor(0.8650)), (4, tensor(0.8649)), (215, tensor(0.8649)), (157, tensor(0.8648)), (3, tensor(0.8647)), (1112, tensor(0.8646)), (56, tensor(0.8644)), (179, tensor(0.8644)), (277, tensor(0.8644)), (333, tensor(0.8644)), (106, tensor(0.8643)), (221, tensor(0.8643)), (164, tensor(0.8643)), (915, tensor(0.8642)), (924, tensor(0.8642)), (182, tensor(0.8641)), (123, tensor(0.8639)), (124, tensor(0.8639)), (24, tensor(0.8637)), (747, tensor(0.8635)), (81, tensor(0.8633)), (955, tensor(0.8632)), (355, tensor(0.8631)), (335, tensor(0.8628)), (428, tensor(0.8628)), (25, tensor(0.8628)), (731, tensor(0.8628)), (1172, tensor(0.8627)), (1106, tensor(0.8627)), (479, tensor(0.8626)), (59, tensor(0.8625)), (464, tensor(0.8625)), (471, tensor(0.8625)), (336, tensor(0.8625)), (427, tensor(0.8624)), (1107, tensor(0.8621)), (922, tensor(0.8621)), (735, tensor(0.8621)), (298, tensor(0.8619)), (760, tensor(0.8619)), (438, tensor(0.8617)), (394, tensor(0.8617)), (1035, tensor(0.8617)), (108, tensor(0.8616)), (197, tensor(0.8614)), (56, tensor(0.8613)), (1022, tensor(0.8613)), (719, tensor(0.8613)), (168, tensor(0.8612)), (121, tensor(0.8610)), (531, tensor(0.8609)), (146, tensor(0.8609)), (1063, tensor(0.8607)), (53, tensor(0.8607)), (691, tensor(0.8605)), (224, tensor(0.8604)), (788, tensor(0.8604)), (789, tensor(0.8604)), (354, tensor(0.8603)), (1060, tensor(0.8603)), (242, tensor(0.8602)), (730, tensor(0.8602)), (883, tensor(0.8601)), (152, tensor(0.8600)), (459, tensor(0.8598)), (1203, tensor(0.8598)), (843, tensor(0.8597)), (515, tensor(0.8597)), (787, tensor(0.8595)), (103, tensor(0.8594)), (618, tensor(0.8594)), (619, tensor(0.8594)), (620, tensor(0.8594)), (621, tensor(0.8594)), (209, tensor(0.8593)), (1116, tensor(0.8592)), (827, tensor(0.8592)), (77, tensor(0.8590)), (973, tensor(0.8589)), (428, tensor(0.8589)), (1205, tensor(0.8588)), (257, tensor(0.8588)), (35, tensor(0.8587)), (648, tensor(0.8587)), (491, tensor(0.8586)), (49, tensor(0.8585)), (313, tensor(0.8584)), (117, tensor(0.8584)), (173, tensor(0.8583)), (1033, tensor(0.8583)), (743, tensor(0.8583)), (925, tensor(0.8582)), (145, tensor(0.8580)), (1095, tensor(0.8579)), (376, tensor(0.8579)), (436, tensor(0.8578)), (842, tensor(0.8578)), (944, tensor(0.8578)), (1104, tensor(0.8577)), (1040, tensor(0.8577)), (466, tensor(0.8576)), (6, tensor(0.8574)), (357, tensor(0.8574)), (329, tensor(0.8573)), (204, tensor(0.8572)), (589, tensor(0.8572)), (174, tensor(0.8572)), (52, tensor(0.8569)), (653, tensor(0.8567)), (163, tensor(0.8564)), (673, tensor(0.8563)), (461, tensor(0.8562)), (1152, tensor(0.8557)), (256, tensor(0.8556)), (562, tensor(0.8556)), (469, tensor(0.8556)), (48, tensor(0.8556)), (48, tensor(0.8556)), (110, tensor(0.8555)), (88, tensor(0.8555)), (17, tensor(0.8554)), (684, tensor(0.8554)), (681, tensor(0.8553)), (798, tensor(0.8552)), (892, tensor(0.8550)), (960, tensor(0.8549)), (361, tensor(0.8548)), (197, tensor(0.8545)), (199, tensor(0.8545)), (144, tensor(0.8544)), (203, tensor(0.8544)), (310, tensor(0.8543)), (311, tensor(0.8543)), (430, tensor(0.8543)), (7, tensor(0.8539)), (916, tensor(0.8538)), (763, tensor(0.8536)), (712, tensor(0.8535)), (672, tensor(0.8534)), (211, tensor(0.8533)), (651, tensor(0.8533)), (934, tensor(0.8532)), (261, tensor(0.8532)), (713, tensor(0.8531)), (540, tensor(0.8528)), (13, tensor(0.8528)), (374, tensor(0.8526)), (598, tensor(0.8522)), (1210, tensor(0.8521)), (1066, tensor(0.8521)), (8, tensor(0.8520)), (512, tensor(0.8518)), (2, tensor(0.8518)), (782, tensor(0.8518)), (165, tensor(0.8517)), (625, tensor(0.8515)), (362, tensor(0.8513)), (320, tensor(0.8513)), (638, tensor(0.8512)), (956, tensor(0.8512)), (463, tensor(0.8512)), (307, tensor(0.8511)), (493, tensor(0.8511)), (494, tensor(0.8511)), (495, tensor(0.8511)), (665, tensor(0.8509)), (1087, tensor(0.8508)), (484, tensor(0.8508)), (160, tensor(0.8507)), (161, tensor(0.8507)), (7, tensor(0.8505)), (592, tensor(0.8505)), (81, tensor(0.8505)), (771, tensor(0.8505)), (360, tensor(0.8505)), (297, tensor(0.8504)), (502, tensor(0.8504)), (701, tensor(0.8503)), (663, tensor(0.8501)), (169, tensor(0.8500)), (26, tensor(0.8500)), (102, tensor(0.8498)), (381, tensor(0.8498)), (167, tensor(0.8497)), (929, tensor(0.8496)), (378, tensor(0.8496)), (518, tensor(0.8495)), (226, tensor(0.8495)), (683, tensor(0.8495)), (522, tensor(0.8494)), (577, tensor(0.8493)), (1192, tensor(0.8492)), (184, tensor(0.8492)), (370, tensor(0.8492)), (979, tensor(0.8491)), (349, tensor(0.8491)), (983, tensor(0.8491)), (474, tensor(0.8490)), (333, tensor(0.8489)), (451, tensor(0.8489)), (12, tensor(0.8488)), (148, tensor(0.8488)), (54, tensor(0.8488)), (273, tensor(0.8486)), (448, tensor(0.8486)), (289, tensor(0.8485)), (442, tensor(0.8485)), (845, tensor(0.8485)), (444, tensor(0.8484)), (834, tensor(0.8484)), (551, tensor(0.8482)), (901, tensor(0.8482)), (599, tensor(0.8481)), (261, tensor(0.8481)), (131, tensor(0.8480)), (311, tensor(0.8473)), (207, tensor(0.8473)), (517, tensor(0.8472)), (742, tensor(0.8471)), (610, tensor(0.8471)), (220, tensor(0.8466)), (460, tensor(0.8466)), (210, tensor(0.8466)), (142, tensor(0.8466)), (136, tensor(0.8465)), (8, tensor(0.8465)), (777, tensor(0.8465)), (434, tensor(0.8464)), (1171, tensor(0.8464)), (295, tensor(0.8463)), (276, tensor(0.8463)), (257, tensor(0.8462)), (1206, tensor(0.8460)), (716, tensor(0.8459)), (576, tensor(0.8458)), (63, tensor(0.8458)), (167, tensor(0.8458)), (932, tensor(0.8458)), (291, tensor(0.8457)), (291, tensor(0.8457)), (317, tensor(0.8457)), (837, tensor(0.8455)), (868, tensor(0.8453)), (288, tensor(0.8452)), (131, tensor(0.8452)), (14, tensor(0.8451)), (1078, tensor(0.8451)), (95, tensor(0.8451)), (336, tensor(0.8450)), (793, tensor(0.8448)), (240, tensor(0.8447)), (595, tensor(0.8447)), (990, tensor(0.8447)), (1146, tensor(0.8447)), (429, tensor(0.8446)), (481, tensor(0.8445)), (707, tensor(0.8444)), (30, tensor(0.8443)), (219, tensor(0.8441)), (579, tensor(0.8439)), (773, tensor(0.8437)), (661, tensor(0.8436)), (123, tensor(0.8435)), (70, tensor(0.8431)), (213, tensor(0.8431)), (259, tensor(0.8430)), (1006, tensor(0.8430)), (23, tensor(0.8429)), (776, tensor(0.8428)), (1121, tensor(0.8427)), (109, tensor(0.8427)), (518, tensor(0.8427)), (635, tensor(0.8426)), (483, tensor(0.8426)), (43, tensor(0.8425)), (417, tensor(0.8425)), (418, tensor(0.8425)), (5, tensor(0.8425)), (159, tensor(0.8423)), (767, tensor(0.8423)), (309, tensor(0.8419)), (119, tensor(0.8418)), (235, tensor(0.8417)), (440, tensor(0.8416)), (937, tensor(0.8415)), (371, tensor(0.8414)), (115, tensor(0.8414)), (758, tensor(0.8413)), (826, tensor(0.8412)), (278, tensor(0.8411)), (877, tensor(0.8410)), (115, tensor(0.8410)), (470, tensor(0.8408)), (470, tensor(0.8408)), (1065, tensor(0.8407)), (674, tensor(0.8404)), (526, tensor(0.8404)), (298, tensor(0.8404)), (299, tensor(0.8404)), (269, tensor(0.8402)), (270, tensor(0.8402)), (113, tensor(0.8401)), (654, tensor(0.8401)), (158, tensor(0.8400)), (238, tensor(0.8399)), (936, tensor(0.8397)), (204, tensor(0.8397)), (20, tensor(0.8396)), (14, tensor(0.8393)), (348, tensor(0.8393)), (1134, tensor(0.8392)), (808, tensor(0.8392)), (878, tensor(0.8390)), (235, tensor(0.8390)), (821, tensor(0.8389)), (830, tensor(0.8388)), (169, tensor(0.8385)), (93, tensor(0.8382)), (101, tensor(0.8381)), (275, tensor(0.8380)), (266, tensor(0.8379)), (958, tensor(0.8376)), (680, tensor(0.8375)), (152, tensor(0.8374)), (1160, tensor(0.8374)), (1158, tensor(0.8374)), (19, tensor(0.8373)), (414, tensor(0.8373)), (135, tensor(0.8371)), (422, tensor(0.8371)), (685, tensor(0.8370)), (902, tensor(0.8370)), (515, tensor(0.8366)), (350, tensor(0.8366)), (671, tensor(0.8364)), (1, tensor(0.8363)), (1, tensor(0.8363)), (435, tensor(0.8363)), (356, tensor(0.8363)), (465, tensor(0.8361)), (806, tensor(0.8358)), (893, tensor(0.8356)), (825, tensor(0.8356)), (1200, tensor(0.8356)), (530, tensor(0.8355)), (251, tensor(0.8355)), (766, tensor(0.8354)), (128, tensor(0.8353)), (272, tensor(0.8350)), (453, tensor(0.8349)), (745, tensor(0.8349)), (10, tensor(0.8348)), (689, tensor(0.8348)), (900, tensor(0.8348)), (301, tensor(0.8347)), (99, tensor(0.8346)), (506, tensor(0.8344)), (386, tensor(0.8343)), (420, tensor(0.8343)), (243, tensor(0.8342)), (513, tensor(0.8341)), (565, tensor(0.8341)), (66, tensor(0.8338)), (705, tensor(0.8338)), (304, tensor(0.8338)), (688, tensor(0.8337)), (156, tensor(0.8336)), (404, tensor(0.8335)), (312, tensor(0.8334)), (847, tensor(0.8331)), (751, tensor(0.8331)), (278, tensor(0.8327)), (42, tensor(0.8325)), (1170, tensor(0.8325)), (740, tensor(0.8324)), (187, tensor(0.8323)), (501, tensor(0.8323)), (501, tensor(0.8314)), (614, tensor(0.8314)), (185, tensor(0.8313)), (185, tensor(0.8313)), (227, tensor(0.8313)), (43, tensor(0.8313)), (952, tensor(0.8312)), (817, tensor(0.8308)), (814, tensor(0.8308)), (39, tensor(0.8308)), (439, tensor(0.8307)), (1101, tensor(0.8307)), (292, tensor(0.8304)), (292, tensor(0.8304)), (207, tensor(0.8304)), (687, tensor(0.8304)), (318, tensor(0.8302)), (143, tensor(0.8301)), (559, tensor(0.8299)), (87, tensor(0.8298)), (411, tensor(0.8297)), (706, tensor(0.8297)), (32, tensor(0.8296)), (35, tensor(0.8296)), (15, tensor(0.8294)), (948, tensor(0.8294)), (948, tensor(0.8294)), (302, tensor(0.8293)), (303, tensor(0.8293)), (304, tensor(0.8293)), (649, tensor(0.8292)), (343, tensor(0.8290)), (463, tensor(0.8289)), (464, tensor(0.8289)), (109, tensor(0.8288)), (376, tensor(0.8287)), (377, tensor(0.8287)), (739, tensor(0.8284)), (399, tensor(0.8284)), (508, tensor(0.8284)), (89, tensor(0.8282)), (422, tensor(0.8280)), (423, tensor(0.8280)), (120, tensor(0.8280)), (108, tensor(0.8280)), (953, tensor(0.8278)), (907, tensor(0.8277)), (2, tensor(0.8274)), (213, tensor(0.8274)), (451, tensor(0.8273)), (389, tensor(0.8273)), (738, tensor(0.8272)), (441, tensor(0.8269)), (668, tensor(0.8264)), (875, tensor(0.8264)), (137, tensor(0.8264)), (214, tensor(0.8261)), (1067, tensor(0.8260)), (436, tensor(0.8260)), (560, tensor(0.8256)), (9, tensor(0.8253)), (33, tensor(0.8252)), (34, tensor(0.8252)), (940, tensor(0.8250)), (250, tensor(0.8248)), (91, tensor(0.8248)), (300, tensor(0.8247)), (539, tensor(0.8246)), (467, tensor(0.8244)), (1058, tensor(0.8242)), (711, tensor(0.8239)), (881, tensor(0.8238)), (527, tensor(0.8236)), (770, tensor(0.8235)), (590, tensor(0.8235)), (803, tensor(0.8230)), (591, tensor(0.8229)), (31, tensor(0.8227)), (63, tensor(0.8227)), (855, tensor(0.8226)), (1211, tensor(0.8225)), (749, tensor(0.8224)), (432, tensor(0.8224)), (839, tensor(0.8224)), (506, tensor(0.8222)), (62, tensor(0.8219)), (446, tensor(0.8217)), (160, tensor(0.8217)), (4, tensor(0.8211)), (41, tensor(0.8211)), (991, tensor(0.8211)), (917, tensor(0.8205)), (670, tensor(0.8204)), (800, tensor(0.8202)), (529, tensor(0.8202)), (582, tensor(0.8201)), (1026, tensor(0.8200)), (176, tensor(0.8200)), (403, tensor(0.8198)), (404, tensor(0.8198)), (631, tensor(0.8194)), (82, tensor(0.8193)), (957, tensor(0.8192)), (1177, tensor(0.8191)), (226, tensor(0.8191)), (431, tensor(0.8188)), (1166, tensor(0.8188)), (1164, tensor(0.8186)), (496, tensor(0.8184)), (642, tensor(0.8177)), (13, tensor(0.8175)), (14, tensor(0.8175)), (987, tensor(0.8173)), (718, tensor(0.8173)), (12, tensor(0.8171)), (58, tensor(0.8169)), (148, tensor(0.8169)), (24, tensor(0.8169)), (325, tensor(0.8167)), (678, tensor(0.8166)), (908, tensor(0.8166)), (655, tensor(0.8166)), (28, tensor(0.8165)), (103, tensor(0.8163)), (104, tensor(0.8163)), (516, tensor(0.8161)), (178, tensor(0.8159)), (52, tensor(0.8154)), (192, tensor(0.8149)), (652, tensor(0.8149)), (146, tensor(0.8148)), (147, tensor(0.8148)), (859, tensor(0.8146)), (20, tensor(0.8145)), (637, tensor(0.8140)), (340, tensor(0.8139)), (992, tensor(0.8139)), (964, tensor(0.8138)), (82, tensor(0.8138)), (136, tensor(0.8137)), (155, tensor(0.8135)), (1071, tensor(0.8135)), (1092, tensor(0.8134)), (379, tensor(0.8133)), (305, tensor(0.8132)), (11, tensor(0.8131)), (18, tensor(0.8130)), (23, tensor(0.8126)), (318, tensor(0.8125)), (106, tensor(0.8122)), (106, tensor(0.8122)), (564, tensor(0.8112)), (164, tensor(0.8109)), (795, tensor(0.8107)), (65, tensor(0.8102)), (623, tensor(0.8095)), (187, tensor(0.8093)), (514, tensor(0.8092)), (223, tensor(0.8089)), (323, tensor(0.8089)), (799, tensor(0.8089)), (357, tensor(0.8089)), (593, tensor(0.8086)), (170, tensor(0.8083)), (737, tensor(0.8083)), (408, tensor(0.8082)), (794, tensor(0.8080)), (236, tensor(0.8079)), (188, tensor(0.8077)), (967, tensor(0.8076)), (1069, tensor(0.8076)), (26, tensor(0.8075)), (1008, tensor(0.8073)), (746, tensor(0.8072)), (575, tensor(0.8070)), (831, tensor(0.8069)), (192, tensor(0.8064)), (145, tensor(0.8062)), (274, tensor(0.8058)), (104, tensor(0.8058)), (47, tensor(0.8057)), (802, tensor(0.8057)), (390, tensor(0.8056)), (605, tensor(0.8055)), (529, tensor(0.8052)), (111, tensor(0.8049)), (150, tensor(0.8048)), (370, tensor(0.8044)), (186, tensor(0.8043)), (188, tensor(0.8043)), (189, tensor(0.8043)), (57, tensor(0.8039)), (22, tensor(0.8038)), (442, tensor(0.8038)), (541, tensor(0.8038)), (394, tensor(0.8034)), (6, tensor(0.8034)), (851, tensor(0.8028)), (480, tensor(0.8027)), (481, tensor(0.8027)), (482, tensor(0.8027)), (664, tensor(0.8023)), (95, tensor(0.8021)), (1180, tensor(0.8020)), (732, tensor(0.8020)), (120, tensor(0.8011)), (1091, tensor(0.8011)), (373, tensor(0.8011)), (182, tensor(0.8010)), (811, tensor(0.8010)), (708, tensor(0.8008)), (754, tensor(0.7999)), (646, tensor(0.7991)), (844, tensor(0.7988)), (657, tensor(0.7988)), (430, tensor(0.7987)), (345, tensor(0.7979)), (90, tensor(0.7979)), (206, tensor(0.7977)), (265, tensor(0.7975)), (468, tensor(0.7972)), (1098, tensor(0.7970)), (525, tensor(0.7963)), (813, tensor(0.7952)), (240, tensor(0.7952)), (667, tensor(0.7951)), (186, tensor(0.7943)), (77, tensor(0.7942)), (338, tensor(0.7939)), (29, tensor(0.7939)), (24, tensor(0.7931)), (25, tensor(0.7931)), (26, tensor(0.7931)), (27, tensor(0.7931)), (437, tensor(0.7930)), (44, tensor(0.7928)), (102, tensor(0.7924)), (242, tensor(0.7923)), (479, tensor(0.7910)), (260, tensor(0.7908)), (410, tensor(0.7905)), (553, tensor(0.7905)), (848, tensor(0.7897)), (46, tensor(0.7889)), (1072, tensor(0.7887)), (5, tensor(0.7886)), (783, tensor(0.7885)), (829, tensor(0.7879)), (74, tensor(0.7873)), (986, tensor(0.7869)), (658, tensor(0.7860)), (196, tensor(0.7858)), (220, tensor(0.7856)), (505, tensor(0.7841)), (643, tensor(0.7839)), (478, tensor(0.7835)), (478, tensor(0.7835)), (949, tensor(0.7834)), (727, tensor(0.7832)), (121, tensor(0.7816)), (45, tensor(0.7809)), (244, tensor(0.7803)), (424, tensor(0.7802)), (828, tensor(0.7802)), (561, tensor(0.7795)), (846, tensor(0.7788)), (96, tensor(0.7784)), (97, tensor(0.7784)), (697, tensor(0.7783)), (634, tensor(0.7773)), (215, tensor(0.7756)), (216, tensor(0.7756)), (369, tensor(0.7737)), (53, tensor(0.7731)), (202, tensor(0.7684)), (682, tensor(0.7680)), (581, tensor(0.7665)), (372, tensor(0.7662)), (656, tensor(0.7646)), (183, tensor(0.7607)), (133, tensor(0.7605)), (358, tensor(0.7527)), (669, tensor(0.7504)), (741, tensor(0.7495)), (421, tensor(0.7487)), (1125, tensor(0.7479)), (23, tensor(0.7433)), (1014, tensor(0.7430)), (659, tensor(0.7426)), (144, tensor(0.7420)), (39, tensor(0.6817))]\n" - ] - } - ], - "source": [ - "lista_similaridade = []\n", - "\n", - "for indice, tupla_tema in enumerate(embeddings_temas):\n", - " cos = nn.CosineSimilarity(dim=0, eps=1e-6)\n", - " #primeiro elemento da tupla contem o número do tem e o segundo o texto do tema\n", - " similaridade = cos(embedding_resp,tupla_tema[1])\n", - " tupla = (tupla_tema[0],similaridade)\n", - " lista_similaridade.append(tupla)\n", - "\n", - "print(sort_list(lista_similaridade))\n", - "\n" - ] - }, - { - "cell_type": "code", - "source": [ - "print(dicionario_temas)" - ], - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/" - }, - "id": "BeRmU7pmZD62", - "outputId": "8865d750-85e0-4a1e-f30f-824434c15c91" - }, - "execution_count": null, - "outputs": [ - { - "output_type": "stream", - "name": "stdout", - "text": [ - " Campo Nome extenso \\\n", - "0 sequencialPrecedente Número sequencial do precedente qualificado \n", - "1 tipoPrecedente Tipo de precedente qualificado \n", - "2 numeroPrecedente Número do precedente qualificado \n", - "3 dataPrimeiraAfetacao Data da primeira afetação \n", - "4 dataJulgamento Data de julgamento \n", - "5 situacao Situação \n", - "6 informacoesComplementares Informações complementares \n", - "7 questaoSubmetidaAJulgamento Questão submetida a julgamento \n", - "8 teseFirmada Tese firmada \n", - "9 anotacoesNUGEPNAC Anotações NUGEPNAC \n", - "10 delimitacaoJulgado Delimitação do julgado \n", - "11 entendimentoAnterior Entendimento anterior \n", - "12 referenciaLegislativa Referência legislativa \n", - "13 referenciaSumular Referência sumular \n", - "14 sumulaOriginada Súmula originada do tema \n", - "15 audienciaPublica Audiência pública \n", - "16 dataAudienciaPublica Data da audiência pública \n", - "17 orgaoJulgador Órgão julgador \n", - "18 Assuntos Assuntos \n", - "19 numeroRepercussaoGeralSTF Número de Repercussão geral \n", - "20 descricaoRepercussaoGeral Descrição sobre a repercussão Geral \n", - "\n", - " Descrição \n", - "0 Número sequencial atribuído pelo banco de dado... \n", - "1 Classificação dada ao precedente qualificado, ... \n", - "2 Número sequencial crescente dado ao precedente... \n", - "3 Data de quando ocorreu a decisão da primeira a... \n", - "4 Data em que ocorreu o julgamento do tema. \n", - "5 Situação atual do precedente qualificado. \n", - "6 Informações complementares relativas ao preced... \n", - "7 Questão jurídica constante dos processos/recur... \n", - "8 Tese jurídica firmada pelo órgão colegiado com... \n", - "9 Anotações relevantes sobre o precedente qualif... \n", - "10 Informações pertinentes à delimitação da quest... \n", - "11 Entendimento firmado em precedente qualificado... \n", - "12 Conjunto de normas jurídicas - leis, decretos,... \n", - "13 Súmulas utilizadas como fundamento no julgamen... \n", - "14 Súmulas que foram originadas/criadas em decorr... \n", - "15 Informação de que antes do julgamento do tema/... \n", - "16 Data em que foi realizada a audiência pública ... \n", - "17 Órgão do STJ que foi determinado regimentalmen... \n", - "18 Assuntos relacionados á questão jurídica discu... \n", - "19 Número do tema de Repercussão Geral do STF cor... \n", - "20 Descrição dos temas e recursos que tiveram rep... \n" - ] - } - ] - }, - { - "cell_type": "code", - "source": [], - "metadata": { - "id": "kI9AC2WoZc0x" - }, - "execution_count": null, - "outputs": [] - } - ], - "metadata": { - "colab": { - "provenance": [] - }, - "kernelspec": { - "display_name": "Python 3", - "name": "python3" - }, - "language_info": { - "name": "python" - } - }, - "nbformat": 4, - "nbformat_minor": 0 -} \ No newline at end of file