├── figures ├── figure_1.png ├── figure_1.tif ├── figure_2.png ├── figure_2.pptx ├── figure_2.tif ├── figure_3.png ├── figure_3.tif ├── figure_4.png └── figure_4.tif ├── code ├── bigbird-jus │ ├── spiece.model │ ├── training_args.bin │ ├── all_results.json │ ├── train_results.json │ ├── special_tokens_map.json │ ├── config.json │ └── tokenizer_config.json ├── predictions │ ├── raw-BERT_LSTM-test.joblib │ ├── raw-BigBird-humans.joblib │ ├── raw-BigBird-test.joblib │ ├── raw-BERT_LSTM-humans.joblib │ ├── raw-ULMFiT-bwd-test.joblib │ ├── raw-ULMFiT-fwd-test.joblib │ ├── raw-ULMFiT-bidir-humans.joblib │ ├── raw-ULMFiT-bidir-test.joblib │ ├── raw-ULMFiT-bwd-humans.joblib │ ├── raw-ULMFiT-fwd-humans.joblib │ ├── BigBird-humans.csv │ └── BERT_LSTM-humans.csv ├── general_portuguese_language_models │ └── ulmfit │ │ ├── vocab-bwd.joblib │ │ ├── vocab-fwd.joblib │ │ ├── vocab-fwd.pickle │ │ ├── pt_wt_vocab_60k_ulmfit_bwd.pkl │ │ └── pt_wt_vocab_60k_ulmfit_fwd.pkl ├── 03-train_bigbird.sh ├── 04-train_bert_lstm.sh ├── environment.yaml ├── bigbird.py ├── bert_lstm.py └── 07-generate_expert_information.ipynb ├── LICENSE ├── data ├── human_experts_data.csv └── expert_label_identification.csv ├── README.md └── .gitignore /figures/figure_1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eliasjacob/paper_brcad5/HEAD/figures/figure_1.png -------------------------------------------------------------------------------- /figures/figure_1.tif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eliasjacob/paper_brcad5/HEAD/figures/figure_1.tif -------------------------------------------------------------------------------- /figures/figure_2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eliasjacob/paper_brcad5/HEAD/figures/figure_2.png -------------------------------------------------------------------------------- /figures/figure_2.pptx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eliasjacob/paper_brcad5/HEAD/figures/figure_2.pptx -------------------------------------------------------------------------------- /figures/figure_2.tif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eliasjacob/paper_brcad5/HEAD/figures/figure_2.tif -------------------------------------------------------------------------------- /figures/figure_3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eliasjacob/paper_brcad5/HEAD/figures/figure_3.png -------------------------------------------------------------------------------- /figures/figure_3.tif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eliasjacob/paper_brcad5/HEAD/figures/figure_3.tif -------------------------------------------------------------------------------- /figures/figure_4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eliasjacob/paper_brcad5/HEAD/figures/figure_4.png -------------------------------------------------------------------------------- /figures/figure_4.tif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eliasjacob/paper_brcad5/HEAD/figures/figure_4.tif -------------------------------------------------------------------------------- /code/bigbird-jus/spiece.model: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eliasjacob/paper_brcad5/HEAD/code/bigbird-jus/spiece.model -------------------------------------------------------------------------------- /code/bigbird-jus/training_args.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eliasjacob/paper_brcad5/HEAD/code/bigbird-jus/training_args.bin -------------------------------------------------------------------------------- /code/predictions/raw-BERT_LSTM-test.joblib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eliasjacob/paper_brcad5/HEAD/code/predictions/raw-BERT_LSTM-test.joblib -------------------------------------------------------------------------------- /code/predictions/raw-BigBird-humans.joblib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eliasjacob/paper_brcad5/HEAD/code/predictions/raw-BigBird-humans.joblib -------------------------------------------------------------------------------- /code/predictions/raw-BigBird-test.joblib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eliasjacob/paper_brcad5/HEAD/code/predictions/raw-BigBird-test.joblib -------------------------------------------------------------------------------- /code/predictions/raw-BERT_LSTM-humans.joblib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eliasjacob/paper_brcad5/HEAD/code/predictions/raw-BERT_LSTM-humans.joblib -------------------------------------------------------------------------------- /code/predictions/raw-ULMFiT-bwd-test.joblib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eliasjacob/paper_brcad5/HEAD/code/predictions/raw-ULMFiT-bwd-test.joblib -------------------------------------------------------------------------------- /code/predictions/raw-ULMFiT-fwd-test.joblib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eliasjacob/paper_brcad5/HEAD/code/predictions/raw-ULMFiT-fwd-test.joblib -------------------------------------------------------------------------------- /code/predictions/raw-ULMFiT-bidir-humans.joblib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eliasjacob/paper_brcad5/HEAD/code/predictions/raw-ULMFiT-bidir-humans.joblib -------------------------------------------------------------------------------- /code/predictions/raw-ULMFiT-bidir-test.joblib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eliasjacob/paper_brcad5/HEAD/code/predictions/raw-ULMFiT-bidir-test.joblib -------------------------------------------------------------------------------- /code/predictions/raw-ULMFiT-bwd-humans.joblib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eliasjacob/paper_brcad5/HEAD/code/predictions/raw-ULMFiT-bwd-humans.joblib -------------------------------------------------------------------------------- /code/predictions/raw-ULMFiT-fwd-humans.joblib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eliasjacob/paper_brcad5/HEAD/code/predictions/raw-ULMFiT-fwd-humans.joblib -------------------------------------------------------------------------------- /code/general_portuguese_language_models/ulmfit/vocab-bwd.joblib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eliasjacob/paper_brcad5/HEAD/code/general_portuguese_language_models/ulmfit/vocab-bwd.joblib -------------------------------------------------------------------------------- /code/general_portuguese_language_models/ulmfit/vocab-fwd.joblib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eliasjacob/paper_brcad5/HEAD/code/general_portuguese_language_models/ulmfit/vocab-fwd.joblib -------------------------------------------------------------------------------- /code/general_portuguese_language_models/ulmfit/vocab-fwd.pickle: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eliasjacob/paper_brcad5/HEAD/code/general_portuguese_language_models/ulmfit/vocab-fwd.pickle -------------------------------------------------------------------------------- /code/general_portuguese_language_models/ulmfit/pt_wt_vocab_60k_ulmfit_bwd.pkl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eliasjacob/paper_brcad5/HEAD/code/general_portuguese_language_models/ulmfit/pt_wt_vocab_60k_ulmfit_bwd.pkl -------------------------------------------------------------------------------- /code/general_portuguese_language_models/ulmfit/pt_wt_vocab_60k_ulmfit_fwd.pkl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eliasjacob/paper_brcad5/HEAD/code/general_portuguese_language_models/ulmfit/pt_wt_vocab_60k_ulmfit_fwd.pkl -------------------------------------------------------------------------------- /code/03-train_bigbird.sh: -------------------------------------------------------------------------------- 1 | python3 bigbird.py \ 2 | --accumulate_grad_batches=2 \ 3 | --drop_mult=0.3 \ 4 | --gradient_clip_val=10.0 \ 5 | --lr=0.0003 \ 6 | --stochastic_weight_avg=True \ 7 | --thresh_step=0.49 \ 8 | --use_special_classifier=none \ 9 | --project_name=predicting_outcome_appeals \ 10 | --experiment_name=bigbird \ 11 | --batch_size=8 \ 12 | --epochs=15 \ 13 | --lowercase=false \ 14 | --train_path=../data/train_en.parquet \ 15 | --valid_path=../data/valid_en.parquet \ 16 | --test_path=../data/test_en.parquet -------------------------------------------------------------------------------- /code/bigbird-jus/all_results.json: -------------------------------------------------------------------------------- 1 | { 2 | "epoch": 10.0, 3 | "init_mem_cpu_alloc_delta": -153010176, 4 | "init_mem_cpu_peaked_delta": 153120768, 5 | "init_mem_gpu_alloc_delta": 522415616, 6 | "init_mem_gpu_peaked_delta": 0, 7 | "train_mem_cpu_alloc_delta": 31320449024, 8 | "train_mem_cpu_peaked_delta": 393580544, 9 | "train_mem_gpu_alloc_delta": 676287488, 10 | "train_mem_gpu_peaked_delta": 9676146176, 11 | "train_runtime": 550836.9188, 12 | "train_samples": 235458, 13 | "train_samples_per_second": 0.017 14 | } -------------------------------------------------------------------------------- /code/bigbird-jus/train_results.json: -------------------------------------------------------------------------------- 1 | { 2 | "epoch": 10.0, 3 | "init_mem_cpu_alloc_delta": -153010176, 4 | "init_mem_cpu_peaked_delta": 153120768, 5 | "init_mem_gpu_alloc_delta": 522415616, 6 | "init_mem_gpu_peaked_delta": 0, 7 | "train_mem_cpu_alloc_delta": 31320449024, 8 | "train_mem_cpu_peaked_delta": 393580544, 9 | "train_mem_gpu_alloc_delta": 676287488, 10 | "train_mem_gpu_peaked_delta": 9676146176, 11 | "train_runtime": 550836.9188, 12 | "train_samples": 235458, 13 | "train_samples_per_second": 0.017 14 | } -------------------------------------------------------------------------------- /code/04-train_bert_lstm.sh: -------------------------------------------------------------------------------- 1 | python3 bert_lstm.py \ 2 | --accumulate_grad_batches=3 \ 3 | --bert_batch_size=15 \ 4 | --bidir_lstm=False \ 5 | --distil_init=False \ 6 | --drop_mult=0.1 \ 7 | --gradient_clip_val=0.0 \ 8 | --lr=3e-4 \ 9 | --lr_divider=15 \ 10 | --n_layers_lstm=1 \ 11 | --output_lstm_size=1536 \ 12 | --stochastic_weight_avg=True \ 13 | --thresh_step=0.49 \ 14 | --use_special_classifier=none \ 15 | --project_name=predicting_outcome_appeals \ 16 | --experiment_name=bert_lstm \ 17 | --batch_size=8 \ 18 | --epochs=8 \ 19 | --lowercase=false \ 20 | --train_path=../data/train_en.parquet \ 21 | --valid_path=../data/valid_en.parquet \ 22 | --test_path=../data/test_en.parquet 23 | -------------------------------------------------------------------------------- /code/bigbird-jus/special_tokens_map.json: -------------------------------------------------------------------------------- 1 | {"bos_token": {"content": "", "single_word": false, "lstrip": false, "rstrip": false, "normalized": true}, "eos_token": {"content": "", "single_word": false, "lstrip": false, "rstrip": false, "normalized": true}, "unk_token": {"content": "", "single_word": false, "lstrip": false, "rstrip": false, "normalized": true}, "sep_token": {"content": "[SEP]", "single_word": false, "lstrip": false, "rstrip": false, "normalized": true}, "pad_token": {"content": "", "single_word": false, "lstrip": false, "rstrip": false, "normalized": true}, "cls_token": {"content": "[CLS]", "single_word": false, "lstrip": false, "rstrip": false, "normalized": true}, "mask_token": {"content": "[MASK]", "single_word": false, "lstrip": true, "rstrip": false, "normalized": true}} -------------------------------------------------------------------------------- /code/bigbird-jus/config.json: -------------------------------------------------------------------------------- 1 | { 2 | "_name_or_path": "./modelo_original", 3 | "architectures": [ 4 | "BigBirdForMaskedLM" 5 | ], 6 | "attention_probs_dropout_prob": 0.1, 7 | "attention_type": "block_sparse", 8 | "block_size": 64, 9 | "bos_token_id": 1, 10 | "eos_token_id": 2, 11 | "gradient_checkpointing": false, 12 | "hidden_act": "gelu_new", 13 | "hidden_dropout_prob": 0.1, 14 | "hidden_size": 768, 15 | "initializer_range": 0.02, 16 | "intermediate_size": 3072, 17 | "layer_norm_eps": 1e-12, 18 | "max_position_embeddings": 7680, 19 | "model_type": "big_bird", 20 | "num_attention_heads": 12, 21 | "num_hidden_layers": 12, 22 | "num_random_blocks": 3, 23 | "pad_token_id": 3, 24 | "position_embedding_type": "absolute", 25 | "rescale_embeddings": false, 26 | "sep_token_id": 4, 27 | "transformers_version": "4.6.1", 28 | "type_vocab_size": 2, 29 | "use_bias": true, 30 | "use_cache": true, 31 | "vocab_size": 50000 32 | } 33 | -------------------------------------------------------------------------------- /code/bigbird-jus/tokenizer_config.json: -------------------------------------------------------------------------------- 1 | {"bos_token": {"content": "", "single_word": false, "lstrip": false, "rstrip": false, "normalized": true, "__type": "AddedToken"}, "eos_token": {"content": "", "single_word": false, "lstrip": false, "rstrip": false, "normalized": true, "__type": "AddedToken"}, "unk_token": {"content": "", "single_word": false, "lstrip": false, "rstrip": false, "normalized": true, "__type": "AddedToken"}, "pad_token": {"content": "", "single_word": false, "lstrip": false, "rstrip": false, "normalized": true, "__type": "AddedToken"}, "sep_token": {"content": "[SEP]", "single_word": false, "lstrip": false, "rstrip": false, "normalized": true, "__type": "AddedToken"}, "mask_token": {"content": "[MASK]", "single_word": false, "lstrip": true, "rstrip": false, "normalized": true, "__type": "AddedToken"}, "cls_token": {"content": "[CLS]", "single_word": false, "lstrip": false, "rstrip": false, "normalized": true, "__type": "AddedToken"}, "special_tokens_map_file": "./bigbird-tokenizer/special_tokens_map.json", "tokenizer_file": "./bigbird-tokenizer/tokenizer.json", "name_or_path": "./bigbird-tokenizer"} -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2022 Elias Jacob 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /data/human_experts_data.csv: -------------------------------------------------------------------------------- 1 | user_id,role,years_experience_judiciary,years_experience_federal_small_claims_courts,years_higher_legal_education 2 | volunt01,Federal Judge,6.0,2.0,6.5 3 | volunt02,Federal Judge,16.0,15.0,9.0 4 | volunt03,Federal Judge,9.0,9.0,5.0 5 | volunt04,Analyst (Clerk),4.5,4.5,6.5 6 | volunt05,Analyst (Clerk),8.0,3.0,5.0 7 | volunt06,Technical (Clerk),8.0,8.0,6.5 8 | volunt07,Analyst (Clerk),7.0,4.0,6.5 9 | volunt08,Federal Judge,12.0,2.0,5.0 10 | volunt09,Analyst (Clerk),5.0,5.0,6.5 11 | volunt10,Analyst (Clerk),8.0,8.0,6.5 12 | volunt11,Analyst (Clerk),8.0,8.0,6.5 13 | volunt12,Technical (Clerk),16.0,16.0,6.5 14 | volunt13,Technical (Clerk),10.0,7.0,6.5 15 | volunt14,Analyst (Clerk),17.0,17.0,6.5 16 | volunt15,Technical (Clerk),27.0,18.0,6.5 17 | volunt16,Technical (Clerk),16.0,13.0,6.5 18 | volunt17,Analyst (Clerk),6.0,6.0,6.5 19 | volunt18,Analyst (Clerk),11.0,8.0,6.5 20 | volunt19,Analyst (Clerk),9.0,9.0,6.5 21 | volunt20,Federal Judge,9.0,9.0,7.0 22 | volunt21,Federal Judge,9.0,9.0,7.0 23 | volunt22,Technical (Clerk),8.0,8.0,6.5 24 | volunt23,Technical (Clerk),16.0,4.0,6.5 25 | volunt24,Technical (Clerk),10.0,5.0,6.5 26 | volunt25,Analyst (Clerk),8.0,5.0,6.5 27 | volunt26,Analyst (Clerk),8.0,2.0,6.5 28 | volunt27,Analyst (Clerk),24.0,3.0,6.5 29 | volunt28,Technical (Clerk),17.0,4.0,6.5 30 | volunt29,Analyst (Clerk),22.0,9.0,6.5 31 | volunt30,Analyst (Clerk),6.0,3.0,6.5 32 | volunt31,Technical (Clerk),10.0,8.0,6.5 33 | volunt32,Technical (Clerk),22.0,7.0,5.0 34 | volunt33,Technical (Clerk),5.0,5.0,6.5 35 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 |
2 | 3 | # Using deep learning to predict outcomes of legal appeals better than human experts: A study with data from Brazilian federal courts 4 | 5 | [![Paper](https://zenodo.org/badge/doi/10.1371/journal.pone.0272287.svg)](https://doi.org/10.1371/journal.pone.0272287) 6 | [![Datasets](https://img.shields.io/badge/dataset-BrCAD5-red)](https://www.kaggle.com/datasets/eliasjacob/brcad5) 7 | 8 | 9 |
10 | 11 | ## Description 12 | Legal scholars have been trying to predict the outcomes of trials for a long time. In recent years, researchers have been harnessing advancements in machine learning to predict the behavior of natural and social processes. At the same time, the Brazilian judiciary faces a challenging number of new cases every year, which generates the need to improve the throughput of the justice system. Based on those premises, we trained three deep learning architectures, ULMFiT, BERT, and Big Bird, on 612,961 Federal Small Claims Courts appeals within the Brazilian 5th Regional Federal Court to predict their outcomes. We compare the predictive performance of the models to the predictions of 22 highly skilled experts. All models outperform human experts, with the best one achieving a Matthews Correlation Coefficient of 0.3688 compared to 0.1253 from the human experts. Our results demonstrate that natural language processing and machine learning techniques provide a promising approach for predicting legal outcomes. We also release the Brazilian Courts Appeal Dataset for the 5th Regional Federal Court (BrCAD-5), containing data from 765,602 appeals to promote further developments in this area. 13 | 14 | 15 | ## How to run 16 | 1 - Clone this project 17 | 18 | 2 - Download all the parquet and csv files from [here](https://www.kaggle.com/eliasjacob/brcad5) and place all files inside `data/` 19 | 20 | 3 - Use the same kaggle page described above to download the pretrained language models and place all files and folders inside the folder `code/` in this repository. Replace any existing files. 21 | 22 | 4 - Install the environment 23 | ```bash 24 | cd paper_brcad5 25 | conda env create --file code/environment.yaml 26 | conda activate paper_brcad5 27 | ``` 28 | 29 | 5 - See files with the name starting with numbers `01` to `07` inside the folder `code/` to reproduce our results 30 | 31 | ### Citation 32 | ``` 33 | @article{menezes-neto+clementino, 34 | title={Using deep learning to predict outcomes of legal appeals better than human experts}: A study with data from Brazilian federal courts, 35 | author=Elias Jacob de {Menezes-Neto} and Marco Bruno Miranda {Clementino}, 36 | journal={Location}, 37 | year={2022}, 38 | 39 | } 40 | ``` 41 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # Byte-compiled / optimized / DLL files 2 | __pycache__/ 3 | *.py[cod] 4 | *$py.class 5 | 6 | # C extensions 7 | *.so 8 | 9 | # Distribution / packaging 10 | .Python 11 | build/ 12 | develop-eggs/ 13 | dist/ 14 | downloads/ 15 | eggs/ 16 | .eggs/ 17 | lib/ 18 | lib64/ 19 | parts/ 20 | sdist/ 21 | var/ 22 | wheels/ 23 | pip-wheel-metadata/ 24 | share/python-wheels/ 25 | *.egg-info/ 26 | .installed.cfg 27 | *.egg 28 | MANIFEST 29 | 30 | # PyInstaller 31 | # Usually these files are written by a python script from a template 32 | # before PyInstaller builds the exe, so as to inject date/other infos into it. 33 | *.manifest 34 | *.spec 35 | 36 | # Installer logs 37 | pip-log.txt 38 | pip-delete-this-directory.txt 39 | 40 | # Unit test / coverage reports 41 | htmlcov/ 42 | .tox/ 43 | .nox/ 44 | .coverage 45 | .coverage.* 46 | .cache 47 | nosetests.xml 48 | coverage.xml 49 | *.cover 50 | *.py,cover 51 | .hypothesis/ 52 | .pytest_cache/ 53 | 54 | # Translations 55 | *.mo 56 | *.pot 57 | 58 | # Django stuff: 59 | *.log 60 | local_settings.py 61 | db.sqlite3 62 | db.sqlite3-journal 63 | 64 | # Flask stuff: 65 | instance/ 66 | .webassets-cache 67 | 68 | # Scrapy stuff: 69 | .scrapy 70 | 71 | # Sphinx documentation 72 | docs/_build/ 73 | 74 | # PyBuilder 75 | target/ 76 | 77 | # Jupyter Notebook 78 | .ipynb_checkpoints 79 | 80 | # IPython 81 | profile_default/ 82 | ipython_config.py 83 | 84 | # pyenv 85 | .python-version 86 | 87 | # pipenv 88 | # According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control. 89 | # However, in case of collaboration, if having platform-specific dependencies or dependencies 90 | # having no cross-platform support, pipenv may install dependencies that don't work, or not 91 | # install all needed dependencies. 92 | #Pipfile.lock 93 | 94 | # PEP 582; used by e.g. github.com/David-OConnor/pyflow 95 | __pypackages__/ 96 | 97 | # Celery stuff 98 | celerybeat-schedule 99 | celerybeat.pid 100 | 101 | # SageMath parsed files 102 | *.sage.py 103 | 104 | # Environments 105 | .env 106 | .venv 107 | env/ 108 | venv/ 109 | ENV/ 110 | env.bak/ 111 | venv.bak/ 112 | 113 | # Spyder project settings 114 | .spyderproject 115 | .spyproject 116 | 117 | # Rope project settings 118 | .ropeproject 119 | 120 | # mkdocs documentation 121 | /site 122 | 123 | # mypy 124 | .mypy_cache/ 125 | .dmypy.json 126 | dmypy.json 127 | 128 | # Pyre type checker 129 | .pyre/ 130 | 131 | #Files over 100mb 132 | code/bert_lstm-best.ckpt 133 | code/bigbird-best.ckpt 134 | code/bigbird-jus/pytorch_model.bin 135 | code/general_portuguese_language_models/ulmfit/pt_wt_60k_ulmfit_bwd.pth 136 | code/general_portuguese_language_models/ulmfit/pt_wt_60k_ulmfit_fwd.pth 137 | code/legal_portuguese_language_models/05-2020_fine_tuned_enc_lm_sentencas_60k_ulmfit_bwd.pth 138 | code/legal_portuguese_language_models/05-2020_fine_tuned_enc_lm_sentencas_60k_ulmfit_fwd.pth 139 | code/saved_models_ulmfit/ulmfit_backward_exported 140 | code/saved_models_ulmfit/ulmfit_forward_exported 141 | data/humans_en.parquet 142 | data/language_modeling_texts.parquet 143 | data/test_en.parquet 144 | data/train_en.parquet 145 | data/valid_en.parquet 146 | -------------------------------------------------------------------------------- /code/environment.yaml: -------------------------------------------------------------------------------- 1 | name: paper_brcad5 2 | channels: 3 | - pytorch 4 | - fastai 5 | - HuggingFace 6 | - conda-forge 7 | - defaults 8 | dependencies: 9 | - _libgcc_mutex=0.1=main 10 | - _openmp_mutex=4.5=1_gnu 11 | - abseil-cpp=20210324.0=h9c3ff4c_0 12 | - absl-py=1.0.0=pyhd8ed1ab_0 13 | - aiohttp=3.7.4.post0=py39h7f8727e_2 14 | - anyio=3.5.0=py39hf3d152e_0 15 | - argon2-cffi=21.3.0=pyhd8ed1ab_0 16 | - argon2-cffi-bindings=21.2.0=py39h7f8727e_0 17 | - arrow-cpp=4.0.0=py39h3f173ad_1_cpu 18 | - asttokens=2.0.5=pyhd8ed1ab_0 19 | - async-timeout=3.0.1=py_1000 20 | - attrs=21.4.0=pyhd3eb1b0_0 21 | - aws-c-cal=0.5.11=h95a6274_0 22 | - aws-c-common=0.6.2=h7f98852_0 23 | - aws-c-event-stream=0.2.7=h3541f99_13 24 | - aws-c-io=0.10.5=hfb6a706_0 25 | - aws-checksums=0.1.11=ha31a3da_7 26 | - aws-sdk-cpp=1.8.186=hb4091e7_3 27 | - babel=2.9.1=pyh44b312d_0 28 | - backcall=0.2.0=pyh9f0ad1d_0 29 | - backports=1.0=py_2 30 | - backports.functools_lru_cache=1.6.4=pyhd8ed1ab_0 31 | - beautifulsoup4=4.10.0=pyh06a4308_0 32 | - blas=1.0=mkl 33 | - bleach=4.1.0=pyhd8ed1ab_0 34 | - blinker=1.4=py_1 35 | - bottleneck=1.3.2=py39hdd57654_1 36 | - brotli=1.0.9=he6710b0_2 37 | - brotlipy=0.7.0=py39h27cfd23_1003 38 | - bzip2=1.0.8=h7b6447c_0 39 | - c-ares=1.18.1=h7f8727e_0 40 | - ca-certificates=2021.10.8=ha878542_0 41 | - cachetools=5.0.0=pyhd8ed1ab_0 42 | - catalogue=1.0.0=pyhd3eb1b0_0 43 | - certifi=2021.10.8=py39hf3d152e_1 44 | - cffi=1.15.0=py39hd667e15_1 45 | - chardet=4.0.0=py39hf3d152e_2 46 | - charset-normalizer=2.0.4=pyhd3eb1b0_0 47 | - click=8.0.4=py39hf3d152e_0 48 | - cramjam=2.3.1=py39h3811e60_1 49 | - cryptography=36.0.0=py39h9ce1e76_0 50 | - cudatoolkit=11.3.1=h2bc3f7f_2 51 | - cycler=0.11.0=pyhd3eb1b0_0 52 | - cymem=2.0.5=py39h2531618_0 53 | - cython-blis=0.7.4=py39h27cfd23_1 54 | - dataclasses=0.8=pyh6d0b6a4_7 55 | - datasets=1.18.3=py_0 56 | - dbus=1.13.18=hb2f20db_0 57 | - decorator=5.1.1=pyhd8ed1ab_0 58 | - defusedxml=0.7.1=pyhd8ed1ab_0 59 | - dill=0.3.4=pyhd3eb1b0_0 60 | - entrypoints=0.4=pyhd8ed1ab_0 61 | - executing=0.8.3=pyhd8ed1ab_0 62 | - expat=2.4.4=h295c915_0 63 | - fastai=1.0.61=1 64 | - fastparquet=0.7.0=py39hce5d2b2_1 65 | - fastprogress=1.0.2=py_0 66 | - ffmpeg=4.3=hf484d3e_0 67 | - filelock=3.4.2=pyhd3eb1b0_0 68 | - flit-core=3.7.1=pyhd8ed1ab_0 69 | - font-ttf-dejavu-sans-mono=2.37=hab24e00_0 70 | - font-ttf-inconsolata=3.000=h77eed37_0 71 | - font-ttf-source-code-pro=2.038=h77eed37_0 72 | - font-ttf-ubuntu=0.83=hab24e00_0 73 | - fontconfig=2.13.1=h6c09931_0 74 | - fonts-conda-forge=1=0 75 | - fonttools=4.25.0=pyhd3eb1b0_0 76 | - freetype=2.11.0=h70c0345_0 77 | - fsspec=2022.2.0=pyhd8ed1ab_0 78 | - future=0.18.2=py39hf3d152e_4 79 | - gflags=2.2.2=he1b5a44_1004 80 | - giflib=5.2.1=h7b6447c_0 81 | - glib=2.69.1=h4ff587b_1 82 | - glog=0.4.0=h49b9bf7_3 83 | - gmp=6.2.1=h2531618_2 84 | - gnutls=3.6.15=he1e5248_0 85 | - google-auth=2.6.0=pyh6c4a22f_1 86 | - google-auth-oauthlib=0.4.6=pyhd8ed1ab_0 87 | - grpc-cpp=1.37.1=h36de60a_0 88 | - grpcio=1.42.0=py39hce63b2e_0 89 | - gst-plugins-base=1.14.0=h8213a91_2 90 | - gstreamer=1.14.0=h28cd5cc_2 91 | - huggingface_hub=0.2.1=pyhd3eb1b0_0 92 | - icu=58.2=he6710b0_3 93 | - idna=3.3=pyhd3eb1b0_0 94 | - importlib-metadata=4.8.2=py39h06a4308_0 95 | - importlib_metadata=4.8.2=hd3eb1b0_0 96 | - intel-openmp=2021.4.0=h06a4308_3561 97 | - ipykernel=5.5.5=py39hef51801_0 98 | - ipympl=0.8.8=pyhd8ed1ab_0 99 | - ipython=8.0.1=py39hf3d152e_1 100 | - ipython_genutils=0.2.0=py_1 101 | - ipywidgets=7.6.5=pyhd8ed1ab_0 102 | - jedi=0.18.1=py39hf3d152e_0 103 | - jinja2=3.0.3=pyhd8ed1ab_0 104 | - joblib=1.1.0=pyhd8ed1ab_0 105 | - jpeg=9d=h7f8727e_0 106 | - json5=0.9.5=pyh9f0ad1d_0 107 | - jsonschema=3.0.2=py39h06a4308_0 108 | - jupyter_client=7.1.2=pyhd8ed1ab_0 109 | - jupyter_core=4.9.2=py39hf3d152e_0 110 | - jupyter_server=1.13.5=pyhd8ed1ab_1 111 | - jupyterlab=3.2.9=pyhd8ed1ab_0 112 | - jupyterlab_pygments=0.1.2=pyh9f0ad1d_0 113 | - jupyterlab_server=2.10.3=pyhd8ed1ab_0 114 | - jupyterlab_widgets=1.0.2=pyhd8ed1ab_0 115 | - kaleido-core=0.2.1=h3644ca4_0 116 | - kiwisolver=1.3.2=py39h295c915_0 117 | - krb5=1.19.2=hcc1bbae_0 118 | - lame=3.100=h7b6447c_0 119 | - lcms2=2.12=h3be6417_0 120 | - ld_impl_linux-64=2.35.1=h7274673_9 121 | - libblas=3.9.0=12_linux64_mkl 122 | - libcblas=3.9.0=12_linux64_mkl 123 | - libcurl=7.78.0=h2574ce0_0 124 | - libedit=3.1.20191231=he28a2e2_2 125 | - libev=4.33=h516909a_1 126 | - libevent=2.1.10=hcdb4288_3 127 | - libffi=3.3=he6710b0_2 128 | - libgcc=7.2.0=h69d50b8_2 129 | - libgcc-ng=9.3.0=h5101ec6_17 130 | - libgfortran-ng=7.5.0=ha8ba4b0_17 131 | - libgfortran4=7.5.0=ha8ba4b0_17 132 | - libgomp=9.3.0=h5101ec6_17 133 | - libiconv=1.15=h63c8f33_5 134 | - libidn2=2.3.2=h7f8727e_0 135 | - libnghttp2=1.43.0=h812cca2_0 136 | - libpng=1.6.37=hbc83047_0 137 | - libprotobuf=3.15.8=h780b84a_0 138 | - libsodium=1.0.18=h36c2ea0_1 139 | - libssh2=1.9.0=ha56f1ee_6 140 | - libstdcxx-ng=9.3.0=hd4cf53a_17 141 | - libtasn1=4.16.0=h27cfd23_0 142 | - libthrift=0.14.1=he6d91bd_2 143 | - libtiff=4.2.0=h85742a9_0 144 | - libunistring=0.9.10=h27cfd23_0 145 | - libutf8proc=2.6.1=h7f98852_0 146 | - libuuid=1.0.3=h7f8727e_2 147 | - libuv=1.40.0=h7b6447c_0 148 | - libwebp=1.2.2=h55f646e_0 149 | - libwebp-base=1.2.2=h7f8727e_0 150 | - libxcb=1.14=h7b6447c_0 151 | - libxml2=2.9.12=h03d6c58_0 152 | - lz4-c=1.9.3=h295c915_1 153 | - markdown=3.3.6=pyhd8ed1ab_0 154 | - markupsafe=2.0.1=py39h3811e60_0 155 | - mathjax=2.7.7=0 156 | - matplotlib=3.5.1=py39h06a4308_0 157 | - matplotlib-base=3.5.1=py39ha18d171_0 158 | - matplotlib-inline=0.1.3=pyhd8ed1ab_0 159 | - mistune=0.8.4=py39h3811e60_1004 160 | - mkl=2021.4.0=h06a4308_640 161 | - mkl-service=2.4.0=py39h7f8727e_0 162 | - mkl_fft=1.3.1=py39hd3c417c_0 163 | - mkl_random=1.2.2=py39h51133e4_0 164 | - multidict=5.2.0=py39h7f8727e_2 165 | - multiprocess=0.70.12.2=py39h7f8727e_0 166 | - munkres=1.1.4=py_0 167 | - murmurhash=1.0.5=py39h2531618_0 168 | - nbclassic=0.3.5=pyhd8ed1ab_0 169 | - nbclient=0.5.11=pyhd8ed1ab_0 170 | - nbconvert=6.4.2=py39hf3d152e_0 171 | - nbformat=5.1.3=pyhd8ed1ab_0 172 | - ncurses=6.3=h7f8727e_2 173 | - nest-asyncio=1.5.4=pyhd8ed1ab_0 174 | - nettle=3.7.3=hbbd107a_1 175 | - nodejs=6.13.1=0 176 | - notebook=6.4.8=pyha770c72_0 177 | - nspr=4.33=h295c915_0 178 | - nss=3.74=h0370c37_0 179 | - numexpr=2.8.1=py39h6abb31d_0 180 | - numpy=1.21.2=py39h20f2e39_0 181 | - numpy-base=1.21.2=py39h79a1101_0 182 | - nvidia-ml-py3=7.352.0=py_0 183 | - oauthlib=3.2.0=pyhd8ed1ab_0 184 | - olefile=0.46=pyhd3eb1b0_0 185 | - openh264=2.1.1=h4ff587b_0 186 | - openssl=1.1.1m=h7f8727e_0 187 | - orc=1.6.7=heec2584_1 188 | - packaging=21.3=pyhd3eb1b0_0 189 | - pandas=1.2.3=py39hde0f152_0 190 | - pandoc=2.17.1.1=ha770c72_0 191 | - pandocfilters=1.5.0=pyhd8ed1ab_0 192 | - parquet-cpp=1.5.1=2 193 | - parso=0.8.3=pyhd8ed1ab_0 194 | - patsy=0.5.2=pyhd8ed1ab_0 195 | - pcre=8.45=h295c915_0 196 | - pexpect=4.8.0=pyh9f0ad1d_2 197 | - pickleshare=0.7.5=py_1003 198 | - pillow=8.4.0=py39h5aabda8_0 199 | - pip=21.2.4=py39h06a4308_0 200 | - plac=1.1.0=py39h06a4308_0 201 | - plotly=5.6.0=pyhd8ed1ab_0 202 | - plotly_express=0.4.1=py_0 203 | - preshed=3.0.5=py39h2531618_4 204 | - prometheus_client=0.13.1=pyhd8ed1ab_0 205 | - prompt-toolkit=3.0.27=pyha770c72_0 206 | - ptyprocess=0.7.0=pyhd3deb0d_0 207 | - pure_eval=0.2.2=pyhd8ed1ab_0 208 | - pyarrow=4.0.0=py39h3ebc44c_1_cpu 209 | - pyasn1=0.4.8=py_0 210 | - pyasn1-modules=0.2.7=py_0 211 | - pycparser=2.21=pyhd3eb1b0_0 212 | - pydeprecate=0.3.2=pyhd8ed1ab_0 213 | - pygments=2.11.2=pyhd8ed1ab_0 214 | - pyjwt=2.3.0=pyhd8ed1ab_1 215 | - pyopenssl=22.0.0=pyhd3eb1b0_0 216 | - pyparsing=3.0.4=pyhd3eb1b0_0 217 | - pyqt=5.9.2=py39h2531618_6 218 | - pyrsistent=0.18.0=py39heee7806_0 219 | - pysocks=1.7.1=py39h06a4308_0 220 | - python=3.9.7=h12debd9_1 221 | - python-dateutil=2.8.2=pyhd3eb1b0_0 222 | - python-kaleido=0.2.1=pyhd8ed1ab_0 223 | - python-xxhash=2.0.2=py39h7f8727e_0 224 | - python_abi=3.9=2_cp39 225 | - pytorch=1.10.2=py3.9_cuda11.3_cudnn8.2.0_0 226 | - pytorch-lightning=1.5.10=pyhd8ed1ab_0 227 | - pytorch-mutex=1.0=cuda 228 | - pytz=2021.3=pyhd3eb1b0_0 229 | - pyu2f=0.1.5=pyhd8ed1ab_0 230 | - pyyaml=6.0=py39h7f8727e_1 231 | - pyzmq=19.0.2=py39hb69f2a1_2 232 | - qt=5.9.7=h5867ecd_1 233 | - re2=2021.04.01=h9c3ff4c_0 234 | - readline=8.1.2=h7f8727e_1 235 | - regex=2021.11.2=py39h7f8727e_0 236 | - requests=2.27.1=pyhd3eb1b0_0 237 | - requests-oauthlib=1.3.1=pyhd8ed1ab_0 238 | - rsa=4.8=pyhd8ed1ab_0 239 | - s2n=1.0.10=h9b69904_0 240 | - sacremoses=master=py_0 241 | - scikit-learn=0.23.2=py39hf3c863f_3 242 | - scipy=1.7.3=py39hc147768_0 243 | - send2trash=1.8.0=pyhd8ed1ab_0 244 | - sentencepiece=0.1.95=py39hd09550d_0 245 | - setuptools=58.0.4=py39h06a4308_0 246 | - sip=4.19.13=py39h295c915_0 247 | - six=1.16.0=pyhd3eb1b0_1 248 | - snappy=1.1.8=he1b5a44_3 249 | - sniffio=1.2.0=py39hf3d152e_2 250 | - soupsieve=2.3.1=pyhd3eb1b0_0 251 | - spacy=2.3.5=py39hff7bd54_0 252 | - sqlite=3.37.2=hc218d9a_0 253 | - srsly=1.0.5=py39h2531618_0 254 | - stack_data=0.2.0=pyhd8ed1ab_0 255 | - statsmodels=0.13.0=py39h7f8727e_0 256 | - tenacity=8.0.1=pyhd8ed1ab_0 257 | - tensorboard=2.8.0=pyhd8ed1ab_1 258 | - tensorboard-data-server=0.6.0=py39h3da14fd_0 259 | - tensorboard-plugin-wit=1.8.1=pyhd8ed1ab_0 260 | - terminado=0.13.1=py39hf3d152e_0 261 | - testpath=0.6.0=pyhd8ed1ab_0 262 | - thinc=7.4.5=py39h9a67853_0 263 | - threadpoolctl=3.1.0=pyh8a188c0_0 264 | - thrift=0.13.0=py39he80948d_2 265 | - tk=8.6.11=h1ccaba5_0 266 | - tokenizers=0.10.3=py39hb317417_1 267 | - torchaudio=0.10.2=py39_cu113 268 | - torchmetrics=0.7.2=pyhd8ed1ab_0 269 | - torchvision=0.11.3=py39_cu113 270 | - tornado=6.1=py39h27cfd23_0 271 | - tqdm=4.62.3=pyhd3eb1b0_1 272 | - traitlets=5.1.1=pyhd8ed1ab_0 273 | - transformers=4.11.3=py_0 274 | - typing-extensions=3.10.0.2=hd3eb1b0_0 275 | - typing_extensions=3.10.0.2=pyh06a4308_0 276 | - tzdata=2021e=hda174b7_0 277 | - urllib3=1.26.8=pyhd3eb1b0_0 278 | - wasabi=0.8.2=pyhd3eb1b0_0 279 | - wcwidth=0.2.5=pyh9f0ad1d_2 280 | - webencodings=0.5.1=py_1 281 | - websocket-client=1.3.1=pyhd8ed1ab_0 282 | - werkzeug=2.0.3=pyhd8ed1ab_1 283 | - wheel=0.37.1=pyhd3eb1b0_0 284 | - widgetsnbextension=3.5.2=py39hf3d152e_1 285 | - xxhash=0.8.0=h7f8727e_3 286 | - xz=5.2.5=h7b6447c_0 287 | - yaml=0.2.5=h7b6447c_0 288 | - yarl=1.6.3=py39h27cfd23_0 289 | - zeromq=4.3.4=h9c3ff4c_0 290 | - zipp=3.7.0=pyhd8ed1ab_1 291 | - zlib=1.2.11=h7f8727e_4 292 | - zstd=1.4.9=haebb681_0 293 | - pip: 294 | - docker-pycreds==0.4.0 295 | - gitdb==4.0.9 296 | - gitpython==3.1.27 297 | - pathtools==0.1.2 298 | - promise==2.3 299 | - protobuf==3.19.4 300 | - psutil==5.9.0 301 | - sentry-sdk==1.5.6 302 | - setproctitle==1.2.2 303 | - shortuuid==1.0.8 304 | - smmap==5.0.0 305 | - termcolor==1.1.0 306 | - wandb==0.12.11 307 | - yaspin==2.1.0 308 | prefix: /home/jacob/miniconda3/envs/paper_brcad5 309 | -------------------------------------------------------------------------------- /code/bigbird.py: -------------------------------------------------------------------------------- 1 | import argparse 2 | import gc 3 | import math 4 | import os 5 | from argparse import Namespace 6 | from datetime import timedelta 7 | from multiprocessing import cpu_count 8 | from typing import List 9 | 10 | import joblib 11 | import numpy as np 12 | import pandas as pd 13 | import pytorch_lightning as pl 14 | import torch 15 | import torch.nn as nn 16 | import torch.nn.functional as F 17 | import torchmetrics 18 | import transformers 19 | from pytorch_lightning import seed_everything 20 | from pytorch_lightning.callbacks import LearningRateMonitor, ModelCheckpoint 21 | from pytorch_lightning.loggers import WandbLogger 22 | from sklearn.metrics import matthews_corrcoef 23 | from sklearn.preprocessing import OrdinalEncoder 24 | from torch import nn as nn 25 | from torch.nn.utils.rnn import pack_sequence, pad_packed_sequence 26 | from torch.utils.data import DataLoader, Dataset 27 | from torchmetrics import Metric 28 | from transformers import (AdamW, AutoConfig, AutoModel, AutoModelWithLMHead, 29 | AutoTokenizer, get_linear_schedule_with_warmup, BertModel, BigBirdTokenizer, BertConfig) 30 | import wandb 31 | # In[2]: 32 | 33 | def str2bool(v): 34 | return v.lower() in ("yes", "true", "t", "1") 35 | 36 | 37 | seed_everything(314) 38 | 39 | # In[3]: 40 | from typing import Any, List, Optional, Tuple, Union, Dict 41 | 42 | class MCC(Metric): 43 | 44 | def __init__( 45 | self, 46 | compute_on_step: bool = True, 47 | dist_sync_on_step: bool = False, 48 | process_group: Optional[Any] = None, 49 | ): 50 | super().__init__( 51 | compute_on_step=compute_on_step, 52 | dist_sync_on_step=dist_sync_on_step, 53 | process_group=process_group, 54 | ) 55 | self.add_state("preds", default=[], dist_reduce_fx=None) 56 | self.add_state("target", default=[], dist_reduce_fx=None) 57 | 58 | 59 | def update(self, preds: torch.Tensor, target: torch.Tensor): 60 | self.preds.append(preds.flatten().long()) 61 | self.target.append(target.flatten().long()) 62 | 63 | def compute(self) -> Union[Tuple[torch.Tensor, torch.Tensor, torch.Tensor], 64 | Tuple[List[torch.Tensor], List[torch.Tensor], List[torch.Tensor]]]: 65 | 66 | preds = torch.cat(self.preds, dim=0).cpu().numpy() 67 | target = torch.cat(self.target, dim=0).cpu().numpy() 68 | return matthews_corrcoef(preds, target), preds, target 69 | 70 | 71 | class ModelBigBird(nn.Module): 72 | 73 | def __init__(self, model_name: str, bertconfig: BertConfig, drop_mult: float, use_special_classifier:str): 74 | 75 | super().__init__() 76 | self.bert = transformers.AutoModel.from_pretrained(model_name, add_pooling_layer=False) 77 | self.bert.config = bertconfig 78 | self.dropout_mult = drop_mult 79 | self.dropout = nn.Dropout(self.dropout_mult) 80 | 81 | sizes_classifier = [self.bert.config.hidden_size*4, self.bert.config.hidden_size, int(self.bert.config.hidden_size//2), 1] 82 | 83 | if use_special_classifier == 'ln': 84 | self.classifier = nn.Sequential( 85 | self.dropout, 86 | nn.Linear(sizes_classifier[0], sizes_classifier[1]), 87 | nn.LayerNorm(sizes_classifier[1]), 88 | Mish(), 89 | self.dropout, 90 | nn.Linear(sizes_classifier[1], sizes_classifier[2]), 91 | nn.LayerNorm(sizes_classifier[2]), 92 | Mish(), 93 | self.dropout, 94 | nn.Linear(sizes_classifier[2], sizes_classifier[3]), 95 | nn.LayerNorm(sizes_classifier[3]), 96 | ) 97 | 98 | elif use_special_classifier == 'bn': 99 | self.classifier = nn.Sequential( 100 | self.dropout, 101 | nn.Linear(sizes_classifier[0], sizes_classifier[1]), 102 | nn.BatchNorm1d(sizes_classifier[1]), 103 | Mish(), 104 | self.dropout, 105 | nn.Linear(sizes_classifier[1], sizes_classifier[2]), 106 | nn.BatchNorm1d(sizes_classifier[2]), 107 | Mish(), 108 | self.dropout, 109 | nn.Linear(sizes_classifier[2], sizes_classifier[3]), 110 | nn.BatchNorm1d(sizes_classifier[3]), 111 | ) 112 | 113 | elif use_special_classifier == 'none': 114 | self.classifier = nn.Sequential( 115 | self.dropout, 116 | nn.Linear(sizes_classifier[0], sizes_classifier[1]), 117 | Mish(), 118 | self.dropout, 119 | nn.Linear(sizes_classifier[1], sizes_classifier[2]), 120 | Mish(), 121 | self.dropout, 122 | nn.Linear(sizes_classifier[2], sizes_classifier[3]) 123 | ) 124 | 125 | #input_ids, token_type_ids, attention_masks 126 | def forward(self, input_ids: torch.Tensor, attention_masks: torch.Tensor, device='cuda'): 127 | #out_bert = self.bert(input_ids, attention_masks)[0][:,0,:] 128 | out_bert = self.bert(input_ids, attention_masks, output_hidden_states=True) 129 | hidden_states = out_bert[1] 130 | h12 = hidden_states[-1][:,0] 131 | h11 = hidden_states[-2][:,0] 132 | h10 = hidden_states[-3][:,0] 133 | h09 = hidden_states[-4][:,0] 134 | concat_hidden = torch.cat([h09, h10, h11, h12], axis=-1) 135 | 136 | out = self.classifier(concat_hidden) 137 | return out 138 | 139 | def freeze_bert_encoder(self): 140 | print('Freezing all bert encoder') 141 | for param in self.bert.parameters(): 142 | param.requires_grad = False 143 | 144 | def unfreeze_bert_encoder(self): 145 | print('Unreezing all bert encoder') 146 | for param in self.bert.parameters(): 147 | param.requires_grad = True 148 | 149 | def unfreeze_bert_encoder_last_layers(self): 150 | print('Unfreezing bert encoder last layers') 151 | for name, param in self.bert.named_parameters(): 152 | if "encoder.layer.11" in name or "pooler" in name: 153 | param.requires_grad = True 154 | 155 | def unfreeze_bert_encoder_pooler_layer(self): 156 | print('Unfreezing bert encoder last pooler layer') 157 | for name, param in self.bert.named_parameters(): 158 | if "pooler" in name: 159 | print(name) 160 | param.requires_grad = True 161 | 162 | 163 | 164 | class EncodeCollateFn: 165 | 166 | def slice_text(self, text): 167 | split = text.split() 168 | size = len(split) 169 | if size > self.max_tokens: 170 | new_text = split[:self.max_tokens//2] + split[-self.max_tokens//2:] 171 | text = ' '.join(new_text) 172 | return text 173 | 174 | def __init__(self, tokenizer: AutoTokenizer, max_input_length=7680): 175 | 176 | self.tokenizer = tokenizer 177 | self.max_tokens = max_input_length 178 | 179 | def __call__(self, batch): 180 | 181 | documents = [self.slice_text(x[0]) for x in batch] 182 | labels = torch.tensor([x[1] for x in batch], dtype=torch.int8) 183 | 184 | assert type(documents) == list, 'Needs to be a list of strings' 185 | tokenized = self.tokenizer(documents, return_tensors='pt', padding=True, truncation=True, max_length=self.max_tokens) 186 | 187 | return tokenized['input_ids'], tokenized['attention_mask'], labels 188 | 189 | 190 | # from https://github.com/digantamisra98/Mish/blob/b5f006660ac0b4c46e2c6958ad0301d7f9c59651/Mish/Torch/mish.py 191 | @torch.jit.script 192 | def mish(input): 193 | return input * torch.tanh(F.softplus(input)) 194 | 195 | class Mish(nn.Module): 196 | def forward(self, input): 197 | return mish(input) 198 | 199 | 200 | class JEFDataset(Dataset): 201 | def __init__(self, path, dep_var, text_col, lowercase): 202 | super().__init__() 203 | self.dep_var = dep_var 204 | self.text_col = text_col 205 | all_columns = [self.dep_var, self.text_col] + ['date_appeal_panel_ruling'] 206 | 207 | data = pd.read_parquet(path, columns=all_columns) 208 | 209 | if len(data) > 600_000: 210 | print(f'Previous size of training data: {len(data)}. Selecting only last 5 years of the training dataset') 211 | data.date_appeal_panel_ruling = pd.to_datetime(data.date_appeal_panel_ruling, infer_datetime_format=True, yearfirst=True, dayfirst=False) 212 | thresh = data.date_appeal_panel_ruling.max() - timedelta(days=365*5) 213 | data = data[data.date_appeal_panel_ruling >= thresh].copy() 214 | print(f'New size of training data: {len(data)}') 215 | 216 | data.drop('date_appeal_panel_ruling', axis=1, inplace=True) 217 | data[self.dep_var] = data[self.dep_var].replace('PROVIMENTO PARCIAL', 'PROVIMENTO') 218 | data = data[data[self.dep_var].isin(['PROVIMENTO', 'NÃO PROVIMENTO'])] 219 | data[self.dep_var] = data[self.dep_var].map({'NÃO PROVIMENTO': 0, 'PROVIMENTO': 1}) 220 | 221 | if lowercase: 222 | data[self.text_col] = data[self.text_col].str.lower() 223 | 224 | print(f'Size before: {len(data)} - {path.split("/")[-1]}') 225 | data.dropna(inplace=True) 226 | print(f'Size after: {len(data)} - {path.split("/")[-1]}') 227 | data.reset_index(drop=True, inplace=True) 228 | self.data = data.copy() 229 | 230 | def __getitem__(self, idx): 231 | return self.data.loc[idx, self.text_col], self.data.loc[idx, self.dep_var] 232 | 233 | def __len__(self): 234 | return len(self.data) 235 | 236 | class TrainingModule(pl.LightningModule): 237 | def __init__(self, hparams): 238 | super().__init__() 239 | self.save_hyperparameters(hparams) 240 | self.num_labels = len(self.hparams['labels']) 241 | self.tokenizer = BigBirdTokenizer.from_pretrained(self.hparams['bert_model_path']) 242 | config = AutoConfig.from_pretrained(self.hparams['bert_model_path']) 243 | config.__setattr__('num_labels', len(self.hparams['labels'])) 244 | 245 | self.accuracy = torchmetrics.Accuracy() 246 | self.mcc = MCC() 247 | self.valor_mcc = {'val_mcc': -1, 'test_mcc': -1} 248 | self.best_mcc = -1.0 249 | self.precision_metric = torchmetrics.Precision(num_classes=self.num_labels) 250 | self.recall_metric = torchmetrics.Recall(num_classes=self.num_labels) 251 | #self.confmat = torchmetrics.ConfusionMatrix(num_classes=self.num_labels) 252 | self.f1_score = torchmetrics.F1(num_classes=self.num_labels) 253 | 254 | self.model = ModelBigBird(self.hparams['bert_model_path'], 255 | bertconfig=config, 256 | drop_mult=self.hparams.drop_mult, 257 | use_special_classifier=self.hparams.use_special_classifier) 258 | 259 | if self.hparams.bert_unfreeze_mode == 'encoder_last': 260 | self.model.freeze_bert_encoder() 261 | self.model.unfreeze_bert_encoder_last_layers() 262 | elif self.hparams.bert_unfreeze_mode == 'pooler_last': 263 | self.model.freeze_bert_encoder() 264 | self.model.unfreeze_bert_encoder_pooler_layer() 265 | elif self.hparams.bert_unfreeze_mode == 'all': 266 | self.model.unfreeze_bert_encoder() 267 | elif self.hparams.bert_unfreeze_mode == 'none': 268 | self.model.freeze_bert_encoder() 269 | 270 | if self.hparams.weighted_loss: 271 | weights = torch.FloatTensor(self.hparams.train_weights) 272 | print(f'Using weighted loss: {weights}') 273 | else: 274 | weights = None 275 | # weight = torch.FloatTensor(self.hparams.train_weights).to(self.hparams.device) if self.hparams.train_weights is not None else None) 276 | self.loss = nn.BCEWithLogitsLoss(pos_weight=weights) 277 | self.lr = self.hparams.lr 278 | self.save_hyperparameters() 279 | 280 | def step(self, batch, step_name='train'): 281 | thresh = self.hparams.thresh_step 282 | input_ids, attention_masks, y = batch 283 | logits = self.forward(input_ids, attention_masks).squeeze() 284 | y = y.type_as(logits) 285 | loss = self.loss(logits, y) 286 | 287 | if step_name == 'train': 288 | self.log('train_loss', loss, on_step=True, on_epoch=True, 289 | logger=True, prog_bar=True, sync_dist=True, sync_dist_op='mean') 290 | result = {'train_loss': loss} 291 | return loss 292 | 293 | else: 294 | self.log(f'{step_name}_loss', loss, on_step=False, on_epoch=True, logger=True, 295 | prog_bar=True, reduce_fx=torch.mean, sync_dist=True, sync_dist_op='mean') 296 | 297 | y_pred = torch.sigmoid(logits) 298 | y_pred = torch.where(y_pred > thresh, 1.0, 0.0).long() 299 | y = y.long() 300 | #y_pred = torch.argmax(logits, dim=1) 301 | self.accuracy(y_pred, y) 302 | #self.mymetric(y_pred, y) 303 | self.precision_metric(y_pred, y) 304 | self.recall_metric(y_pred, y) 305 | self.f1_score(y_pred, y) 306 | #self.confmat(y_pred, y) 307 | self.mcc(y_pred, y) 308 | 309 | 310 | result = {f'{step_name}_loss': loss} 311 | return result 312 | 313 | def calculate_metrics(self, outputs, step_name='val'): 314 | 315 | mcc, preds, target = self.mcc.compute() 316 | tn = ((target == preds) & (target == 0)).sum() 317 | tp = ((target == preds) & (target == 1)).sum() 318 | fn = ((target != preds) & (target == 1)).sum() 319 | fp = ((target != preds) & (target == 0)).sum() 320 | 321 | 322 | outs = {} 323 | outs[f'{step_name}_acc'] = self.accuracy.compute() 324 | outs[f'{step_name}_loss'] = torch.mean(torch.tensor([i[f'{step_name}_loss'] for i in outputs])) 325 | outs[f'{step_name}_tn'] = tn 326 | outs[f'{step_name}_fp'] = fp 327 | outs[f'{step_name}_fn'] = fn 328 | outs[f'{step_name}_tp'] = tp 329 | outs[f'{step_name}_f1_score'] = self.f1_score.compute() 330 | outs[f'{step_name}_precision'] = self.precision_metric.compute() 331 | outs[f'{step_name}_recall'] = self.recall_metric.compute() 332 | outs[f'{step_name}_mcc'] = mcc 333 | #outs[f'{step_name}_mccold'] = mcc2 334 | #confmat = self.confmat.compute().long().detach().cpu().numpy() 335 | 336 | self.recall_metric.reset() 337 | self.precision_metric.reset() 338 | self.f1_score.reset() 339 | self.accuracy.reset() 340 | self.mcc.reset() 341 | #self.confmat.reset() 342 | 343 | if float(mcc) > self.best_mcc: 344 | self.best_mcc = float(mcc) 345 | self.log('best_mcc', mcc) 346 | if self.valor_mcc[f'{step_name}_mcc'] < float(outs[f'{step_name}_mcc']): 347 | self.valor_mcc[f'{step_name}_mcc'] = float(outs[f'{step_name}_mcc']) 348 | 349 | print(matthews_corrcoef(preds, target), mcc, len(target), len(preds)) 350 | if self.global_rank == 0: 351 | print(matthews_corrcoef(preds, target), mcc, len(target), len(preds)) 352 | if self.valor_mcc[f'{step_name}_mcc'] < float(outs[f'{step_name}_mcc']): 353 | self.valor_mcc[f'{step_name}_mcc'] = float(outs[f'{step_name}_mcc']) 354 | #self.logger.experiment.log({f"best_mcc-confusion_matrix" : wandb.plot.confusion_matrix(preds=preds, y_true=target, class_names=[i[:3].upper() for i in self.hparams.labels])}, commit=False) 355 | #print("\n\nCONFUSION MATRIX:\n", confmat, "\n") 356 | print(f"{step_name}_acc: {float(outs[f'{step_name}_acc']):.5f}") 357 | print(f"{step_name}_mcc: {float(outs[f'{step_name}_mcc']):.5f}") 358 | print(f"Number of cases: {int(tn+fp+fn+tp)}") 359 | print('\n') 360 | 361 | 362 | for k, v in outs.items(): 363 | self.log(k, v) 364 | 365 | def forward(self, input_ids, attention_masks, *args): 366 | return self.model(input_ids, attention_masks, *args) 367 | 368 | def training_step(self, batch, batch_idx): 369 | return self.step(batch, "train") 370 | 371 | def validation_step(self, batch, batch_idx): 372 | return self.step(batch, "val") 373 | 374 | def test_step(self, batch, batch_idx): 375 | return self.step(batch, "test") 376 | 377 | def validation_epoch_end(self, outputs: List[dict]): 378 | return self.calculate_metrics(outputs, step_name='val') 379 | 380 | def test_epoch_end(self, outputs: List[dict]): 381 | return self.calculate_metrics(outputs, step_name='test') 382 | 383 | def train_dataloader(self): 384 | return self.create_data_loader(self.hparams.train_path, shuffle=True) 385 | 386 | def val_dataloader(self): 387 | return self.create_data_loader(self.hparams.val_path) 388 | 389 | def test_dataloader(self): 390 | return self.create_data_loader(self.hparams.test_path) 391 | 392 | def create_data_loader(self, ds_path: str, shuffle=False): 393 | #print(self.hparams.cat_names) 394 | return DataLoader( 395 | JEFDataset(ds_path, self.hparams.dep_var, self.hparams.text_col, self.hparams.lowercase), 396 | batch_size=self.hparams.batch_size, 397 | shuffle=shuffle, 398 | pin_memory=True, 399 | drop_last=True, 400 | num_workers=int(cpu_count()), 401 | collate_fn=EncodeCollateFn(self.tokenizer) 402 | ) 403 | 404 | def setup(self, stage): 405 | if stage == 'fit': 406 | total_devices = max(1, self.hparams.n_gpus) * 1 407 | train_batches = len(self.train_dataloader()) // total_devices 408 | self.train_steps = math.ceil((self.hparams.epochs * train_batches) / self.hparams.accumulate_grad_batches) 409 | self.train_steps = int(math.ceil(self.train_steps * 1.01))#1.04) 410 | 411 | def configure_optimizers(self): 412 | train_steps = self.train_steps 413 | optimizer = torch.optim.AdamW([p for p in self.model.parameters() if p.requires_grad], lr=self.lr, weight_decay=0.1) 414 | lr_scheduler = torch.optim.lr_scheduler.OneCycleLR(optimizer, 415 | max_lr=self.lr, 416 | total_steps=train_steps, 417 | three_phase=True, 418 | epochs=self.hparams.epochs) 419 | 420 | return [optimizer], [{"scheduler": lr_scheduler, "interval": "step"}] 421 | 422 | 423 | def _setup_parser(): 424 | """Set up Python's ArgumentParser with data, model, trainer, and other arguments.""" 425 | parser = argparse.ArgumentParser(add_help=False) 426 | 427 | parser.add_argument("--drop_mult", type=float) 428 | parser.add_argument("--use_special_classifier", type=str) 429 | parser.add_argument("--lr", type=float) 430 | parser.add_argument("--thresh_step", type=float) 431 | parser.add_argument("--accumulate_grad_batches", type=int) 432 | parser.add_argument("--gradient_clip_val", type=float) 433 | parser.add_argument("--lowercase", type=str), 434 | parser.add_argument("--stochastic_weight_avg", type=str) 435 | parser.add_argument("--epochs", type=int) 436 | parser.add_argument("--batch_size", type=int) 437 | parser.add_argument("--project_name", type=str) 438 | parser.add_argument("--experiment_name", type=str) 439 | parser.add_argument("--train_path", type=str) 440 | parser.add_argument("--valid_path", type=str) 441 | parser.add_argument("--test_path", type=str) 442 | parser.add_argument("--help", "-h", action="help") 443 | return parser 444 | 445 | 446 | def main(): 447 | """ 448 | Run an experiment. 449 | 450 | Sample command: 451 | ``` 452 | python training/run_experiment.py --max_epochs=3 --gpus='0,' --num_workers=20 --model_class=MLP --data_class=MNIST 453 | ``` 454 | """ 455 | parser = _setup_parser() 456 | args = parser.parse_args() 457 | 458 | train_path = args.train_path 459 | val_path = args.valid_path 460 | test_path = args.test_path 461 | 462 | assert os.path.exists(train_path), f"File doesn't exist: {train_path}" 463 | assert os.path.exists(val_path), f"File doesn't exist: {val_path}" 464 | assert os.path.exists(test_path), f"File doesn't exist: {val_path}" 465 | 466 | df_train = pd.read_parquet(train_path, columns=['label']) 467 | df_train.label = df_train.label.replace('PROVIMENTO PARCIAL', 'PROVIMENTO') 468 | df_train.label = df_train.label.replace('NÃO PROVIMENTO', 0) 469 | df_train.label = df_train.label.replace('PROVIMENTO', 1) 470 | correct_output = torch.tensor(df_train.label.values) 471 | trn_wgts = ((correct_output.shape[0] / torch.sum(correct_output, dim=0))-1) 472 | trn_wgts = trn_wgts.cpu().numpy() 473 | 474 | del(df_train) 475 | 476 | hparams = Namespace( 477 | train_path=train_path, 478 | val_path=val_path, 479 | test_path=test_path, 480 | batch_size=args.batch_size, #12 3090 481 | epochs=args.epochs, #7 482 | drop_mult=args.drop_mult, 483 | use_special_classifier=args.use_special_classifier, 484 | lowercase=str2bool(args.lowercase), 485 | lr=args.lr, 486 | thresh_step=args.thresh_step, 487 | accumulate_grad_batches=args.accumulate_grad_batches, 488 | gradient_clip_val=args.gradient_clip_val, 489 | stochastic_weight_avg=str2bool(args.stochastic_weight_avg), 490 | dep_var = 'label', 491 | text_col = "preprocessed_full_text_first_instance_court_ruling", 492 | bert_model_path='./bigbird-jus', 493 | labels=[0, 1], 494 | sync_batchnorm=True, 495 | device='cuda', 496 | train_weights=trn_wgts, 497 | bert_unfreeze_mode='encoder_last', # 'encoder_last', 'pooler_last', 'all', 'none' 498 | weighted_loss=True, 499 | precision='bf16' , 500 | n_gpus= 2, 501 | deterministic=True, 502 | ) 503 | module = TrainingModule(hparams) 504 | gc.collect() 505 | torch.cuda.empty_cache() 506 | 507 | PROJECT_NAME = args.project_name 508 | EXPERIMENT_NAME = args.experiment_name 509 | 510 | lr_logger = LearningRateMonitor(logging_interval='step', log_momentum=True) 511 | 512 | if len(EXPERIMENT_NAME) > 2: 513 | wandb_logger = WandbLogger(name=EXPERIMENT_NAME, project=PROJECT_NAME, offline=False) 514 | else: 515 | wandb_logger = WandbLogger(project=PROJECT_NAME) 516 | EXPERIMENT_NAME = wandb_logger.experiment.name 517 | 518 | wandb_logger.log_hyperparams(hparams) 519 | 520 | checkpoint_callback = ModelCheckpoint( 521 | dirpath = os.getcwd(), 522 | filename= f'{EXPERIMENT_NAME}-best', 523 | save_top_k=1, 524 | verbose=True, 525 | monitor='val_mcc', 526 | mode='max', 527 | ) 528 | trainer = pl.Trainer(gpus=hparams.n_gpus, 529 | gradient_clip_val=hparams.gradient_clip_val, 530 | stochastic_weight_avg=hparams.stochastic_weight_avg, 531 | max_epochs=hparams.epochs, 532 | progress_bar_refresh_rate=1, 533 | log_every_n_steps=10, 534 | num_sanity_val_steps=2, 535 | accumulate_grad_batches=hparams.accumulate_grad_batches, 536 | precision=hparams.precision, 537 | sync_batchnorm=hparams.sync_batchnorm, 538 | accelerator='ddp', 539 | callbacks=[lr_logger, checkpoint_callback], 540 | logger=wandb_logger, 541 | deterministic=hparams.deterministic, 542 | ) 543 | 544 | 545 | trainer.fit(module) 546 | path = os.path.join(os.getcwd(), f"{EXPERIMENT_NAME}-best.ckpt") 547 | trainer.test(ckpt_path = path) 548 | 549 | if __name__ == "__main__": 550 | main() -------------------------------------------------------------------------------- /data/expert_label_identification.csv: -------------------------------------------------------------------------------- 1 | case_number,volunteer_id 2 | 0501775-80.2018.4.05.8311,volunt02 3 | 0507128-06.2019.4.05.8202,volunt18 4 | 0502858-95.2017.4.05.8302,volunt06 5 | 0533196-12.2018.4.05.8013,volunt29 6 | 0504055-24.2018.4.05.8311,volunt11 7 | 0510739-32.2017.4.05.8300,volunt09 8 | 0513876-39.2019.4.05.8013,volunt02 9 | 0505672-18.2019.4.05.8300,volunt11 10 | 0501121-29.2018.4.05.8203,volunt08 11 | 0507545-06.2017.4.05.8500,volunt07 12 | 0509400-70.2019.4.05.8202,volunt06 13 | 0506410-22.2018.4.05.8015,volunt03 14 | 0502312-84.2019.4.05.8103,volunt33 15 | 0521378-66.2018.4.05.8400,volunt12 16 | 0526141-44.2017.4.05.8013,volunt12 17 | 0501006-08.2018.4.05.8300,volunt09 18 | 0501657-34.2018.4.05.8108,volunt04 19 | 0513175-61.2017.4.05.8300,volunt23 20 | 0500381-13.2019.4.05.8502,volunt11 21 | 0503657-64.2019.4.05.8013,volunt06 22 | 0500744-28.2018.4.05.8310,volunt23 23 | 0503412-27.2017.4.05.8303,volunt04 24 | 0502629-35.2017.4.05.8109,volunt12 25 | 0510356-02.2018.4.05.8500,volunt02 26 | 0506868-66.2018.4.05.8200,volunt12 27 | 0514273-56.2018.4.05.8103,volunt09 28 | 0500508-09.2018.4.05.8300,volunt20 29 | 0512401-48.2019.4.05.8013,volunt01 30 | 0531037-29.2018.4.05.8100,volunt12 31 | 0511357-94.2019.4.05.8400,volunt14 32 | 0534390-47.2018.4.05.8013,volunt14 33 | 0505868-25.2018.4.05.8105,volunt02 34 | 0501153-03.2019.4.05.8202,volunt08 35 | 0503297-79.2017.4.05.8311,volunt04 36 | 0530394-41.2018.4.05.8013,volunt02 37 | 0502056-63.2018.4.05.8108,volunt09 38 | 0508899-28.2019.4.05.8102,volunt12 39 | 0503921-02.2019.4.05.8201,volunt05 40 | 0527600-77.2018.4.05.8100,volunt04 41 | 0508857-52.2019.4.05.8013,volunt10 42 | 0521233-73.2019.4.05.8400,volunt03 43 | 0507599-69.2017.4.05.8500,volunt02 44 | 0507792-17.2017.4.05.8102,volunt23 45 | 0501526-16.2019.4.05.8305,volunt04 46 | 0523014-94.2018.4.05.8100,volunt12 47 | 0508075-16.2017.4.05.8401,volunt09 48 | 0533947-96.2018.4.05.8013,volunt12 49 | 0504043-53.2017.4.05.8308,volunt07 50 | 0505420-58.2018.4.05.8200,volunt07 51 | 0501452-08.2018.4.05.8204,volunt06 52 | 0532100-89.2018.4.05.8100,volunt08 53 | 0500739-57.2018.4.05.8002,volunt12 54 | 0524225-50.2018.4.05.8300,volunt02 55 | 0526509-19.2018.4.05.8013,volunt11 56 | 0502577-14.2018.4.05.8203,volunt01 57 | 0523429-25.2019.4.05.8300,volunt09 58 | 0501136-10.2018.4.05.8102,volunt06 59 | 0520184-92.2017.4.05.8100,volunt14 60 | 0505681-89.2019.4.05.8102,volunt08 61 | 0501379-60.2018.4.05.8002,volunt10 62 | 0504724-07.2018.4.05.8302,volunt12 63 | 0507800-54.2018.4.05.8200,volunt03 64 | 0521225-64.2017.4.05.8013,volunt02 65 | 0503305-65.2017.4.05.8308,volunt11 66 | 0504136-82.2018.4.05.8404,volunt02 67 | 0515769-26.2018.4.05.8102,volunt08 68 | 0501170-49.2018.4.05.8307,volunt10 69 | 0500450-03.2018.4.05.8107,volunt14 70 | 0502797-25.2017.4.05.8307,volunt14 71 | 0505341-85.2018.4.05.8101,volunt02 72 | 0506314-34.2018.4.05.8200,volunt32 73 | 0509779-93.2019.4.05.8013,volunt12 74 | 0501476-39.2018.4.05.8300,volunt08 75 | 0502799-46.2018.4.05.8311,volunt06 76 | 0514086-27.2018.4.05.8013,volunt30 77 | 0536074-07.2018.4.05.8013,volunt11 78 | 0500069-34.2019.4.05.8309,volunt30 79 | 0500615-65.2018.4.05.8102,volunt10 80 | 0514157-32.2018.4.05.8400,volunt12 81 | 0503160-87.2018.4.05.8303,volunt09 82 | 0502910-60.2018.4.05.8204,volunt33 83 | 0515568-25.2018.4.05.8202,volunt20 84 | 0501899-15.2017.4.05.8306,volunt14 85 | 0511169-50.2018.4.05.8202,volunt02 86 | 0501539-80.2017.4.05.8306,volunt11 87 | 0501887-36.2019.4.05.8013,volunt11 88 | 0500912-57.2018.4.05.8204,volunt23 89 | 0514710-88.2018.4.05.8300,volunt06 90 | 0505533-51.2019.4.05.8402,volunt10 91 | 0508331-22.2018.4.05.8013,volunt31 92 | 0507910-53.2018.4.05.8200,volunt09 93 | 0504189-50.2019.4.05.8300,volunt33 94 | 0501798-56.2018.4.05.8204,volunt29 95 | 0500027-22.2018.4.05.8405,volunt31 96 | 0507937-33.2018.4.05.8201,volunt03 97 | 0513239-46.2018.4.05.8103,volunt14 98 | 0501725-59.2019.4.05.8104,volunt33 99 | 0502234-27.2018.4.05.8103,volunt33 100 | 0508741-74.2018.4.05.8500,volunt14 101 | 0501862-29.2019.4.05.8302,volunt10 102 | 0502771-42.2017.4.05.8302,volunt08 103 | 0509674-53.2018.4.05.8401,volunt09 104 | 0515163-11.2017.4.05.8400,volunt05 105 | 0528973-80.2017.4.05.8100,volunt05 106 | 0512188-42.2019.4.05.8013,volunt02 107 | 0512209-52.2018.4.05.8013,volunt33 108 | 0501703-29.2018.4.05.8203,volunt07 109 | 0505106-58.2017.4.05.8003,volunt12 110 | 0504283-63.2017.4.05.8107,volunt23 111 | 0501063-05.2018.4.05.8307,volunt12 112 | 0502963-44.2018.4.05.8203,volunt09 113 | 0502851-63.2018.4.05.8013,volunt11 114 | 0501549-72.2018.4.05.8312,volunt03 115 | 0501473-32.2019.4.05.8306,volunt02 116 | 0516372-08.2018.4.05.8100,volunt12 117 | 0507223-36.2019.4.05.8202,volunt04 118 | 0502200-25.2018.4.05.8500,volunt07 119 | 0515915-09.2019.4.05.8013,volunt06 120 | 0510612-63.2018.4.05.8202,volunt08 121 | 0500367-32.2019.4.05.8501,volunt18 122 | 0501956-11.2018.4.05.8205,volunt11 123 | 0529758-08.2018.4.05.8100,volunt10 124 | 0502704-43.2018.4.05.8205,volunt11 125 | 0519075-43.2017.4.05.8100,volunt29 126 | 0527058-07.2019.4.05.8300,volunt07 127 | 0530691-78.2018.4.05.8100,volunt29 128 | 0501582-46.2019.4.05.8015,volunt14 129 | 0535264-95.2019.4.05.8013,volunt29 130 | 0501803-62.2019.4.05.8101,volunt29 131 | 0501672-90.2019.4.05.8100,volunt29 132 | 0504308-43.2017.4.05.8312,volunt29 133 | 0500069-64.2019.4.05.8202,volunt10 134 | 0502153-72.2018.4.05.8105,volunt23 135 | 0500346-93.2018.4.05.8015,volunt12 136 | 0507298-46.2017.4.05.8202,volunt11 137 | 0510932-47.2017.4.05.8300,volunt12 138 | 0503518-89.2017.4.05.8302,volunt12 139 | 0523227-03.2018.4.05.8100,volunt30 140 | 0500905-35.2018.4.05.8311,volunt06 141 | 0503687-35.2019.4.05.8002,volunt01 142 | 0501776-95.2018.4.05.8107,volunt20 143 | 0501754-49.2018.4.05.8103,volunt07 144 | 0530478-72.2018.4.05.8100,volunt10 145 | 0528356-56.2018.4.05.8013,volunt30 146 | 0514077-31.2019.4.05.8013,volunt11 147 | 0503781-05.2018.4.05.8200,volunt11 148 | 0503381-58.2018.4.05.8307,volunt31 149 | 0531570-21.2019.4.05.8013,volunt31 150 | 0500614-10.2019.4.05.8308,volunt31 151 | 0502339-83.2018.4.05.8400,volunt31 152 | 0501874-92.2018.4.05.8200,volunt33 153 | 0507008-37.2017.4.05.8103,volunt31 154 | 0509027-16.2017.4.05.8200,volunt12 155 | 0510698-65.2017.4.05.8300,volunt14 156 | 0507043-51.2018.4.05.8300,volunt08 157 | 0505311-17.2018.4.05.8500,volunt33 158 | 0529434-85.2018.4.05.8013,volunt31 159 | 0507128-31.2018.4.05.8108,volunt07 160 | 0507984-67.2019.4.05.8202,volunt11 161 | 0501495-90.2019.4.05.8500,volunt11 162 | 0506187-05.2018.4.05.8101,volunt20 163 | 0503283-07.2017.4.05.8308,volunt01 164 | 0507561-84.2017.4.05.8200,volunt12 165 | 0518668-66.2019.4.05.8100,volunt33 166 | 0503161-75.2018.4.05.8302,volunt10 167 | 0508829-49.2017.4.05.8015,volunt05 168 | 0506231-81.2019.4.05.8200,volunt33 169 | 0517558-02.2019.4.05.8013,volunt06 170 | 0516064-60.2018.4.05.8200,volunt14 171 | 0520644-18.2018.4.05.8400,volunt33 172 | 0509414-67.2018.4.05.8500,volunt14 173 | 0511995-10.2017.4.05.8300,volunt32 174 | 0501844-36.2018.4.05.8304,volunt01 175 | 0505407-90.2017.4.05.8201,volunt07 176 | 0503392-86.2019.4.05.8102,volunt06 177 | 0507773-65.2018.4.05.8202,volunt03 178 | 0530633-75.2018.4.05.8100,volunt02 179 | 0504691-75.2017.4.05.8003,volunt02 180 | 0505280-13.2017.4.05.8312,volunt23 181 | 0500031-65.2018.4.05.8403,volunt14 182 | 0507731-31.2018.4.05.8100,volunt01 183 | 0509438-53.2017.4.05.8202,volunt05 184 | 0502861-32.2017.4.05.8308,volunt29 185 | 0523810-85.2018.4.05.8100,volunt10 186 | 0508075-31.2017.4.05.8202,volunt29 187 | 0513509-49.2018.4.05.8013,volunt01 188 | 0500441-04.2019.4.05.8108,volunt29 189 | 0506408-82.2018.4.05.8102,volunt05 190 | 0529153-66.2017.4.05.8013,volunt05 191 | 0518832-56.2018.4.05.8200,volunt11 192 | 0512374-57.2017.4.05.8200,volunt30 193 | 0505070-98.2017.4.05.8105,volunt11 194 | 0512116-83.2018.4.05.8015,volunt06 195 | 0509064-79.2018.4.05.8015,volunt30 196 | 0504149-14.2018.4.05.8103,volunt30 197 | 0515722-52.2018.4.05.8102,volunt06 198 | 0504198-30.2019.4.05.8100,volunt29 199 | 0502087-59.2018.4.05.8310,volunt08 200 | 0506973-52.2018.4.05.8100,volunt14 201 | 0516837-53.2019.4.05.8400,volunt20 202 | 0503421-79.2018.4.05.8100,volunt20 203 | 0507558-74.2018.4.05.8013,volunt20 204 | 0509000-96.2018.4.05.8200,volunt23 205 | 0506210-55.2017.4.05.8401,volunt06 206 | 0529257-58.2017.4.05.8013,volunt11 207 | 0505155-29.2018.4.05.8015,volunt11 208 | 0511133-30.2017.4.05.8400,volunt07 209 | 0503602-38.2018.4.05.8502,volunt08 210 | 0501567-39.2017.4.05.8503,volunt05 211 | 0515857-70.2018.4.05.8100,volunt05 212 | 0503257-87.2018.4.05.8109,volunt06 213 | 0500385-72.2018.4.05.8312,volunt14 214 | 0508689-45.2017.4.05.8102,volunt14 215 | 0501478-97.2018.4.05.8400,volunt31 216 | 0514605-77.2019.4.05.8300,volunt11 217 | 0508106-95.2019.4.05.8100,volunt29 218 | 0511971-57.2018.4.05.8102,volunt08 219 | 0502046-31.2018.4.05.8104,volunt33 220 | 0500312-84.2019.4.05.8015,volunt06 221 | 0504006-34.2018.4.05.8003,volunt10 222 | 0515498-48.2017.4.05.8200,volunt20 223 | 0504017-70.2017.4.05.8303,volunt05 224 | 0500325-71.2019.4.05.8310,volunt05 225 | 0510092-06.2018.4.05.8202,volunt29 226 | 0512890-37.2018.4.05.8202,volunt06 227 | 0513256-10.2017.4.05.8300,volunt33 228 | 0502593-47.2018.4.05.8500,volunt14 229 | 0508431-98.2018.4.05.8102,volunt11 230 | 0509288-81.2017.4.05.8102,volunt10 231 | 0502004-18.2019.4.05.8404,volunt03 232 | 0509317-42.2019.4.05.8400,volunt07 233 | 0500340-52.2019.4.05.8500,volunt01 234 | 0504182-43.2019.4.05.8402,volunt33 235 | 0503920-24.2018.4.05.8307,volunt33 236 | 0505274-53.2019.4.05.8015,volunt08 237 | 0505262-85.2018.4.05.8108,volunt05 238 | 0512884-70.2017.4.05.8103,volunt33 239 | 0522513-16.2018.4.05.8400,volunt24 240 | 0511949-93.2018.4.05.8200,volunt11 241 | 0505023-30.2017.4.05.8201,volunt33 242 | 0503026-69.2018.4.05.8300,volunt20 243 | 0500906-41.2018.4.05.8013,volunt05 244 | 0506079-04.2017.4.05.8103,volunt20 245 | 0504128-08.2018.4.05.8307,volunt02 246 | 0523069-90.2019.4.05.8300,volunt08 247 | 0504816-03.2018.4.05.8102,volunt07 248 | 0505903-43.2018.4.05.8312,volunt04 249 | 0520451-46.2017.4.05.8300,volunt03 250 | 0506692-44.2019.4.05.8300,volunt02 251 | 0500520-64.2020.4.05.8102,volunt30 252 | 0500388-29.2019.4.05.8203,volunt20 253 | 0512400-63.2019.4.05.8013,volunt20 254 | 0503684-68.2019.4.05.8200,volunt30 255 | 0515038-21.2018.4.05.8202,volunt11 256 | 0501719-68.2018.4.05.8304,volunt30 257 | 0500872-59.2019.4.05.8101,volunt02 258 | 0511228-35.2018.4.05.8300,volunt02 259 | 0501986-71.2017.4.05.8402,volunt11 260 | 0501218-68.2019.4.05.8405,volunt29 261 | 0502022-64.2018.4.05.8310,volunt08 262 | 0500945-07.2019.4.05.8400,volunt08 263 | 0502453-94.2019.4.05.8203,volunt23 264 | 0501383-97.2018.4.05.8002,volunt23 265 | 0502429-10.2017.4.05.8309,volunt11 266 | 0507127-68.2017.4.05.8500,volunt31 267 | 0501363-97.2018.4.05.8102,volunt06 268 | 0506463-03.2018.4.05.8500,volunt29 269 | 0504075-93.2019.4.05.8015,volunt05 270 | 0506899-43.2019.4.05.8300,volunt08 271 | 0501364-49.2018.4.05.8307,volunt20 272 | 0505359-10.2017.4.05.8500,volunt18 273 | 0503046-54.2018.4.05.8302,volunt10 274 | 0518774-98.2019.4.05.8400,volunt14 275 | 0503396-33.2018.4.05.8402,volunt05 276 | 0509965-14.2017.4.05.8102,volunt14 277 | 0503171-25.2018.4.05.8204,volunt14 278 | 0507002-53.2019.4.05.8202,volunt11 279 | 0500836-14.2019.4.05.8102,volunt04 280 | 0500463-68.2019.4.05.8106,volunt06 281 | 0511457-29.2017.4.05.8300,volunt05 282 | 0504789-36.2017.4.05.8302,volunt33 283 | 0501436-33.2018.4.05.8405,volunt03 284 | 0506885-08.2018.4.05.8102,volunt10 285 | 0510553-09.2017.4.05.8300,volunt10 286 | 0512716-28.2018.4.05.8202,volunt11 287 | 0501395-38.2019.4.05.8306,volunt11 288 | 0503969-16.2019.4.05.8312,volunt05 289 | 0505989-56.2018.4.05.8201,volunt01 290 | 0501937-41.2019.4.05.8311,volunt10 291 | 0512365-09.2019.4.05.8400,volunt20 292 | 0510283-39.2018.4.05.8400,volunt18 293 | 0505065-61.2017.4.05.8401,volunt29 294 | 0506172-72.2019.4.05.8013,volunt33 295 | 0510956-84.2017.4.05.8103,volunt02 296 | 0509164-34.2018.4.05.8015,volunt01 297 | 0514330-31.2019.4.05.8300,volunt33 298 | 0500057-90.2018.4.05.8200,volunt23 299 | 0528556-63.2018.4.05.8013,volunt06 300 | 0501647-53.2019.4.05.8302,volunt05 301 | 0505395-84.2019.4.05.8402,volunt04 302 | 0506752-73.2017.4.05.8401,volunt20 303 | 0501375-78.2018.4.05.8404,volunt20 304 | 0533753-33.2017.4.05.8013,volunt14 305 | 0500819-76.2018.4.05.8307,volunt07 306 | 0506086-87.2017.4.05.8105,volunt05 307 | 0514108-12.2018.4.05.8102,volunt05 308 | 0503317-82.2017.4.05.8404,volunt10 309 | 0500064-67.2018.4.05.8108,volunt08 310 | 0501000-11.2017.4.05.8405,volunt08 311 | 0510457-73.2017.4.05.8500,volunt02 312 | 0500863-19.2018.4.05.8203,volunt04 313 | 0503410-38.2018.4.05.8104,volunt05 314 | 0504484-64.2017.4.05.8201,volunt06 315 | 0533152-27.2017.4.05.8013,volunt14 316 | 0501210-21.2019.4.05.8202,volunt10 317 | 0500927-92.2019.4.05.8106,volunt14 318 | 0502477-59.2018.4.05.8203,volunt30 319 | 0503749-85.2018.4.05.8204,volunt20 320 | 0526578-51.2018.4.05.8013,volunt23 321 | 0500026-48.2019.4.05.8002,volunt20 322 | 0502997-88.2019.4.05.8201,volunt23 323 | 0502427-40.2017.4.05.8309,volunt05 324 | 0520672-47.2017.4.05.8100,volunt03 325 | 0507269-93.2017.4.05.8202,volunt06 326 | 0511941-53.2017.4.05.8200,volunt10 327 | 0501576-58.2018.4.05.8311,volunt14 328 | 0502069-77.2018.4.05.8103,volunt02 329 | 0504116-15.2018.4.05.8300,volunt11 330 | 0511521-48.2017.4.05.8103,volunt31 331 | 0502083-30.2019.4.05.8102,volunt31 332 | 0502032-56.2018.4.05.8101,volunt08 333 | 0503774-79.2019.4.05.8102,volunt31 334 | 0500074-59.2019.4.05.8308,volunt05 335 | 0510399-45.2018.4.05.8400,volunt29 336 | 0536743-60.2018.4.05.8013,volunt02 337 | 0503986-43.2018.4.05.8003,volunt03 338 | 0520621-72.2018.4.05.8400,volunt01 339 | 0517860-31.2019.4.05.8013,volunt06 340 | 0504421-44.2019.4.05.8403,volunt05 341 | 0503073-62.2017.4.05.8305,volunt11 342 | 0512059-32.2017.4.05.8102,volunt11 343 | 0506796-52.2018.4.05.8500,volunt02 344 | 0501847-75.2019.4.05.8103,volunt14 345 | 0509999-18.2019.4.05.8102,volunt10 346 | 0502578-33.2017.4.05.8203,volunt07 347 | 0514446-96.2017.4.05.8400,volunt08 348 | 0511924-20.2017.4.05.8102,volunt18 349 | 0506234-52.2018.4.05.8400,volunt07 350 | 0501488-10.2019.4.05.8303,volunt05 351 | 0507450-73.2017.4.05.8015,volunt05 352 | 0518608-55.2017.4.05.8200,volunt14 353 | 0521252-77.2017.4.05.8100,volunt10 354 | 0527231-87.2017.4.05.8013,volunt20 355 | 0502535-72.2017.4.05.8502,volunt01 356 | 0513297-91.2019.4.05.8013,volunt29 357 | 0505276-78.2018.4.05.8105,volunt33 358 | 0503733-12.2019.4.05.8103,volunt29 359 | 0506380-23.2018.4.05.8003,volunt29 360 | 0506617-08.2019.4.05.8202,volunt11 361 | 0501252-04.2018.4.05.8300,volunt33 362 | 0508567-65.2018.4.05.8015,volunt29 363 | 0501337-44.2019.4.05.8303,volunt23 364 | 0510207-78.2019.4.05.8400,volunt14 365 | 0501915-22.2019.4.05.8104,volunt18 366 | 0505459-44.2017.4.05.8312,volunt02 367 | 0513910-69.2018.4.05.8200,volunt04 368 | 0501807-03.2018.4.05.8306,volunt30 369 | 0500786-43.2019.4.05.8310,volunt06 370 | 0508065-63.2017.4.05.8015,volunt11 371 | 0500348-87.2018.4.05.8201,volunt08 372 | 0502613-66.2017.4.05.8502,volunt20 373 | 0503680-38.2018.4.05.8015,volunt06 374 | 0516258-06.2017.4.05.8100,volunt11 375 | 0502789-42.2017.4.05.8309,volunt29 376 | 0506852-43.2017.4.05.8202,volunt05 377 | 0513363-32.2018.4.05.8102,volunt10 378 | 0521768-11.2019.4.05.8300,volunt33 379 | 0501681-47.2018.4.05.8307,volunt29 380 | 0501950-58.2019.4.05.8402,volunt29 381 | 0505314-62.2019.4.05.8103,volunt33 382 | 0502427-30.2018.4.05.8107,volunt05 383 | 0525839-45.2017.4.05.8100,volunt05 384 | 0517612-57.2017.4.05.8200,volunt11 385 | 0503002-93.2017.4.05.8003,volunt30 386 | 0501202-75.2018.4.05.8203,volunt06 387 | 0508308-37.2017.4.05.8102,volunt07 388 | 0507600-07.2019.4.05.8202,volunt01 389 | 0501629-63.2018.4.05.8303,volunt08 390 | 0521860-23.2018.4.05.8300,volunt29 391 | 0506578-79.2017.4.05.8202,volunt11 392 | 0507214-93.2018.4.05.8013,volunt23 393 | 0517204-57.2017.4.05.8300,volunt10 394 | 0522023-25.2017.4.05.8013,volunt05 395 | 0518647-97.2018.4.05.8400,volunt11 396 | 0502155-17.2019.4.05.8102,volunt01 397 | 0501659-91.2019.4.05.8100,volunt31 398 | 0512685-90.2018.4.05.8013,volunt08 399 | 0501045-05.2018.4.05.8203,volunt31 400 | 0514632-51.2019.4.05.8400,volunt06 401 | 0522196-49.2017.4.05.8013,volunt20 402 | 0528899-89.2018.4.05.8100,volunt29 403 | 0503103-66.2018.4.05.8401,volunt06 404 | 0500985-23.2018.4.05.8303,volunt05 405 | 0501251-88.2019.4.05.8104,volunt20 406 | 0500567-66.2019.4.05.8104,volunt11 407 | 0502432-89.2017.4.05.8106,volunt04 408 | 0523126-63.2018.4.05.8100,volunt10 409 | 0501562-20.2017.4.05.8308,volunt11 410 | 0520560-44.2018.4.05.8100,volunt11 411 | 0501400-09.2018.4.05.8205,volunt06 412 | 0528781-49.2019.4.05.8013,volunt33 413 | 0505835-38.2018.4.05.8201,volunt24 414 | 0506423-21.2018.4.05.8015,volunt07 415 | 0505163-42.2018.4.05.8003,volunt07 416 | 0502949-20.2019.4.05.8302,volunt01 417 | 0501397-45.2018.4.05.8305,volunt06 418 | 0528472-92.2018.4.05.8100,volunt14 419 | 0500501-02.2018.4.05.8305,volunt23 420 | 0502910-63.2018.4.05.8203,volunt14 421 | 0502165-04.2018.4.05.8003,volunt05 422 | 0504767-68.2018.4.05.8002,volunt03 423 | 0515745-38.2017.4.05.8100,volunt06 424 | 0504415-71.2018.4.05.8500,volunt02 425 | 0500974-67.2018.4.05.8311,volunt29 426 | 0503807-03.2018.4.05.8103,volunt10 427 | 0519925-70.2017.4.05.8400,volunt29 428 | 0500530-58.2018.4.05.8400,volunt11 429 | 0502237-43.2018.4.05.8309,volunt29 430 | 0500375-12.2019.4.05.8306,volunt06 431 | 0510286-12.2018.4.05.8200,volunt02 432 | 0511957-73.2018.4.05.8102,volunt04 433 | 0523433-87.2018.4.05.8400,volunt14 434 | 0500593-92.2018.4.05.8106,volunt29 435 | 0512135-95.2018.4.05.8013,volunt07 436 | 0503614-76.2018.4.05.8300,volunt29 437 | 0527942-25.2017.4.05.8100,volunt10 438 | 0508496-27.2017.4.05.8200,volunt11 439 | 0511744-98.2017.4.05.8200,volunt03 440 | 0505095-49.2019.4.05.8103,volunt20 441 | 0502439-57.2017.4.05.8308,volunt20 442 | 0501111-79.2018.4.05.8204,volunt20 443 | 0500352-66.2019.4.05.8403,volunt07 444 | 0501727-14.2019.4.05.8400,volunt06 445 | 0504087-19.2019.4.05.8400,volunt14 446 | 0502415-44.2017.4.05.8303,volunt29 447 | 0517162-80.2018.4.05.8200,volunt14 448 | 0520551-19.2017.4.05.8100,volunt08 449 | 0501099-56.2018.4.05.8013,volunt05 450 | 0507634-13.2018.4.05.8300,volunt05 451 | 0505568-29.2019.4.05.8202,volunt07 452 | 0529309-20.2018.4.05.8013,volunt08 453 | 0500117-24.2018.4.05.8504,volunt11 454 | 0504868-14.2019.4.05.8312,volunt31 455 | 0508144-89.2019.4.05.8300,volunt31 456 | 0502740-28.2017.4.05.8203,volunt29 457 | 0503339-43.2017.4.05.8307,volunt05 458 | 0509758-12.2017.4.05.8103,volunt10 459 | 0511282-53.2017.4.05.8100,volunt10 460 | 0500451-82.2018.4.05.8205,volunt07 461 | 0509086-04.2017.4.05.8103,volunt20 462 | 0500897-27.2019.4.05.8310,volunt08 463 | 0500013-25.2019.4.05.8204,volunt14 464 | 0500579-62.2019.4.05.8304,volunt01 465 | 0501393-98.2019.4.05.8102,volunt29 466 | 0501275-65.2018.4.05.8100,volunt06 467 | 0501530-86.2019.4.05.8003,volunt05 468 | 0515165-65.2018.4.05.8102,volunt11 469 | 0509009-49.2018.4.05.8300,volunt03 470 | 0506074-20.2019.4.05.8100,volunt11 471 | 0501170-67.2018.4.05.8204,volunt30 472 | 0500026-97.2019.4.05.8309,volunt20 473 | 0507544-71.2019.4.05.8202,volunt06 474 | 0502547-86.2017.4.05.8502,volunt10 475 | 0501243-84.2019.4.05.8307,volunt32 476 | 0536969-65.2018.4.05.8013,volunt29 477 | 0503362-30.2019.4.05.8303,volunt24 478 | 0502155-33.2018.4.05.8302,volunt07 479 | 0515500-09.2017.4.05.8300,volunt06 480 | 0503221-45.2018.4.05.8109,volunt23 481 | 0504146-78.2017.4.05.8108,volunt23 482 | 0503266-42.2019.4.05.8100,volunt29 483 | 0501465-73.2019.4.05.8203,volunt10 484 | 0524331-30.2018.4.05.8100,volunt29 485 | 0501080-84.2017.4.05.8304,volunt32 486 | 0522986-29.2018.4.05.8100,volunt31 487 | 0503829-58.2018.4.05.8104,volunt04 488 | 0500003-02.2019.4.05.8003,volunt32 489 | 0504982-14.2018.4.05.8400,volunt32 490 | 0503329-96.2017.4.05.8404,volunt20 491 | 0505558-79.2019.4.05.8300,volunt20 492 | 0502829-89.2019.4.05.8103,volunt32 493 | 0500403-93.2018.4.05.8312,volunt10 494 | 0501736-80.2018.4.05.8312,volunt31 495 | 0508916-04.2018.4.05.8101,volunt08 496 | 0517973-22.2018.4.05.8400,volunt29 497 | 0502437-77.2018.4.05.8203,volunt05 498 | 0511739-33.2018.4.05.8300,volunt05 499 | 0502161-04.2017.4.05.8002,volunt04 500 | 0505378-27.2019.4.05.8312,volunt32 501 | 0515770-11.2018.4.05.8102,volunt06 502 | 0529259-28.2017.4.05.8013,volunt32 503 | 0514217-65.2019.4.05.8013,volunt14 504 | 0501681-56.2018.4.05.8401,volunt10 505 | 0502253-24.2018.4.05.8300,volunt18 506 | 0519835-25.2018.4.05.8013,volunt01 507 | 0503177-02.2018.4.05.8311,volunt02 508 | 0507863-58.2018.4.05.8013,volunt03 509 | 0512827-09.2018.4.05.8300,volunt20 510 | 0503846-85.2018.4.05.8204,volunt20 511 | 0502155-78.2019.4.05.8308,volunt29 512 | 0502038-36.2018.4.05.8013,volunt33 513 | 0502446-15.2018.4.05.8502,volunt29 514 | 0515723-77.2017.4.05.8100,volunt01 515 | 0522318-40.2018.4.05.8300,volunt33 516 | 0511326-36.2017.4.05.8015,volunt06 517 | 0517728-71.2019.4.05.8013,volunt01 518 | 0510769-58.2017.4.05.8400,volunt18 519 | 0509504-05.2018.4.05.8200,volunt10 520 | 0505911-10.2019.4.05.8013,volunt10 521 | 0503374-59.2019.4.05.8201,volunt23 522 | 0502072-44.2018.4.05.8002,volunt23 523 | 0502981-65.2018.4.05.8300,volunt20 524 | 0502658-57.2018.4.05.8107,volunt20 525 | 0532269-12.2019.4.05.8013,volunt08 526 | 0512417-05.2019.4.05.8400,volunt30 527 | 0522471-91.2018.4.05.8100,volunt30 528 | 0516316-88.2017.4.05.8300,volunt29 529 | 0513755-06.2017.4.05.8102,volunt33 530 | 0518378-13.2017.4.05.8200,volunt30 531 | 0505911-50.2018.4.05.8108,volunt06 532 | 0501768-24.2018.4.05.8203,volunt30 533 | 0503132-50.2017.4.05.8402,volunt30 534 | 0512426-56.2017.4.05.8102,volunt01 535 | 0502889-51.2018.4.05.8312,volunt07 536 | 0507808-10.2018.4.05.8013,volunt29 537 | 0508517-35.2019.4.05.8102,volunt14 538 | 0504018-24.2018.4.05.8302,volunt10 539 | 0513880-50.2017.4.05.8400,volunt05 540 | 0502077-30.2018.4.05.8305,volunt20 541 | 0527168-58.2018.4.05.8100,volunt24 542 | 0506701-28.2018.4.05.8401,volunt11 543 | 0502239-13.2018.4.05.8309,volunt23 544 | 0504343-59.2019.4.05.8400,volunt11 545 | 0513074-36.2017.4.05.8102,volunt05 546 | 0509664-84.2019.4.05.8300,volunt31 547 | 0503946-95.2017.4.05.8003,volunt10 548 | 0500664-60.2019.4.05.8203,volunt18 549 | 0528923-54.2017.4.05.8100,volunt05 550 | 0515231-33.2018.4.05.8300,volunt11 551 | 0514358-85.2017.4.05.8100,volunt02 552 | 0506771-03.2017.4.05.8103,volunt03 553 | 0500367-11.2018.4.05.8002,volunt06 554 | 0507435-57.2019.4.05.8202,volunt07 555 | 0502001-75.2019.4.05.8303,volunt07 556 | 0505686-87.2019.4.05.8401,volunt08 557 | 0505454-75.2019.4.05.8401,volunt20 558 | 0504857-76.2018.4.05.8002,volunt29 559 | 0519091-51.2018.4.05.8200,volunt29 560 | 0500924-50.2018.4.05.8308,volunt06 561 | 0500201-49.2018.4.05.8205,volunt11 562 | 0505129-27.2019.4.05.8102,volunt04 563 | 0504413-04.2018.4.05.8500,volunt14 564 | 0517605-10.2018.4.05.8013,volunt14 565 | 0507204-43.2018.4.05.8500,volunt33 566 | 0505982-04.2017.4.05.8103,volunt01 567 | 0502998-14.2017.4.05.8308,volunt03 568 | 0502181-15.2019.4.05.8102,volunt29 569 | 0517696-24.2018.4.05.8200,volunt01 570 | 0501616-67.2018.4.05.8205,volunt07 571 | 0506058-34.2017.4.05.8101,volunt02 572 | 0514647-97.2017.4.05.8300,volunt04 573 | 0502459-77.2019.4.05.8308,volunt05 574 | 0509262-25.2018.4.05.8013,volunt11 575 | 0503220-12.2017.4.05.8104,volunt20 576 | 0504860-76.2019.4.05.8202,volunt33 577 | 0524359-31.2019.4.05.8013,volunt10 578 | 0527958-46.2017.4.05.8013,volunt30 579 | 0507535-25.2018.4.05.8015,volunt07 580 | 0500091-19.2019.4.05.8204,volunt30 581 | 0507842-34.2017.4.05.8202,volunt06 582 | 0504145-62.2018.4.05.8107,volunt18 583 | 0502699-39.2018.4.05.8102,volunt30 584 | 0502443-26.2019.4.05.8308,volunt30 585 | 0503751-67.2018.4.05.8200,volunt11 586 | 0502386-69.2018.4.05.8202,volunt24 587 | 0503208-36.2019.4.05.8101,volunt29 588 | 0509515-41.2017.4.05.8500,volunt29 589 | 0507704-84.2019.4.05.8400,volunt10 590 | 0502691-48.2017.4.05.8312,volunt33 591 | 0514368-26.2017.4.05.8102,volunt14 592 | 0532291-37.2018.4.05.8100,volunt08 593 | 0504006-14.2017.4.05.8312,volunt05 594 | 0509300-92.2017.4.05.8103,volunt07 595 | 0500286-29.2018.4.05.8401,volunt11 596 | 0502416-64.2019.4.05.8107,volunt20 597 | 0507034-41.2017.4.05.8101,volunt20 598 | 0510291-88.2019.4.05.8300,volunt05 599 | 0501087-33.2018.4.05.8404,volunt10 600 | 0506057-37.2017.4.05.8105,volunt31 601 | 0514982-73.2018.4.05.8400,volunt31 602 | 0520332-42.2018.4.05.8400,volunt06 603 | 0526397-17.2017.4.05.8100,volunt14 604 | 0500678-72.2018.4.05.8108,volunt31 605 | 0500308-17.2018.4.05.8101,volunt11 606 | 0501013-67.2018.4.05.8310,volunt11 607 | 0505900-05.2019.4.05.8102,volunt08 608 | 0502558-08.2018.4.05.8106,volunt08 609 | 0504940-71.2018.4.05.8300,volunt10 610 | 0514651-55.2017.4.05.8100,volunt02 611 | 0509519-08.2017.4.05.8103,volunt12 612 | 0508554-93.2018.4.05.8200,volunt20 613 | 0518145-25.2017.4.05.8100,volunt14 614 | 0507182-03.2018.4.05.8300,volunt01 615 | 0504889-87.2019.4.05.8312,volunt14 616 | 0511216-55.2017.4.05.8300,volunt11 617 | 0501721-29.2018.4.05.8501,volunt12 618 | 0502911-20.2019.4.05.8104,volunt03 619 | 0507349-02.2018.4.05.8015,volunt12 620 | 0512668-91.2017.4.05.8400,volunt32 621 | 0503976-06.2017.4.05.8303,volunt06 622 | 0509813-42.2017.4.05.8400,volunt12 623 | 0505608-39.2018.4.05.8107,volunt01 624 | 0528938-86.2018.4.05.8100,volunt32 625 | 0532278-08.2018.4.05.8013,volunt05 626 | 0502766-40.2019.4.05.8402,volunt29 627 | 0502097-06.2018.4.05.8310,volunt12 628 | 0502363-80.2019.4.05.8302,volunt06 629 | 0500111-74.2019.4.05.8312,volunt12 630 | 0532947-61.2018.4.05.8013,volunt12 631 | 0502597-80.2019.4.05.8102,volunt12 632 | 0513574-22.2019.4.05.8300,volunt20 633 | 0502964-30.2017.4.05.8311,volunt20 634 | 0512996-30.2017.4.05.8300,volunt20 635 | 0502784-23.2017.4.05.8308,volunt30 636 | 0504750-75.2018.4.05.8311,volunt06 637 | 0501587-65.2019.4.05.8404,volunt30 638 | 0500206-22.2019.4.05.8307,volunt32 639 | 0501607-33.2017.4.05.8402,volunt30 640 | 0503354-47.2019.4.05.8402,volunt10 641 | 0502960-04.2018.4.05.8102,volunt12 642 | 0524348-03.2017.4.05.8100,volunt12 643 | 0502167-56.2018.4.05.8105,volunt12 644 | 0500013-83.2018.4.05.8002,volunt06 645 | 0507081-09.2017.4.05.8200,volunt12 646 | 0501396-72.2018.4.05.8107,volunt12 647 | 0502326-09.2017.4.05.8307,volunt14 648 | 0503615-77.2017.4.05.8403,volunt32 649 | 0500777-48.2018.4.05.8203,volunt32 650 | 0502893-81.2019.4.05.8400,volunt12 651 | 0509208-40.2019.4.05.8202,volunt32 652 | 0519637-34.2017.4.05.8300,volunt12 653 | 0517020-21.2019.4.05.8013,volunt08 654 | 0501456-23.2019.4.05.8103,volunt20 655 | 0522066-88.2019.4.05.8013,volunt12 656 | 0502270-75.2018.4.05.8101,volunt31 657 | 0509494-95.2017.4.05.8102,volunt32 658 | 0503031-97.2018.4.05.8201,volunt31 659 | 0515780-68.2017.4.05.8400,volunt32 660 | 0506120-31.2018.4.05.8201,volunt06 661 | 0502725-04.2018.4.05.8501,volunt12 662 | 0514197-32.2018.4.05.8200,volunt08 663 | 0503107-66.2019.4.05.8402,volunt12 664 | 0501763-75.2018.4.05.8405,volunt10 665 | 0521991-83.2018.4.05.8013,volunt12 666 | 0501877-04.2019.4.05.8300,volunt12 667 | 0503501-98.2018.4.05.8308,volunt01 668 | 0505322-58.2018.4.05.8108,volunt02 669 | 0502827-29.2018.4.05.8500,volunt02 670 | 0502304-66.2017.4.05.8107,volunt02 671 | 0502543-12.2018.4.05.8309,volunt32 672 | 0514816-41.2018.4.05.8400,volunt12 673 | 0503383-28.2018.4.05.8307,volunt02 674 | 0512025-74.2019.4.05.8300,volunt12 675 | 0509275-70.2017.4.05.8300,volunt12 676 | 0520251-05.2018.4.05.8300,volunt14 677 | 0515702-71.2017.4.05.8013,volunt32 678 | 0500145-13.2018.4.05.8109,volunt20 679 | 0503477-06.2018.4.05.8200,volunt14 680 | 0501759-10.2019.4.05.8403,volunt29 681 | 0519115-25.2017.4.05.8100,volunt12 682 | 0504005-07.2018.4.05.8502,volunt04 683 | 0512834-44.2017.4.05.8103,volunt12 684 | 0509251-23.2018.4.05.8101,volunt06 685 | 0518316-61.2017.4.05.8300,volunt12 686 | 0502597-12.2017.4.05.8503,volunt02 687 | 0502542-82.2017.4.05.8205,volunt02 688 | 0504586-52.2018.4.05.8201,volunt32 689 | 0522136-09.2017.4.05.8100,volunt12 690 | 0502287-96.2018.4.05.8106,volunt12 691 | 0517669-83.2019.4.05.8013,volunt32 692 | -------------------------------------------------------------------------------- /code/bert_lstm.py: -------------------------------------------------------------------------------- 1 | #https://wandb.ai/eliasjacob/previsao_recurso-2classes-final-full/runs/20rnld3k 2 | # 3 | import argparse 4 | import gc 5 | import math 6 | import os 7 | from argparse import Namespace 8 | from datetime import timedelta 9 | from multiprocessing import cpu_count 10 | from typing import List 11 | 12 | import joblib 13 | import numpy as np 14 | import pandas as pd 15 | import pytorch_lightning as pl 16 | import torch 17 | import torch.nn as nn 18 | import torch.nn.functional as F 19 | import torchmetrics 20 | import transformers 21 | from pytorch_lightning import seed_everything 22 | from pytorch_lightning.callbacks import LearningRateMonitor, ModelCheckpoint 23 | from pytorch_lightning.loggers import WandbLogger 24 | from sklearn.metrics import matthews_corrcoef 25 | from sklearn.preprocessing import OrdinalEncoder 26 | from torch import nn as nn 27 | from torch.nn.utils.rnn import pack_sequence, pad_packed_sequence 28 | from torch.utils.data import DataLoader, Dataset 29 | from torchmetrics import Metric 30 | from transformers import (AdamW, AutoConfig, AutoModel, AutoModelWithLMHead, 31 | AutoTokenizer, BertConfig, BertModel, 32 | get_linear_schedule_with_warmup) 33 | import wandb 34 | 35 | # In[2]: 36 | 37 | def str2bool(v): 38 | return v.lower() in ("yes", "true", "t", "1") 39 | 40 | 41 | seed_everything(314) 42 | 43 | # In[3]: 44 | from typing import Any, Dict, List, Optional, Tuple, Union 45 | 46 | 47 | class MCC(Metric): 48 | 49 | def __init__( 50 | self, 51 | compute_on_step: bool = True, 52 | dist_sync_on_step: bool = False, 53 | process_group: Optional[Any] = None, 54 | ): 55 | super().__init__( 56 | compute_on_step=compute_on_step, 57 | dist_sync_on_step=dist_sync_on_step, 58 | process_group=process_group, 59 | ) 60 | self.add_state("preds", default=[], dist_reduce_fx=None) 61 | self.add_state("target", default=[], dist_reduce_fx=None) 62 | 63 | 64 | def update(self, preds: torch.Tensor, target: torch.Tensor): 65 | self.preds.append(preds.flatten().long()) 66 | self.target.append(target.flatten().long()) 67 | 68 | def compute(self) -> Union[Tuple[torch.Tensor, torch.Tensor, torch.Tensor], 69 | Tuple[List[torch.Tensor], List[torch.Tensor], List[torch.Tensor]]]: 70 | 71 | preds = torch.cat(self.preds, dim=0).cpu().numpy() 72 | target = torch.cat(self.target, dim=0).cpu().numpy() 73 | return matthews_corrcoef(preds, target), preds, target 74 | 75 | 76 | class ModelBERTLSTM(nn.Module): 77 | 78 | def __init__(self, model_name: str, bertconfig: BertConfig, n_layers_lstm:int, bidir_lstm:bool, drop_mult: float, use_special_classifier:str, output_lstm_size:int, distil_init: bool): 79 | 80 | super().__init__() 81 | 82 | self.bert = transformers.BertModel.from_pretrained(model_name)#.bert 83 | self.bert.config = bertconfig 84 | self.dropout_mult = drop_mult 85 | self.dropout = nn.Dropout(p=self.dropout_mult) 86 | 87 | self.lstm = nn.LSTM(self.bert.config.hidden_size * 4, 88 | output_lstm_size, 89 | num_layers=n_layers_lstm, 90 | dropout=self.dropout_mult if n_layers_lstm > 1 else 0, 91 | bidirectional=bidir_lstm) 92 | 93 | sizes_classifier = [output_lstm_size * (2 if bidir_lstm else 1), int(self.bert.config.hidden_size//2), 1] 94 | 95 | if use_special_classifier == 'ln': 96 | self.classifier = nn.Sequential( 97 | self.dropout, 98 | nn.Linear(sizes_classifier[0], sizes_classifier[1]), 99 | nn.LayerNorm(sizes_classifier[1]), 100 | Mish(), 101 | self.dropout, 102 | nn.Linear(sizes_classifier[1], sizes_classifier[2]), 103 | nn.LayerNorm(sizes_classifier[2]) 104 | ) 105 | elif use_special_classifier == 'bn': 106 | self.classifier = nn.Sequential( 107 | self.dropout, 108 | nn.Linear(sizes_classifier[0], sizes_classifier[1]), 109 | nn.BatchNorm1d(sizes_classifier[1]), 110 | Mish(), 111 | self.dropout, 112 | nn.Linear(sizes_classifier[1], sizes_classifier[2]), 113 | nn.BatchNorm1d(sizes_classifier[2]) 114 | ) 115 | elif use_special_classifier == 'none': 116 | self.classifier = nn.Sequential( 117 | self.dropout, 118 | nn.Linear(sizes_classifier[0], sizes_classifier[1]), 119 | Mish(), 120 | self.dropout, 121 | nn.Linear(sizes_classifier[1], sizes_classifier[2]) 122 | ) 123 | 124 | # DistilBERT’s custom initialization 125 | # https://zablo.net/blog/post/custom-classifier-on-bert-model-guide-polemo2-sentiment-analysis/ 126 | 127 | if distil_init: 128 | for layer in self.classifier: 129 | if isinstance(layer, nn.Linear): 130 | layer.weight.data.normal_(mean=0.0, std=0.02) 131 | if layer.bias is not None: 132 | layer.bias.data.zero_() 133 | 134 | #input_ids, token_type_ids, attention_masks 135 | def forward(self, document_batch: torch.Tensor, document_sequence_lengths: list, device='cuda'): 136 | 137 | # contains all BERT sequences 138 | # bert should output a (batch_size, num_sequences, bert_hidden_size) 139 | bert_output = torch.zeros(size=(document_batch.shape[0], 140 | min(document_batch.shape[1], self.bert.config.batch_size), 141 | self.bert.config.hidden_size*4), dtype=torch.float, device=device) 142 | # pdb.set_trace() # DEBUG 143 | # only pass through bert_batch_size numbers of inputs into bert. # 144 | # this means that we are possibly cutting off the last part of documents. 145 | 146 | for doc_id in range(document_batch.shape[0]): 147 | out_bert = self.bert(document_batch[doc_id][:self.bert.config.batch_size, 0], 148 | token_type_ids=document_batch[doc_id][:self.bert.config.batch_size, 1], 149 | attention_mask=document_batch[doc_id][:self.bert.config.batch_size, 2], output_hidden_states=True)#[0][:, 0, :] 150 | 151 | 152 | hidden_states = out_bert[2] 153 | h12 = hidden_states[-1][:,0] 154 | h11 = hidden_states[-2][:,0] 155 | h10 = hidden_states[-3][:,0] 156 | h09 = hidden_states[-4][:,0] 157 | concat_hidden = torch.cat([h09, h10, h11, h12], axis=-1) 158 | 159 | bert_output[doc_id][:self.bert.config.batch_size] = concat_hidden 160 | 161 | lista = [] 162 | for idx, i in enumerate(document_sequence_lengths+1): 163 | lista.append(bert_output[idx, :int(i)]) 164 | packed = pack_sequence(lista, enforce_sorted=False) 165 | self.lstm.flatten_parameters() 166 | output, (_, _) = self.lstm(packed) 167 | output, _ = pad_packed_sequence(output) # TODO ESTUDAR MELHOR ESSA SAIDA 168 | indexes = [len(i) -1 for i in lista] # x is the input, which is a list contains sentence embeddings in a batch 169 | 170 | last_layer = output[indexes, range(output.shape[1]), :] 171 | out = self.classifier(last_layer) 172 | return out 173 | 174 | def freeze_bert_encoder(self): 175 | print('Freezing all bert encoder') 176 | for param in self.bert.parameters(): 177 | param.requires_grad = False 178 | 179 | def unfreeze_bert_encoder(self): 180 | print('Unreezing all bert encoder') 181 | for param in self.bert.parameters(): 182 | param.requires_grad = True 183 | 184 | def unfreeze_bert_encoder_last_layers(self): 185 | print('Unfreezing bert encoder last layers') 186 | for name, param in self.bert.named_parameters(): 187 | if "encoder.layer.11" in name or "pooler" in name: 188 | param.requires_grad = True 189 | 190 | def unfreeze_bert_encoder_pooler_layer(self): 191 | print('Unfreezing bert encoder last pooler layer') 192 | for name, param in self.bert.named_parameters(): 193 | if "pooler" in name: 194 | print(name) 195 | param.requires_grad = True 196 | 197 | 198 | 199 | class EncodeCollateFn: 200 | 201 | 202 | def __init__(self, tokenizer: AutoTokenizer, bert_batch_size, max_input_length=512): 203 | 204 | self.tokenizer = tokenizer 205 | self.max_tokens = max_input_length 206 | self.bert_batch_size = bert_batch_size 207 | 208 | def get_sliding_window_tokens(self, text: str): 209 | cut = self.bert_batch_size 210 | raw_tokens = self.tokenizer.tokenize(text) 211 | tokens = {} 212 | input_type_ids = {} 213 | attention_masks = {} 214 | 215 | if len(raw_tokens) > (self.max_tokens-2)*cut: 216 | max_inicio = math.floor(cut/2) 217 | max_fim = math.ceil(cut/2) 218 | all_tokens = raw_tokens[:(self.max_tokens-2)*max_inicio] + raw_tokens[-(self.max_tokens-2)*max_fim:] 219 | was_cut = True 220 | else: 221 | all_tokens = raw_tokens 222 | was_cut = False 223 | 224 | def chunks(lista, n): 225 | n = max(1, n) 226 | return [lista[i:i+n] for i in range(0, len(lista), n)] 227 | 228 | def fill(lista, desired_length, filler=0): 229 | if len(lista) >= desired_length: 230 | return lista 231 | 232 | current_size = len(lista) 233 | n = desired_length - current_size 234 | listofzeros = [filler] * n 235 | lista += listofzeros 236 | return lista 237 | 238 | tokens_split = chunks(all_tokens, self.max_tokens-2) 239 | tokens_split = [["CLS"] + chunk + ["[SEP"] for chunk in tokens_split] 240 | 241 | for n, split in enumerate(tokens_split): 242 | tokens[n] = np.array(fill(self.tokenizer.convert_tokens_to_ids(split), self.max_tokens, self.tokenizer.pad_token_id)) 243 | input_type_ids[n] = np.array(fill([0] * len(split), self.max_tokens, 0)) 244 | attention_masks[n] = np.array(fill([1] * len(split), self.max_tokens, 0)) 245 | 246 | retorno = { 247 | 'original_len': len(raw_tokens), 248 | 'n_chunks': len(tokens.keys()), 249 | 'tokenized_chunks': { 250 | 'input_ids': tokens, 251 | 'input_type_ids': input_type_ids, 252 | 'attention_masks': attention_masks 253 | }, 254 | 'was_cut': was_cut 255 | } 256 | return retorno 257 | 258 | 259 | def __call__(self, batch): 260 | 261 | documents = [x[0] for x in batch] 262 | 263 | assert type(documents) == list, 'Needs to be a list of strings' 264 | 265 | split_documents = list() 266 | 267 | for document in documents: 268 | split_documents.append(self.get_sliding_window_tokens(text=document)) 269 | 270 | max_sequences_per_document = math.ceil(max([i['n_chunks'] for i in split_documents])) 271 | 272 | assert max_sequences_per_document <= 15, f"Your document is way too large" 273 | 274 | output = torch.zeros(size=(len(documents), max_sequences_per_document, 3, 512), dtype=torch.long) 275 | document_seq_lengths = [] # number of sequence generated per document 276 | 277 | for doc_index, split_document in enumerate(split_documents): 278 | for seq_index in range(split_document['n_chunks']): 279 | 280 | input_ids = split_document['tokenized_chunks']['input_ids'][seq_index]#.squeeze() 281 | attention_masks = split_document['tokenized_chunks']['attention_masks'][seq_index]#.squeeze() 282 | input_type_ids = split_document['tokenized_chunks']['attention_masks'][seq_index]#.squeeze() 283 | 284 | 285 | assert len(input_ids) == self.max_tokens and len(attention_masks) == self.max_tokens and len(input_type_ids) == self.max_tokens, f"{len(input_ids)} - {len(attention_masks)} - {len(input_type_ids)}" 286 | 287 | # we are ready to rumble 288 | output[doc_index][seq_index] = torch.cat((torch.LongTensor(input_ids).unsqueeze(0), 289 | torch.LongTensor(input_type_ids).unsqueeze(0), 290 | torch.LongTensor(attention_masks).unsqueeze(0)), 291 | dim=0) 292 | max_seq_index = seq_index 293 | #document_seq_lengths.append(max_seq_index+1) 294 | document_seq_lengths.append(split_document['n_chunks']) 295 | 296 | labels = torch.tensor([x[1] for x in batch], dtype=torch.int8) 297 | return (output, torch.LongTensor(document_seq_lengths)), labels 298 | 299 | 300 | 301 | # from https://github.com/digantamisra98/Mish/blob/b5f006660ac0b4c46e2c6958ad0301d7f9c59651/Mish/Torch/mish.py 302 | @torch.jit.script 303 | def mish(input): 304 | return input * torch.tanh(F.softplus(input)) 305 | 306 | class Mish(nn.Module): 307 | def forward(self, input): 308 | return mish(input) 309 | 310 | class JEFSuperDataset(Dataset): 311 | def __init__(self, path, dep_var, text_col, lowercase): 312 | super().__init__() 313 | self.dep_var = dep_var 314 | self.text_col = text_col 315 | all_columns = [self.dep_var, self.text_col] + ['date_appeal_panel_ruling'] 316 | 317 | data = pd.read_parquet(path, columns=all_columns) 318 | 319 | if len(data) > 600_000: 320 | print(f'Previous size of training data: {len(data)}. Selecting only last 5 years of the training dataset') 321 | data.date_appeal_panel_ruling = pd.to_datetime(data.date_appeal_panel_ruling, infer_datetime_format=True, yearfirst=True, dayfirst=False) 322 | thresh = data.date_appeal_panel_ruling.max() - timedelta(days=365*5) 323 | data = data[data.date_appeal_panel_ruling >= thresh].copy() 324 | print(f'New size of training data: {len(data)}') 325 | 326 | data.drop('date_appeal_panel_ruling', axis=1, inplace=True) 327 | data[self.dep_var] = data[self.dep_var].replace('PROVIMENTO PARCIAL', 'PROVIMENTO') 328 | data = data[data[self.dep_var].isin(['PROVIMENTO', 'NÃO PROVIMENTO'])] 329 | data[self.dep_var] = data[self.dep_var].map({'NÃO PROVIMENTO': 0, 'PROVIMENTO': 1}) 330 | 331 | if lowercase: 332 | data[self.text_col] = data[self.text_col].str.lower() 333 | 334 | print(f'Size before: {len(data)} - {path.split("/")[-1]}') 335 | data.dropna(inplace=True) 336 | print(f'Size after: {len(data)} - {path.split("/")[-1]}') 337 | data.reset_index(drop=True, inplace=True) 338 | self.data = data.copy() 339 | 340 | def __getitem__(self, idx): 341 | return self.data.loc[idx, self.text_col], self.data.loc[idx, self.dep_var] 342 | 343 | def __len__(self): 344 | return len(self.data) 345 | 346 | # In[8]: 347 | 348 | 349 | class TrainingModule(pl.LightningModule): 350 | def __init__(self, hparams): 351 | super().__init__() 352 | self.save_hyperparameters(hparams) 353 | self.num_labels = len(self.hparams['labels']) 354 | self.tokenizer = AutoTokenizer.from_pretrained(self.hparams['bert_model_path']) 355 | config = AutoConfig.from_pretrained(self.hparams['bert_model_path']) 356 | config.__setattr__('num_labels', len(self.hparams['labels'])) 357 | config.__setattr__('batch_size', self.hparams['bert_batch_size']) 358 | 359 | self.accuracy = torchmetrics.Accuracy() 360 | self.mcc = MCC() 361 | self.valor_mcc = {'val_mcc': -1, 'test_mcc': -1} 362 | self.best_mcc = -1.0 363 | self.precision_metric = torchmetrics.Precision(num_classes=self.num_labels) 364 | self.recall_metric = torchmetrics.Recall(num_classes=self.num_labels) 365 | # self.confmat = torchmetrics.ConfusionMatrix(num_classes=self.num_labels) 366 | self.f1_score = torchmetrics.F1(num_classes=self.num_labels) 367 | 368 | self.model = ModelBERTLSTM(self.hparams['bert_model_path'], 369 | bertconfig=config, 370 | n_layers_lstm=self.hparams.n_layers_lstm, 371 | bidir_lstm=self.hparams.bidir_lstm, 372 | drop_mult=self.hparams.drop_mult, 373 | use_special_classifier=self.hparams.use_special_classifier, 374 | output_lstm_size=self.hparams.output_lstm_size, 375 | distil_init=self.hparams.distil_init) 376 | 377 | if self.hparams.bert_unfreeze_mode == 'encoder_last': 378 | self.model.freeze_bert_encoder() 379 | self.model.unfreeze_bert_encoder_last_layers() 380 | elif self.hparams.bert_unfreeze_mode == 'pooler_last': 381 | self.model.freeze_bert_encoder() 382 | self.model.unfreeze_bert_encoder_pooler_layer() 383 | elif self.hparams.bert_unfreeze_mode == 'all': 384 | self.model.unfreeze_bert_encoder() 385 | elif self.hparams.bert_unfreeze_mode == 'none': 386 | self.model.freeze_bert_encoder() 387 | 388 | if self.hparams.weighted_loss: 389 | weights = torch.FloatTensor(self.hparams.train_weights) 390 | print(f'Using weighted loss: {weights}') 391 | else: 392 | weights = None 393 | self.loss = nn.BCEWithLogitsLoss(pos_weight=weights) 394 | self.lr = self.hparams.lr 395 | self.save_hyperparameters() 396 | 397 | def step(self, batch, step_name='train'): 398 | thresh = self.hparams.thresh_step 399 | X_text, y = batch 400 | logits = self.forward(X_text).squeeze() 401 | y = y.type_as(logits) 402 | 403 | loss = self.loss(logits, y) 404 | 405 | if step_name == 'train': 406 | self.log('train_loss', loss, on_step=True, on_epoch=True, 407 | logger=True, prog_bar=True, sync_dist=True, sync_dist_op='mean') 408 | result = {'train_loss': loss} 409 | return loss 410 | 411 | else: 412 | self.log(f'{step_name}_loss', loss, on_step=False, on_epoch=True, logger=True, 413 | prog_bar=True, reduce_fx=torch.mean, sync_dist=True, sync_dist_op='mean') 414 | 415 | y_pred = torch.sigmoid(logits) 416 | y_pred = torch.where(y_pred > thresh, 1.0, 0.0).long() 417 | y = y.long() 418 | self.accuracy(y_pred, y) 419 | self.precision_metric(y_pred, y) 420 | self.recall_metric(y_pred, y) 421 | self.f1_score(y_pred, y) 422 | # self.confmat(y_pred, y) 423 | self.mcc(y_pred, y) 424 | 425 | 426 | result = {f'{step_name}_loss': loss} 427 | return result 428 | 429 | def calculate_metrics(self, outputs, step_name='val'): 430 | 431 | mcc, preds, target = self.mcc.compute() 432 | tn = ((target == preds) & (target == 0)).sum() 433 | tp = ((target == preds) & (target == 1)).sum() 434 | fn = ((target != preds) & (target == 1)).sum() 435 | fp = ((target != preds) & (target == 0)).sum() 436 | 437 | 438 | outs = {} 439 | outs[f'{step_name}_acc'] = self.accuracy.compute() 440 | outs[f'{step_name}_loss'] = torch.mean(torch.tensor([i[f'{step_name}_loss'] for i in outputs])) 441 | outs[f'{step_name}_tn'] = tn 442 | outs[f'{step_name}_fp'] = fp 443 | outs[f'{step_name}_fn'] = fn 444 | outs[f'{step_name}_tp'] = tp 445 | outs[f'{step_name}_f1_score'] = self.f1_score.compute() 446 | outs[f'{step_name}_precision'] = self.precision_metric.compute() 447 | outs[f'{step_name}_recall'] = self.recall_metric.compute() 448 | outs[f'{step_name}_mcc'] = mcc 449 | # confmat = self.confmat.compute().long().detach().cpu().numpy() 450 | 451 | self.recall_metric.reset() 452 | self.precision_metric.reset() 453 | self.f1_score.reset() 454 | self.accuracy.reset() 455 | self.mcc.reset() 456 | # self.confmat.reset() 457 | 458 | if float(mcc) > self.best_mcc: 459 | self.best_mcc = float(mcc) 460 | self.log('best_mcc', mcc) 461 | if self.valor_mcc[f'{step_name}_mcc'] < float(outs[f'{step_name}_mcc']): 462 | self.valor_mcc[f'{step_name}_mcc'] = float(outs[f'{step_name}_mcc']) 463 | 464 | print(matthews_corrcoef(preds, target), mcc, len(target), len(preds)) 465 | if self.global_rank == 0: 466 | print(matthews_corrcoef(preds, target), mcc, len(target), len(preds)) 467 | if self.valor_mcc[f'{step_name}_mcc'] < float(outs[f'{step_name}_mcc']): 468 | self.valor_mcc[f'{step_name}_mcc'] = float(outs[f'{step_name}_mcc']) 469 | # self.logger.experiment.log({f"best_mcc-confusion_matrix" : wandb.plot.confusion_matrix(preds=preds, y_true=target, class_names=[i[:3].upper() for i in self.hparams.labels])}, commit=False) 470 | # print("\n\nCONFUSION MATRIX:\n", confmat, "\n") 471 | print(f"{step_name}_acc: {float(outs[f'{step_name}_acc']):.5f}") 472 | print(f"{step_name}_mcc: {float(outs[f'{step_name}_mcc']):.5f}") 473 | print(f"Number of cases: {int(tn+fp+fn+tp)}") 474 | print('\n') 475 | 476 | for k, v in outs.items(): 477 | self.log(k, v) 478 | 479 | def forward(self, X_text, *args): 480 | return self.model(X_text[0], X_text[1], *args) 481 | 482 | def training_step(self, batch, batch_idx): 483 | return self.step(batch, "train") 484 | 485 | def validation_step(self, batch, batch_idx): 486 | return self.step(batch, "val") 487 | 488 | def test_step(self, batch, batch_idx): 489 | return self.step(batch, "test") 490 | 491 | def validation_epoch_end(self, outputs: List[dict]): 492 | return self.calculate_metrics(outputs, step_name='val') 493 | 494 | def test_epoch_end(self, outputs: List[dict]): 495 | return self.calculate_metrics(outputs, step_name='test') 496 | 497 | def train_dataloader(self): 498 | return self.create_data_loader(self.hparams.train_path, shuffle=True) 499 | 500 | def val_dataloader(self): 501 | return self.create_data_loader(self.hparams.val_path) 502 | 503 | def test_dataloader(self): 504 | return self.create_data_loader(self.hparams.test_path) 505 | 506 | def create_data_loader(self, ds_path: str, shuffle=False): 507 | #print(self.hparams.cat_names) 508 | return DataLoader( 509 | JEFSuperDataset(ds_path, self.hparams.dep_var, self.hparams.text_col, self.hparams.lowercase), 510 | batch_size=self.hparams.batch_size, 511 | shuffle=shuffle, 512 | pin_memory=True, 513 | drop_last=True, 514 | num_workers=int(cpu_count()//1.5), 515 | collate_fn=EncodeCollateFn(self.tokenizer, self.hparams.bert_batch_size) 516 | ) 517 | 518 | def setup(self, stage): 519 | if stage == 'fit': 520 | total_devices = max(1, self.hparams.n_gpus) * 1 521 | train_batches = len(self.train_dataloader()) // total_devices 522 | self.train_steps = math.ceil((self.hparams.epochs * train_batches) / self.hparams.accumulate_grad_batches) 523 | self.train_steps = int(math.ceil(self.train_steps * 1))#1.04) 524 | 525 | def configure_optimizers(self): 526 | train_steps = self.train_steps 527 | self.lr_menor = self.lr/self.hparams.lr_divider 528 | named_params = list(self.model.named_parameters()) 529 | 530 | def is_bert(name, par): return 'bert' in name and par.requires_grad 531 | def not_bert(name, par): return 'bert' not in name and par.requires_grad 532 | 533 | grouped_parameters = [ 534 | {"params": [p for n, p in named_params if is_bert(n, p)], 'lr': self.lr}, 535 | {"params": [p for n, p in named_params if not_bert(n, p)], 'lr': self.lr_menor}, 536 | ] 537 | optimizer = torch.optim.AdamW(grouped_parameters, lr=self.lr, weight_decay=0.1) 538 | lr_scheduler = torch.optim.lr_scheduler.OneCycleLR(optimizer, 539 | max_lr=self.lr, 540 | total_steps=train_steps, 541 | three_phase=True, 542 | epochs=self.hparams.epochs) 543 | 544 | return [optimizer], [{"scheduler": lr_scheduler, "interval": "step"}] 545 | 546 | 547 | def _setup_parser(): 548 | """Set up Python's ArgumentParser with data, model, trainer, and other arguments.""" 549 | parser = argparse.ArgumentParser(add_help=False) 550 | 551 | parser.add_argument("--drop_mult", type=float) 552 | parser.add_argument("--n_layers_lstm", type=int) 553 | parser.add_argument("--bidir_lstm", type=str) 554 | parser.add_argument("--use_special_classifier", type=str) 555 | parser.add_argument("--output_lstm_size", type=int) 556 | parser.add_argument("--lr", type=float) 557 | parser.add_argument("--lr_divider", type=int) 558 | parser.add_argument("--thresh_step", type=float) 559 | parser.add_argument("--accumulate_grad_batches", type=int) 560 | parser.add_argument("--gradient_clip_val", type=float) 561 | parser.add_argument("--bert_batch_size", type=int) 562 | parser.add_argument("--distil_init", type=str), 563 | parser.add_argument("--lowercase", type=str), 564 | parser.add_argument("--stochastic_weight_avg", type=str) 565 | parser.add_argument("--epochs", type=int) 566 | parser.add_argument("--batch_size", type=int) 567 | parser.add_argument("--project_name", type=str) 568 | parser.add_argument("--experiment_name", type=str) 569 | parser.add_argument("--train_path", type=str) 570 | parser.add_argument("--valid_path", type=str) 571 | parser.add_argument("--test_path", type=str) 572 | parser.add_argument("--help", "-h", action="help") 573 | return parser 574 | 575 | 576 | def main(): 577 | """ 578 | Run an experiment. 579 | 580 | Sample command: 581 | ``` 582 | python training/run_experiment.py --max_epochs=3 --gpus='0,' --num_workers=20 --model_class=MLP --data_class=MNIST 583 | ``` 584 | """ 585 | parser = _setup_parser() 586 | args = parser.parse_args() 587 | 588 | 589 | train_path = args.train_path 590 | val_path = args.valid_path 591 | test_path = args.test_path 592 | 593 | assert os.path.exists(train_path), f"File doesn't exist: {train_path}" 594 | assert os.path.exists(val_path), f"File doesn't exist: {val_path}" 595 | assert os.path.exists(test_path), f"File doesn't exist: {val_path}" 596 | 597 | df_train = pd.read_parquet(train_path, columns=['label']) 598 | df_train.label = df_train.label.replace('PROVIMENTO PARCIAL', 'PROVIMENTO') 599 | df_train.label = df_train.label.replace('NÃO PROVIMENTO', 0) 600 | df_train.label = df_train.label.replace('PROVIMENTO', 1) 601 | correct_output = torch.tensor(df_train.label.values) 602 | trn_wgts = ((correct_output.shape[0] / torch.sum(correct_output, dim=0))-1) 603 | trn_wgts = trn_wgts.cpu().numpy() 604 | 605 | del(df_train) 606 | 607 | 608 | hparams = Namespace( 609 | train_path=train_path, 610 | val_path=val_path, 611 | test_path=test_path, 612 | batch_size=args.batch_size, 613 | epochs=args.epochs, 614 | drop_mult=args.drop_mult, 615 | n_layers_lstm=args.n_layers_lstm, 616 | bidir_lstm=str2bool(args.bidir_lstm), 617 | use_special_classifier=args.use_special_classifier, 618 | output_lstm_size=args.output_lstm_size, 619 | lowercase=str2bool(args.lowercase), 620 | lr=args.lr, 621 | lr_divider=args.lr_divider, 622 | thresh_step=args.thresh_step, 623 | accumulate_grad_batches=args.accumulate_grad_batches, 624 | gradient_clip_val=args.gradient_clip_val, 625 | bert_batch_size=args.bert_batch_size, 626 | distil_init=str2bool(args.distil_init), 627 | stochastic_weight_avg=str2bool(args.stochastic_weight_avg), 628 | use_metadata=True, 629 | dep_var = 'label', 630 | text_col = "preprocessed_full_text_first_instance_court_ruling", 631 | bert_model_path='neuralmind/bert-base-portuguese-cased', 632 | labels=[0, 1], 633 | sync_batchnorm=True, 634 | device='cuda', 635 | train_weights=trn_wgts, 636 | bert_unfreeze_mode='encoder_last', # 'encoder_last', 'pooler_last', 'all', 'none' 637 | weighted_loss=True, 638 | precision=16, 639 | n_gpus= 2, 640 | deterministic=True, 641 | ) 642 | module = TrainingModule(hparams) 643 | gc.collect() 644 | torch.cuda.empty_cache() 645 | 646 | PROJECT_NAME = args.project_name 647 | EXPERIMENT_NAME = args.experiment_name 648 | 649 | lr_logger = LearningRateMonitor(logging_interval='step', log_momentum=True) 650 | 651 | if len(EXPERIMENT_NAME) > 2: 652 | wandb_logger = WandbLogger(name=EXPERIMENT_NAME, project=PROJECT_NAME, offline=False) 653 | else: 654 | wandb_logger = WandbLogger(project=PROJECT_NAME) 655 | EXPERIMENT_NAME = wandb_logger.experiment.name 656 | 657 | wandb_logger.log_hyperparams(hparams) 658 | 659 | checkpoint_callback = ModelCheckpoint( 660 | dirpath = os.getcwd(), 661 | filename= f'{EXPERIMENT_NAME}-best', 662 | save_top_k=1, 663 | verbose=True, 664 | monitor='val_mcc', 665 | mode='max', 666 | ) 667 | 668 | trainer = pl.Trainer(gpus=hparams.n_gpus, 669 | gradient_clip_val=hparams.gradient_clip_val, 670 | stochastic_weight_avg=hparams.stochastic_weight_avg, 671 | max_epochs=hparams.epochs, 672 | progress_bar_refresh_rate=1, 673 | log_every_n_steps=10, 674 | num_sanity_val_steps=2, 675 | accumulate_grad_batches=hparams.accumulate_grad_batches, 676 | precision=hparams.precision, 677 | sync_batchnorm=hparams.sync_batchnorm, 678 | accelerator='ddp', 679 | callbacks=[lr_logger, checkpoint_callback], 680 | logger=wandb_logger, 681 | deterministic=hparams.deterministic, 682 | ) 683 | 684 | 685 | trainer.fit(module) 686 | path = os.path.join(os.getcwd(), f"{EXPERIMENT_NAME}-best.ckpt") 687 | trainer.test(ckpt_path = path) 688 | 689 | 690 | if __name__ == "__main__": 691 | main() 692 | -------------------------------------------------------------------------------- /code/predictions/BigBird-humans.csv: -------------------------------------------------------------------------------- 1 | y_pred,y_true,model,ds_type 2 | NÃO PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 3 | NÃO PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 4 | NÃO PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 5 | NÃO PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 6 | NÃO PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 7 | NÃO PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 8 | PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 9 | PROVIMENTO,PROVIMENTO,BigBird,humans 10 | NÃO PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 11 | NÃO PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 12 | NÃO PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 13 | NÃO PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 14 | PROVIMENTO,PROVIMENTO,BigBird,humans 15 | NÃO PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 16 | NÃO PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 17 | PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 18 | PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 19 | NÃO PROVIMENTO,PROVIMENTO,BigBird,humans 20 | NÃO PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 21 | NÃO PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 22 | PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 23 | PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 24 | PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 25 | PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 26 | NÃO PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 27 | NÃO PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 28 | PROVIMENTO,PROVIMENTO,BigBird,humans 29 | PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 30 | PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 31 | NÃO PROVIMENTO,PROVIMENTO,BigBird,humans 32 | PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 33 | PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 34 | PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 35 | NÃO PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 36 | NÃO PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 37 | PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 38 | NÃO PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 39 | NÃO PROVIMENTO,PROVIMENTO,BigBird,humans 40 | NÃO PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 41 | PROVIMENTO,PROVIMENTO,BigBird,humans 42 | NÃO PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 43 | PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 44 | PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 45 | PROVIMENTO,PROVIMENTO,BigBird,humans 46 | PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 47 | PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 48 | NÃO PROVIMENTO,PROVIMENTO,BigBird,humans 49 | NÃO PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 50 | NÃO PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 51 | NÃO PROVIMENTO,PROVIMENTO,BigBird,humans 52 | PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 53 | NÃO PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 54 | NÃO PROVIMENTO,PROVIMENTO,BigBird,humans 55 | PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 56 | NÃO PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 57 | PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 58 | PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 59 | PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 60 | PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 61 | PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 62 | PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 63 | NÃO PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 64 | PROVIMENTO,PROVIMENTO,BigBird,humans 65 | PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 66 | PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 67 | NÃO PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 68 | PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 69 | PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 70 | PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 71 | PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 72 | NÃO PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 73 | PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 74 | NÃO PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 75 | PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 76 | NÃO PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 77 | NÃO PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 78 | PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 79 | PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 80 | NÃO PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 81 | PROVIMENTO,PROVIMENTO,BigBird,humans 82 | PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 83 | NÃO PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 84 | PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 85 | PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 86 | PROVIMENTO,PROVIMENTO,BigBird,humans 87 | PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 88 | PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 89 | NÃO PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 90 | NÃO PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 91 | NÃO PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 92 | PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 93 | PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 94 | NÃO PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 95 | NÃO PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 96 | PROVIMENTO,PROVIMENTO,BigBird,humans 97 | PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 98 | PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 99 | PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 100 | PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 101 | PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 102 | PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 103 | PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 104 | NÃO PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 105 | PROVIMENTO,PROVIMENTO,BigBird,humans 106 | PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 107 | PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 108 | PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 109 | PROVIMENTO,PROVIMENTO,BigBird,humans 110 | NÃO PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 111 | NÃO PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 112 | PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 113 | PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 114 | PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 115 | PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 116 | PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 117 | PROVIMENTO,PROVIMENTO,BigBird,humans 118 | PROVIMENTO,PROVIMENTO,BigBird,humans 119 | PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 120 | PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 121 | NÃO PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 122 | NÃO PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 123 | PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 124 | PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 125 | PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 126 | PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 127 | PROVIMENTO,PROVIMENTO,BigBird,humans 128 | PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 129 | NÃO PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 130 | PROVIMENTO,PROVIMENTO,BigBird,humans 131 | PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 132 | NÃO PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 133 | PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 134 | NÃO PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 135 | PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 136 | PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 137 | NÃO PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 138 | PROVIMENTO,PROVIMENTO,BigBird,humans 139 | PROVIMENTO,PROVIMENTO,BigBird,humans 140 | PROVIMENTO,PROVIMENTO,BigBird,humans 141 | NÃO PROVIMENTO,PROVIMENTO,BigBird,humans 142 | PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 143 | PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 144 | PROVIMENTO,PROVIMENTO,BigBird,humans 145 | PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 146 | PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 147 | NÃO PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 148 | PROVIMENTO,PROVIMENTO,BigBird,humans 149 | PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 150 | PROVIMENTO,PROVIMENTO,BigBird,humans 151 | PROVIMENTO,PROVIMENTO,BigBird,humans 152 | PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 153 | NÃO PROVIMENTO,PROVIMENTO,BigBird,humans 154 | PROVIMENTO,PROVIMENTO,BigBird,humans 155 | PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 156 | PROVIMENTO,PROVIMENTO,BigBird,humans 157 | PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 158 | PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 159 | PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 160 | PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 161 | NÃO PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 162 | PROVIMENTO,PROVIMENTO,BigBird,humans 163 | PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 164 | PROVIMENTO,PROVIMENTO,BigBird,humans 165 | PROVIMENTO,PROVIMENTO,BigBird,humans 166 | NÃO PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 167 | PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 168 | PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 169 | PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 170 | PROVIMENTO,PROVIMENTO,BigBird,humans 171 | PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 172 | PROVIMENTO,PROVIMENTO,BigBird,humans 173 | PROVIMENTO,PROVIMENTO,BigBird,humans 174 | PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 175 | PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 176 | NÃO PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 177 | PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 178 | NÃO PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 179 | PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 180 | PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 181 | PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 182 | NÃO PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 183 | PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 184 | PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 185 | PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 186 | NÃO PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 187 | PROVIMENTO,PROVIMENTO,BigBird,humans 188 | PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 189 | PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 190 | NÃO PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 191 | NÃO PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 192 | PROVIMENTO,PROVIMENTO,BigBird,humans 193 | PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 194 | PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 195 | PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 196 | PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 197 | NÃO PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 198 | NÃO PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 199 | NÃO PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 200 | NÃO PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 201 | PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 202 | PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 203 | PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 204 | PROVIMENTO,PROVIMENTO,BigBird,humans 205 | PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 206 | PROVIMENTO,PROVIMENTO,BigBird,humans 207 | NÃO PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 208 | PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 209 | PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 210 | PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 211 | PROVIMENTO,PROVIMENTO,BigBird,humans 212 | NÃO PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 213 | PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 214 | PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 215 | PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 216 | NÃO PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 217 | NÃO PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 218 | NÃO PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 219 | PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 220 | NÃO PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 221 | NÃO PROVIMENTO,PROVIMENTO,BigBird,humans 222 | PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 223 | PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 224 | NÃO PROVIMENTO,PROVIMENTO,BigBird,humans 225 | NÃO PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 226 | PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 227 | PROVIMENTO,PROVIMENTO,BigBird,humans 228 | PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 229 | PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 230 | PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 231 | PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 232 | PROVIMENTO,PROVIMENTO,BigBird,humans 233 | PROVIMENTO,PROVIMENTO,BigBird,humans 234 | NÃO PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 235 | PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 236 | PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 237 | PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 238 | PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 239 | PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 240 | PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 241 | PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 242 | PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 243 | NÃO PROVIMENTO,PROVIMENTO,BigBird,humans 244 | PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 245 | PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 246 | NÃO PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 247 | PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 248 | PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 249 | NÃO PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 250 | PROVIMENTO,PROVIMENTO,BigBird,humans 251 | PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 252 | PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 253 | NÃO PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 254 | PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 255 | NÃO PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 256 | PROVIMENTO,PROVIMENTO,BigBird,humans 257 | PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 258 | PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 259 | PROVIMENTO,PROVIMENTO,BigBird,humans 260 | PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 261 | PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 262 | PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 263 | PROVIMENTO,PROVIMENTO,BigBird,humans 264 | NÃO PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 265 | NÃO PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 266 | PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 267 | PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 268 | PROVIMENTO,PROVIMENTO,BigBird,humans 269 | NÃO PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 270 | NÃO PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 271 | NÃO PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 272 | NÃO PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 273 | PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 274 | NÃO PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 275 | NÃO PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 276 | PROVIMENTO,PROVIMENTO,BigBird,humans 277 | PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 278 | PROVIMENTO,PROVIMENTO,BigBird,humans 279 | NÃO PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 280 | NÃO PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 281 | NÃO PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 282 | PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 283 | PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 284 | PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 285 | PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 286 | NÃO PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 287 | PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 288 | NÃO PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 289 | NÃO PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 290 | PROVIMENTO,PROVIMENTO,BigBird,humans 291 | PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 292 | PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 293 | PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 294 | NÃO PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 295 | PROVIMENTO,PROVIMENTO,BigBird,humans 296 | NÃO PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 297 | PROVIMENTO,PROVIMENTO,BigBird,humans 298 | PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 299 | NÃO PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 300 | PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 301 | NÃO PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 302 | PROVIMENTO,PROVIMENTO,BigBird,humans 303 | NÃO PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 304 | NÃO PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 305 | PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 306 | PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 307 | PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 308 | PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 309 | PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 310 | PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 311 | PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 312 | PROVIMENTO,PROVIMENTO,BigBird,humans 313 | PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 314 | PROVIMENTO,PROVIMENTO,BigBird,humans 315 | PROVIMENTO,PROVIMENTO,BigBird,humans 316 | PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 317 | NÃO PROVIMENTO,PROVIMENTO,BigBird,humans 318 | PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 319 | PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 320 | PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 321 | PROVIMENTO,PROVIMENTO,BigBird,humans 322 | PROVIMENTO,PROVIMENTO,BigBird,humans 323 | NÃO PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 324 | PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 325 | NÃO PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 326 | NÃO PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 327 | PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 328 | PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 329 | NÃO PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 330 | PROVIMENTO,PROVIMENTO,BigBird,humans 331 | NÃO PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 332 | NÃO PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 333 | NÃO PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 334 | PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 335 | NÃO PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 336 | NÃO PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 337 | PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 338 | PROVIMENTO,PROVIMENTO,BigBird,humans 339 | PROVIMENTO,PROVIMENTO,BigBird,humans 340 | PROVIMENTO,PROVIMENTO,BigBird,humans 341 | PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 342 | NÃO PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 343 | PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 344 | PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 345 | PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 346 | PROVIMENTO,PROVIMENTO,BigBird,humans 347 | PROVIMENTO,PROVIMENTO,BigBird,humans 348 | NÃO PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 349 | NÃO PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 350 | NÃO PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 351 | PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 352 | PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 353 | PROVIMENTO,PROVIMENTO,BigBird,humans 354 | PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 355 | NÃO PROVIMENTO,PROVIMENTO,BigBird,humans 356 | PROVIMENTO,PROVIMENTO,BigBird,humans 357 | PROVIMENTO,PROVIMENTO,BigBird,humans 358 | PROVIMENTO,PROVIMENTO,BigBird,humans 359 | PROVIMENTO,PROVIMENTO,BigBird,humans 360 | PROVIMENTO,PROVIMENTO,BigBird,humans 361 | NÃO PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 362 | PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 363 | NÃO PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 364 | NÃO PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 365 | PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 366 | PROVIMENTO,PROVIMENTO,BigBird,humans 367 | PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 368 | NÃO PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 369 | PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 370 | PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 371 | PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 372 | PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 373 | PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 374 | PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 375 | PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 376 | PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 377 | NÃO PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 378 | PROVIMENTO,PROVIMENTO,BigBird,humans 379 | PROVIMENTO,PROVIMENTO,BigBird,humans 380 | PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 381 | PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 382 | PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 383 | NÃO PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 384 | PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 385 | PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 386 | PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 387 | PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 388 | PROVIMENTO,PROVIMENTO,BigBird,humans 389 | PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 390 | PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 391 | PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 392 | NÃO PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 393 | PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 394 | PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 395 | NÃO PROVIMENTO,PROVIMENTO,BigBird,humans 396 | NÃO PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 397 | PROVIMENTO,PROVIMENTO,BigBird,humans 398 | PROVIMENTO,PROVIMENTO,BigBird,humans 399 | NÃO PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 400 | NÃO PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 401 | NÃO PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 402 | NÃO PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 403 | NÃO PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 404 | PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 405 | PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 406 | NÃO PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 407 | NÃO PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 408 | PROVIMENTO,PROVIMENTO,BigBird,humans 409 | PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 410 | NÃO PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 411 | NÃO PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 412 | PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 413 | PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 414 | NÃO PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 415 | PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 416 | NÃO PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 417 | PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 418 | PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 419 | PROVIMENTO,PROVIMENTO,BigBird,humans 420 | PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 421 | NÃO PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 422 | PROVIMENTO,PROVIMENTO,BigBird,humans 423 | PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 424 | PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 425 | PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 426 | PROVIMENTO,PROVIMENTO,BigBird,humans 427 | PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 428 | PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 429 | PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 430 | NÃO PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 431 | PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 432 | PROVIMENTO,PROVIMENTO,BigBird,humans 433 | PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 434 | PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 435 | NÃO PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 436 | NÃO PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 437 | PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 438 | NÃO PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 439 | PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 440 | PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 441 | PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 442 | PROVIMENTO,PROVIMENTO,BigBird,humans 443 | NÃO PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 444 | PROVIMENTO,PROVIMENTO,BigBird,humans 445 | NÃO PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 446 | PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 447 | PROVIMENTO,PROVIMENTO,BigBird,humans 448 | PROVIMENTO,PROVIMENTO,BigBird,humans 449 | PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 450 | PROVIMENTO,PROVIMENTO,BigBird,humans 451 | PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 452 | PROVIMENTO,PROVIMENTO,BigBird,humans 453 | PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 454 | PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 455 | PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 456 | PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 457 | PROVIMENTO,PROVIMENTO,BigBird,humans 458 | PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 459 | PROVIMENTO,PROVIMENTO,BigBird,humans 460 | NÃO PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 461 | NÃO PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 462 | PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 463 | NÃO PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 464 | PROVIMENTO,PROVIMENTO,BigBird,humans 465 | NÃO PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 466 | PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 467 | PROVIMENTO,PROVIMENTO,BigBird,humans 468 | PROVIMENTO,PROVIMENTO,BigBird,humans 469 | NÃO PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 470 | PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 471 | PROVIMENTO,PROVIMENTO,BigBird,humans 472 | PROVIMENTO,PROVIMENTO,BigBird,humans 473 | PROVIMENTO,PROVIMENTO,BigBird,humans 474 | PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 475 | NÃO PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 476 | PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 477 | NÃO PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 478 | NÃO PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 479 | PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 480 | NÃO PROVIMENTO,PROVIMENTO,BigBird,humans 481 | PROVIMENTO,PROVIMENTO,BigBird,humans 482 | PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 483 | PROVIMENTO,PROVIMENTO,BigBird,humans 484 | PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 485 | PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 486 | PROVIMENTO,PROVIMENTO,BigBird,humans 487 | PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 488 | PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 489 | PROVIMENTO,PROVIMENTO,BigBird,humans 490 | PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 491 | PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 492 | PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 493 | NÃO PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 494 | PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 495 | PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 496 | PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 497 | PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 498 | PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 499 | PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 500 | PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 501 | PROVIMENTO,PROVIMENTO,BigBird,humans 502 | PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 503 | NÃO PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 504 | PROVIMENTO,PROVIMENTO,BigBird,humans 505 | PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 506 | PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 507 | PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 508 | PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 509 | NÃO PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 510 | NÃO PROVIMENTO,PROVIMENTO,BigBird,humans 511 | PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 512 | NÃO PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 513 | PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 514 | PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 515 | PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 516 | PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 517 | NÃO PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 518 | PROVIMENTO,PROVIMENTO,BigBird,humans 519 | NÃO PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 520 | NÃO PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 521 | NÃO PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 522 | PROVIMENTO,PROVIMENTO,BigBird,humans 523 | PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 524 | PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 525 | NÃO PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 526 | PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 527 | PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 528 | PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 529 | NÃO PROVIMENTO,PROVIMENTO,BigBird,humans 530 | PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 531 | NÃO PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 532 | PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 533 | PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 534 | PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 535 | PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 536 | PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 537 | NÃO PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 538 | PROVIMENTO,PROVIMENTO,BigBird,humans 539 | PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 540 | PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 541 | PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 542 | PROVIMENTO,PROVIMENTO,BigBird,humans 543 | PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 544 | NÃO PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 545 | PROVIMENTO,PROVIMENTO,BigBird,humans 546 | NÃO PROVIMENTO,PROVIMENTO,BigBird,humans 547 | PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 548 | PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 549 | PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 550 | PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 551 | NÃO PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 552 | PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 553 | PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 554 | PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 555 | NÃO PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 556 | PROVIMENTO,PROVIMENTO,BigBird,humans 557 | PROVIMENTO,PROVIMENTO,BigBird,humans 558 | NÃO PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 559 | PROVIMENTO,PROVIMENTO,BigBird,humans 560 | PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 561 | PROVIMENTO,PROVIMENTO,BigBird,humans 562 | PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 563 | PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 564 | PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 565 | PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 566 | PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 567 | NÃO PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 568 | NÃO PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 569 | PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 570 | PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 571 | PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 572 | NÃO PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 573 | NÃO PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 574 | PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 575 | PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 576 | PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 577 | NÃO PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 578 | NÃO PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 579 | PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 580 | NÃO PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 581 | PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 582 | PROVIMENTO,PROVIMENTO,BigBird,humans 583 | NÃO PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 584 | NÃO PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 585 | PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 586 | NÃO PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 587 | PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 588 | PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 589 | PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 590 | PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 591 | PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 592 | PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 593 | PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 594 | PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 595 | PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 596 | NÃO PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 597 | PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 598 | NÃO PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 599 | PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 600 | NÃO PROVIMENTO,PROVIMENTO,BigBird,humans 601 | PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 602 | PROVIMENTO,PROVIMENTO,BigBird,humans 603 | NÃO PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 604 | PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 605 | NÃO PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 606 | PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 607 | NÃO PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 608 | PROVIMENTO,PROVIMENTO,BigBird,humans 609 | PROVIMENTO,PROVIMENTO,BigBird,humans 610 | NÃO PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 611 | PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 612 | PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 613 | PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 614 | PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 615 | PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 616 | PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 617 | NÃO PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 618 | NÃO PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 619 | NÃO PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 620 | PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 621 | NÃO PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 622 | NÃO PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 623 | PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 624 | PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 625 | PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 626 | PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 627 | PROVIMENTO,PROVIMENTO,BigBird,humans 628 | NÃO PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 629 | NÃO PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 630 | PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 631 | NÃO PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 632 | PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 633 | NÃO PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 634 | NÃO PROVIMENTO,PROVIMENTO,BigBird,humans 635 | NÃO PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 636 | PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 637 | PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 638 | NÃO PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 639 | NÃO PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 640 | PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 641 | PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 642 | PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 643 | PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 644 | PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 645 | PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 646 | PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 647 | PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 648 | PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 649 | NÃO PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 650 | PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 651 | PROVIMENTO,PROVIMENTO,BigBird,humans 652 | PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 653 | PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 654 | PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 655 | NÃO PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 656 | NÃO PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 657 | PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 658 | NÃO PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 659 | PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 660 | PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 661 | PROVIMENTO,PROVIMENTO,BigBird,humans 662 | PROVIMENTO,PROVIMENTO,BigBird,humans 663 | NÃO PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 664 | PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 665 | PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 666 | PROVIMENTO,PROVIMENTO,BigBird,humans 667 | NÃO PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 668 | NÃO PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 669 | NÃO PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 670 | NÃO PROVIMENTO,PROVIMENTO,BigBird,humans 671 | NÃO PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 672 | PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 673 | PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 674 | NÃO PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 675 | PROVIMENTO,PROVIMENTO,BigBird,humans 676 | PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 677 | PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 678 | PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 679 | PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 680 | PROVIMENTO,PROVIMENTO,BigBird,humans 681 | PROVIMENTO,PROVIMENTO,BigBird,humans 682 | NÃO PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 683 | PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 684 | PROVIMENTO,PROVIMENTO,BigBird,humans 685 | PROVIMENTO,PROVIMENTO,BigBird,humans 686 | PROVIMENTO,PROVIMENTO,BigBird,humans 687 | PROVIMENTO,PROVIMENTO,BigBird,humans 688 | PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 689 | NÃO PROVIMENTO,NÃO PROVIMENTO,BigBird,humans 690 | PROVIMENTO,PROVIMENTO,BigBird,humans 691 | PROVIMENTO,PROVIMENTO,BigBird,humans 692 | -------------------------------------------------------------------------------- /code/predictions/BERT_LSTM-humans.csv: -------------------------------------------------------------------------------- 1 | y_pred,y_true,model,ds_type 2 | NÃO PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 3 | NÃO PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 4 | NÃO PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 5 | NÃO PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 6 | NÃO PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 7 | NÃO PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 8 | NÃO PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 9 | PROVIMENTO,PROVIMENTO,BERT_LSTM,humans 10 | NÃO PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 11 | NÃO PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 12 | NÃO PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 13 | NÃO PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 14 | NÃO PROVIMENTO,PROVIMENTO,BERT_LSTM,humans 15 | NÃO PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 16 | NÃO PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 17 | PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 18 | NÃO PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 19 | PROVIMENTO,PROVIMENTO,BERT_LSTM,humans 20 | NÃO PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 21 | NÃO PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 22 | NÃO PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 23 | NÃO PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 24 | PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 25 | PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 26 | NÃO PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 27 | NÃO PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 28 | PROVIMENTO,PROVIMENTO,BERT_LSTM,humans 29 | NÃO PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 30 | PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 31 | PROVIMENTO,PROVIMENTO,BERT_LSTM,humans 32 | NÃO PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 33 | PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 34 | PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 35 | NÃO PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 36 | NÃO PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 37 | NÃO PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 38 | NÃO PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 39 | NÃO PROVIMENTO,PROVIMENTO,BERT_LSTM,humans 40 | NÃO PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 41 | PROVIMENTO,PROVIMENTO,BERT_LSTM,humans 42 | NÃO PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 43 | NÃO PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 44 | PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 45 | PROVIMENTO,PROVIMENTO,BERT_LSTM,humans 46 | PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 47 | NÃO PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 48 | NÃO PROVIMENTO,PROVIMENTO,BERT_LSTM,humans 49 | NÃO PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 50 | NÃO PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 51 | NÃO PROVIMENTO,PROVIMENTO,BERT_LSTM,humans 52 | NÃO PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 53 | NÃO PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 54 | PROVIMENTO,PROVIMENTO,BERT_LSTM,humans 55 | NÃO PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 56 | NÃO PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 57 | NÃO PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 58 | NÃO PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 59 | NÃO PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 60 | NÃO PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 61 | NÃO PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 62 | PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 63 | NÃO PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 64 | PROVIMENTO,PROVIMENTO,BERT_LSTM,humans 65 | PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 66 | PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 67 | NÃO PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 68 | PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 69 | NÃO PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 70 | NÃO PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 71 | PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 72 | NÃO PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 73 | NÃO PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 74 | NÃO PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 75 | PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 76 | NÃO PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 77 | NÃO PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 78 | PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 79 | PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 80 | NÃO PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 81 | PROVIMENTO,PROVIMENTO,BERT_LSTM,humans 82 | NÃO PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 83 | NÃO PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 84 | PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 85 | NÃO PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 86 | PROVIMENTO,PROVIMENTO,BERT_LSTM,humans 87 | PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 88 | NÃO PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 89 | NÃO PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 90 | NÃO PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 91 | NÃO PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 92 | PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 93 | NÃO PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 94 | NÃO PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 95 | NÃO PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 96 | NÃO PROVIMENTO,PROVIMENTO,BERT_LSTM,humans 97 | PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 98 | PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 99 | NÃO PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 100 | PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 101 | NÃO PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 102 | PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 103 | NÃO PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 104 | NÃO PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 105 | PROVIMENTO,PROVIMENTO,BERT_LSTM,humans 106 | PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 107 | PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 108 | PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 109 | NÃO PROVIMENTO,PROVIMENTO,BERT_LSTM,humans 110 | NÃO PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 111 | NÃO PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 112 | NÃO PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 113 | NÃO PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 114 | NÃO PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 115 | NÃO PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 116 | PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 117 | PROVIMENTO,PROVIMENTO,BERT_LSTM,humans 118 | NÃO PROVIMENTO,PROVIMENTO,BERT_LSTM,humans 119 | NÃO PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 120 | PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 121 | NÃO PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 122 | NÃO PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 123 | NÃO PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 124 | PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 125 | NÃO PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 126 | NÃO PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 127 | NÃO PROVIMENTO,PROVIMENTO,BERT_LSTM,humans 128 | PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 129 | PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 130 | PROVIMENTO,PROVIMENTO,BERT_LSTM,humans 131 | PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 132 | NÃO PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 133 | NÃO PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 134 | NÃO PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 135 | NÃO PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 136 | PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 137 | NÃO PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 138 | PROVIMENTO,PROVIMENTO,BERT_LSTM,humans 139 | PROVIMENTO,PROVIMENTO,BERT_LSTM,humans 140 | PROVIMENTO,PROVIMENTO,BERT_LSTM,humans 141 | NÃO PROVIMENTO,PROVIMENTO,BERT_LSTM,humans 142 | NÃO PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 143 | PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 144 | NÃO PROVIMENTO,PROVIMENTO,BERT_LSTM,humans 145 | NÃO PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 146 | NÃO PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 147 | NÃO PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 148 | PROVIMENTO,PROVIMENTO,BERT_LSTM,humans 149 | PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 150 | PROVIMENTO,PROVIMENTO,BERT_LSTM,humans 151 | NÃO PROVIMENTO,PROVIMENTO,BERT_LSTM,humans 152 | PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 153 | NÃO PROVIMENTO,PROVIMENTO,BERT_LSTM,humans 154 | PROVIMENTO,PROVIMENTO,BERT_LSTM,humans 155 | PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 156 | PROVIMENTO,PROVIMENTO,BERT_LSTM,humans 157 | NÃO PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 158 | NÃO PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 159 | PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 160 | PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 161 | NÃO PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 162 | PROVIMENTO,PROVIMENTO,BERT_LSTM,humans 163 | NÃO PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 164 | PROVIMENTO,PROVIMENTO,BERT_LSTM,humans 165 | NÃO PROVIMENTO,PROVIMENTO,BERT_LSTM,humans 166 | NÃO PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 167 | NÃO PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 168 | NÃO PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 169 | NÃO PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 170 | PROVIMENTO,PROVIMENTO,BERT_LSTM,humans 171 | NÃO PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 172 | PROVIMENTO,PROVIMENTO,BERT_LSTM,humans 173 | PROVIMENTO,PROVIMENTO,BERT_LSTM,humans 174 | NÃO PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 175 | PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 176 | NÃO PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 177 | NÃO PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 178 | NÃO PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 179 | PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 180 | PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 181 | PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 182 | NÃO PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 183 | NÃO PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 184 | PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 185 | NÃO PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 186 | NÃO PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 187 | PROVIMENTO,PROVIMENTO,BERT_LSTM,humans 188 | NÃO PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 189 | PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 190 | NÃO PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 191 | NÃO PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 192 | PROVIMENTO,PROVIMENTO,BERT_LSTM,humans 193 | PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 194 | PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 195 | NÃO PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 196 | PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 197 | NÃO PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 198 | NÃO PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 199 | NÃO PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 200 | NÃO PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 201 | NÃO PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 202 | PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 203 | NÃO PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 204 | PROVIMENTO,PROVIMENTO,BERT_LSTM,humans 205 | PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 206 | PROVIMENTO,PROVIMENTO,BERT_LSTM,humans 207 | NÃO PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 208 | NÃO PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 209 | NÃO PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 210 | NÃO PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 211 | PROVIMENTO,PROVIMENTO,BERT_LSTM,humans 212 | NÃO PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 213 | NÃO PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 214 | NÃO PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 215 | NÃO PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 216 | PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 217 | NÃO PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 218 | NÃO PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 219 | PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 220 | NÃO PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 221 | PROVIMENTO,PROVIMENTO,BERT_LSTM,humans 222 | PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 223 | PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 224 | NÃO PROVIMENTO,PROVIMENTO,BERT_LSTM,humans 225 | NÃO PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 226 | NÃO PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 227 | PROVIMENTO,PROVIMENTO,BERT_LSTM,humans 228 | PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 229 | NÃO PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 230 | NÃO PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 231 | NÃO PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 232 | PROVIMENTO,PROVIMENTO,BERT_LSTM,humans 233 | NÃO PROVIMENTO,PROVIMENTO,BERT_LSTM,humans 234 | NÃO PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 235 | NÃO PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 236 | NÃO PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 237 | NÃO PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 238 | PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 239 | NÃO PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 240 | NÃO PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 241 | PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 242 | PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 243 | NÃO PROVIMENTO,PROVIMENTO,BERT_LSTM,humans 244 | PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 245 | PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 246 | NÃO PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 247 | PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 248 | NÃO PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 249 | NÃO PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 250 | PROVIMENTO,PROVIMENTO,BERT_LSTM,humans 251 | PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 252 | PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 253 | PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 254 | PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 255 | PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 256 | PROVIMENTO,PROVIMENTO,BERT_LSTM,humans 257 | NÃO PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 258 | PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 259 | NÃO PROVIMENTO,PROVIMENTO,BERT_LSTM,humans 260 | NÃO PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 261 | PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 262 | PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 263 | PROVIMENTO,PROVIMENTO,BERT_LSTM,humans 264 | NÃO PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 265 | NÃO PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 266 | NÃO PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 267 | NÃO PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 268 | PROVIMENTO,PROVIMENTO,BERT_LSTM,humans 269 | NÃO PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 270 | NÃO PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 271 | NÃO PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 272 | NÃO PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 273 | NÃO PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 274 | NÃO PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 275 | NÃO PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 276 | PROVIMENTO,PROVIMENTO,BERT_LSTM,humans 277 | PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 278 | NÃO PROVIMENTO,PROVIMENTO,BERT_LSTM,humans 279 | NÃO PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 280 | NÃO PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 281 | NÃO PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 282 | NÃO PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 283 | PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 284 | PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 285 | PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 286 | NÃO PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 287 | NÃO PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 288 | NÃO PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 289 | NÃO PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 290 | NÃO PROVIMENTO,PROVIMENTO,BERT_LSTM,humans 291 | NÃO PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 292 | NÃO PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 293 | NÃO PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 294 | NÃO PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 295 | NÃO PROVIMENTO,PROVIMENTO,BERT_LSTM,humans 296 | NÃO PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 297 | PROVIMENTO,PROVIMENTO,BERT_LSTM,humans 298 | NÃO PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 299 | NÃO PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 300 | NÃO PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 301 | NÃO PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 302 | PROVIMENTO,PROVIMENTO,BERT_LSTM,humans 303 | PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 304 | NÃO PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 305 | NÃO PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 306 | NÃO PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 307 | NÃO PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 308 | PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 309 | NÃO PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 310 | PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 311 | PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 312 | PROVIMENTO,PROVIMENTO,BERT_LSTM,humans 313 | PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 314 | PROVIMENTO,PROVIMENTO,BERT_LSTM,humans 315 | PROVIMENTO,PROVIMENTO,BERT_LSTM,humans 316 | PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 317 | NÃO PROVIMENTO,PROVIMENTO,BERT_LSTM,humans 318 | PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 319 | NÃO PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 320 | PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 321 | NÃO PROVIMENTO,PROVIMENTO,BERT_LSTM,humans 322 | NÃO PROVIMENTO,PROVIMENTO,BERT_LSTM,humans 323 | NÃO PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 324 | NÃO PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 325 | NÃO PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 326 | PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 327 | PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 328 | NÃO PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 329 | NÃO PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 330 | PROVIMENTO,PROVIMENTO,BERT_LSTM,humans 331 | NÃO PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 332 | NÃO PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 333 | NÃO PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 334 | NÃO PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 335 | NÃO PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 336 | NÃO PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 337 | NÃO PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 338 | NÃO PROVIMENTO,PROVIMENTO,BERT_LSTM,humans 339 | PROVIMENTO,PROVIMENTO,BERT_LSTM,humans 340 | PROVIMENTO,PROVIMENTO,BERT_LSTM,humans 341 | PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 342 | NÃO PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 343 | PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 344 | PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 345 | PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 346 | PROVIMENTO,PROVIMENTO,BERT_LSTM,humans 347 | PROVIMENTO,PROVIMENTO,BERT_LSTM,humans 348 | NÃO PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 349 | NÃO PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 350 | NÃO PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 351 | PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 352 | NÃO PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 353 | PROVIMENTO,PROVIMENTO,BERT_LSTM,humans 354 | NÃO PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 355 | PROVIMENTO,PROVIMENTO,BERT_LSTM,humans 356 | PROVIMENTO,PROVIMENTO,BERT_LSTM,humans 357 | PROVIMENTO,PROVIMENTO,BERT_LSTM,humans 358 | PROVIMENTO,PROVIMENTO,BERT_LSTM,humans 359 | NÃO PROVIMENTO,PROVIMENTO,BERT_LSTM,humans 360 | PROVIMENTO,PROVIMENTO,BERT_LSTM,humans 361 | NÃO PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 362 | PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 363 | NÃO PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 364 | NÃO PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 365 | PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 366 | NÃO PROVIMENTO,PROVIMENTO,BERT_LSTM,humans 367 | NÃO PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 368 | NÃO PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 369 | NÃO PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 370 | PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 371 | NÃO PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 372 | NÃO PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 373 | NÃO PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 374 | PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 375 | NÃO PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 376 | NÃO PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 377 | NÃO PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 378 | PROVIMENTO,PROVIMENTO,BERT_LSTM,humans 379 | NÃO PROVIMENTO,PROVIMENTO,BERT_LSTM,humans 380 | PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 381 | NÃO PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 382 | PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 383 | NÃO PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 384 | NÃO PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 385 | PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 386 | NÃO PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 387 | NÃO PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 388 | PROVIMENTO,PROVIMENTO,BERT_LSTM,humans 389 | PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 390 | NÃO PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 391 | NÃO PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 392 | NÃO PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 393 | PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 394 | NÃO PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 395 | NÃO PROVIMENTO,PROVIMENTO,BERT_LSTM,humans 396 | NÃO PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 397 | PROVIMENTO,PROVIMENTO,BERT_LSTM,humans 398 | PROVIMENTO,PROVIMENTO,BERT_LSTM,humans 399 | PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 400 | NÃO PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 401 | NÃO PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 402 | NÃO PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 403 | NÃO PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 404 | PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 405 | PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 406 | NÃO PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 407 | NÃO PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 408 | NÃO PROVIMENTO,PROVIMENTO,BERT_LSTM,humans 409 | NÃO PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 410 | NÃO PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 411 | NÃO PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 412 | PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 413 | NÃO PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 414 | NÃO PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 415 | PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 416 | NÃO PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 417 | NÃO PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 418 | PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 419 | PROVIMENTO,PROVIMENTO,BERT_LSTM,humans 420 | PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 421 | NÃO PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 422 | PROVIMENTO,PROVIMENTO,BERT_LSTM,humans 423 | PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 424 | NÃO PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 425 | NÃO PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 426 | PROVIMENTO,PROVIMENTO,BERT_LSTM,humans 427 | PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 428 | NÃO PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 429 | PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 430 | NÃO PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 431 | NÃO PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 432 | PROVIMENTO,PROVIMENTO,BERT_LSTM,humans 433 | NÃO PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 434 | PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 435 | NÃO PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 436 | NÃO PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 437 | NÃO PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 438 | NÃO PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 439 | NÃO PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 440 | PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 441 | NÃO PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 442 | PROVIMENTO,PROVIMENTO,BERT_LSTM,humans 443 | NÃO PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 444 | NÃO PROVIMENTO,PROVIMENTO,BERT_LSTM,humans 445 | NÃO PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 446 | PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 447 | PROVIMENTO,PROVIMENTO,BERT_LSTM,humans 448 | PROVIMENTO,PROVIMENTO,BERT_LSTM,humans 449 | PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 450 | PROVIMENTO,PROVIMENTO,BERT_LSTM,humans 451 | PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 452 | PROVIMENTO,PROVIMENTO,BERT_LSTM,humans 453 | PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 454 | NÃO PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 455 | PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 456 | NÃO PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 457 | NÃO PROVIMENTO,PROVIMENTO,BERT_LSTM,humans 458 | NÃO PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 459 | PROVIMENTO,PROVIMENTO,BERT_LSTM,humans 460 | NÃO PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 461 | NÃO PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 462 | PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 463 | NÃO PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 464 | PROVIMENTO,PROVIMENTO,BERT_LSTM,humans 465 | NÃO PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 466 | NÃO PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 467 | PROVIMENTO,PROVIMENTO,BERT_LSTM,humans 468 | PROVIMENTO,PROVIMENTO,BERT_LSTM,humans 469 | NÃO PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 470 | PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 471 | PROVIMENTO,PROVIMENTO,BERT_LSTM,humans 472 | PROVIMENTO,PROVIMENTO,BERT_LSTM,humans 473 | NÃO PROVIMENTO,PROVIMENTO,BERT_LSTM,humans 474 | PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 475 | NÃO PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 476 | NÃO PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 477 | NÃO PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 478 | NÃO PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 479 | NÃO PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 480 | PROVIMENTO,PROVIMENTO,BERT_LSTM,humans 481 | PROVIMENTO,PROVIMENTO,BERT_LSTM,humans 482 | NÃO PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 483 | PROVIMENTO,PROVIMENTO,BERT_LSTM,humans 484 | PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 485 | PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 486 | PROVIMENTO,PROVIMENTO,BERT_LSTM,humans 487 | PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 488 | NÃO PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 489 | PROVIMENTO,PROVIMENTO,BERT_LSTM,humans 490 | NÃO PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 491 | PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 492 | PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 493 | NÃO PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 494 | NÃO PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 495 | NÃO PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 496 | NÃO PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 497 | NÃO PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 498 | PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 499 | PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 500 | NÃO PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 501 | PROVIMENTO,PROVIMENTO,BERT_LSTM,humans 502 | PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 503 | PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 504 | PROVIMENTO,PROVIMENTO,BERT_LSTM,humans 505 | PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 506 | PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 507 | PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 508 | PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 509 | NÃO PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 510 | NÃO PROVIMENTO,PROVIMENTO,BERT_LSTM,humans 511 | PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 512 | NÃO PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 513 | PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 514 | NÃO PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 515 | PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 516 | PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 517 | NÃO PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 518 | NÃO PROVIMENTO,PROVIMENTO,BERT_LSTM,humans 519 | NÃO PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 520 | NÃO PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 521 | NÃO PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 522 | PROVIMENTO,PROVIMENTO,BERT_LSTM,humans 523 | NÃO PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 524 | NÃO PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 525 | NÃO PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 526 | PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 527 | NÃO PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 528 | PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 529 | NÃO PROVIMENTO,PROVIMENTO,BERT_LSTM,humans 530 | NÃO PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 531 | NÃO PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 532 | NÃO PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 533 | PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 534 | NÃO PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 535 | PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 536 | NÃO PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 537 | NÃO PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 538 | NÃO PROVIMENTO,PROVIMENTO,BERT_LSTM,humans 539 | PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 540 | NÃO PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 541 | PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 542 | PROVIMENTO,PROVIMENTO,BERT_LSTM,humans 543 | NÃO PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 544 | NÃO PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 545 | PROVIMENTO,PROVIMENTO,BERT_LSTM,humans 546 | NÃO PROVIMENTO,PROVIMENTO,BERT_LSTM,humans 547 | PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 548 | NÃO PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 549 | NÃO PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 550 | PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 551 | NÃO PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 552 | NÃO PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 553 | PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 554 | PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 555 | NÃO PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 556 | PROVIMENTO,PROVIMENTO,BERT_LSTM,humans 557 | PROVIMENTO,PROVIMENTO,BERT_LSTM,humans 558 | NÃO PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 559 | PROVIMENTO,PROVIMENTO,BERT_LSTM,humans 560 | PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 561 | PROVIMENTO,PROVIMENTO,BERT_LSTM,humans 562 | PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 563 | NÃO PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 564 | PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 565 | PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 566 | NÃO PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 567 | NÃO PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 568 | NÃO PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 569 | NÃO PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 570 | PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 571 | PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 572 | NÃO PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 573 | NÃO PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 574 | PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 575 | PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 576 | PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 577 | NÃO PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 578 | NÃO PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 579 | PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 580 | NÃO PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 581 | PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 582 | PROVIMENTO,PROVIMENTO,BERT_LSTM,humans 583 | NÃO PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 584 | NÃO PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 585 | NÃO PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 586 | NÃO PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 587 | PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 588 | NÃO PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 589 | NÃO PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 590 | NÃO PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 591 | NÃO PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 592 | NÃO PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 593 | PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 594 | PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 595 | PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 596 | NÃO PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 597 | PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 598 | NÃO PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 599 | NÃO PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 600 | NÃO PROVIMENTO,PROVIMENTO,BERT_LSTM,humans 601 | NÃO PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 602 | PROVIMENTO,PROVIMENTO,BERT_LSTM,humans 603 | NÃO PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 604 | PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 605 | NÃO PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 606 | PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 607 | NÃO PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 608 | NÃO PROVIMENTO,PROVIMENTO,BERT_LSTM,humans 609 | PROVIMENTO,PROVIMENTO,BERT_LSTM,humans 610 | NÃO PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 611 | NÃO PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 612 | PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 613 | NÃO PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 614 | NÃO PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 615 | NÃO PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 616 | NÃO PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 617 | NÃO PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 618 | NÃO PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 619 | NÃO PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 620 | PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 621 | NÃO PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 622 | NÃO PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 623 | NÃO PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 624 | NÃO PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 625 | PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 626 | PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 627 | PROVIMENTO,PROVIMENTO,BERT_LSTM,humans 628 | NÃO PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 629 | NÃO PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 630 | NÃO PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 631 | NÃO PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 632 | NÃO PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 633 | NÃO PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 634 | NÃO PROVIMENTO,PROVIMENTO,BERT_LSTM,humans 635 | NÃO PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 636 | NÃO PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 637 | PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 638 | NÃO PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 639 | NÃO PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 640 | PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 641 | PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 642 | PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 643 | NÃO PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 644 | PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 645 | NÃO PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 646 | NÃO PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 647 | NÃO PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 648 | PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 649 | NÃO PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 650 | NÃO PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 651 | PROVIMENTO,PROVIMENTO,BERT_LSTM,humans 652 | PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 653 | NÃO PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 654 | NÃO PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 655 | NÃO PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 656 | NÃO PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 657 | NÃO PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 658 | NÃO PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 659 | NÃO PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 660 | NÃO PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 661 | PROVIMENTO,PROVIMENTO,BERT_LSTM,humans 662 | PROVIMENTO,PROVIMENTO,BERT_LSTM,humans 663 | NÃO PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 664 | PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 665 | NÃO PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 666 | NÃO PROVIMENTO,PROVIMENTO,BERT_LSTM,humans 667 | NÃO PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 668 | NÃO PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 669 | NÃO PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 670 | PROVIMENTO,PROVIMENTO,BERT_LSTM,humans 671 | NÃO PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 672 | NÃO PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 673 | NÃO PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 674 | NÃO PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 675 | PROVIMENTO,PROVIMENTO,BERT_LSTM,humans 676 | PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 677 | PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 678 | PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 679 | PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 680 | PROVIMENTO,PROVIMENTO,BERT_LSTM,humans 681 | PROVIMENTO,PROVIMENTO,BERT_LSTM,humans 682 | NÃO PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 683 | NÃO PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 684 | NÃO PROVIMENTO,PROVIMENTO,BERT_LSTM,humans 685 | PROVIMENTO,PROVIMENTO,BERT_LSTM,humans 686 | PROVIMENTO,PROVIMENTO,BERT_LSTM,humans 687 | NÃO PROVIMENTO,PROVIMENTO,BERT_LSTM,humans 688 | NÃO PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 689 | NÃO PROVIMENTO,NÃO PROVIMENTO,BERT_LSTM,humans 690 | PROVIMENTO,PROVIMENTO,BERT_LSTM,humans 691 | PROVIMENTO,PROVIMENTO,BERT_LSTM,humans 692 | -------------------------------------------------------------------------------- /code/07-generate_expert_information.ipynb: -------------------------------------------------------------------------------- 1 | { 2 | "cells": [ 3 | { 4 | "cell_type": "code", 5 | "execution_count": 1, 6 | "id": "c08fdc20-b2ed-41eb-bc7f-91a52d965bee", 7 | "metadata": {}, 8 | "outputs": [], 9 | "source": [ 10 | "import pandas as pd\n", 11 | "import numpy as np\n", 12 | "expert_id = pd.read_csv('../data/expert_label_identification.csv')\n", 13 | "expert_info = pd.read_csv('../data/human_experts_data.csv')" 14 | ] 15 | }, 16 | { 17 | "cell_type": "code", 18 | "execution_count": 2, 19 | "id": "d7981803-f67d-4395-9081-91204fd025af", 20 | "metadata": {}, 21 | "outputs": [ 22 | { 23 | "data": { 24 | "text/html": [ 25 | "
\n", 26 | "\n", 39 | "\n", 40 | " \n", 41 | " \n", 42 | " \n", 43 | " \n", 44 | " \n", 45 | " \n", 46 | " \n", 47 | " \n", 48 | " \n", 49 | " \n", 50 | " \n", 51 | " \n", 52 | " \n", 53 | " \n", 54 | " \n", 55 | " \n", 56 | " \n", 57 | " \n", 58 | " \n", 59 | " \n", 60 | " \n", 61 | " \n", 62 | " \n", 63 | " \n", 64 | " \n", 65 | " \n", 66 | " \n", 67 | " \n", 68 | " \n", 69 | " \n", 70 | " \n", 71 | " \n", 72 | " \n", 73 | " \n", 74 | " \n", 75 | " \n", 76 | " \n", 77 | " \n", 78 | " \n", 79 | " \n", 80 | " \n", 81 | " \n", 82 | " \n", 83 | " \n", 84 | " \n", 85 | " \n", 86 | " \n", 87 | " \n", 88 | " \n", 89 | " \n", 90 | " \n", 91 | " \n", 92 | " \n", 93 | " \n", 94 | " \n", 95 | " \n", 96 | " \n", 97 | " \n", 98 | " \n", 99 | " \n", 100 | " \n", 101 | " \n", 102 | " \n", 103 | " \n", 104 | "
case_numbervolunteer_id
00501775-80.2018.4.05.8311volunt02
10507128-06.2019.4.05.8202volunt18
20502858-95.2017.4.05.8302volunt06
30533196-12.2018.4.05.8013volunt29
40504055-24.2018.4.05.8311volunt11
.........
6850502542-82.2017.4.05.8205volunt02
6860504586-52.2018.4.05.8201volunt32
6870522136-09.2017.4.05.8100volunt12
6880502287-96.2018.4.05.8106volunt12
6890517669-83.2019.4.05.8013volunt32
\n", 105 | "

690 rows × 2 columns

\n", 106 | "
" 107 | ], 108 | "text/plain": [ 109 | " case_number volunteer_id\n", 110 | "0 0501775-80.2018.4.05.8311 volunt02\n", 111 | "1 0507128-06.2019.4.05.8202 volunt18\n", 112 | "2 0502858-95.2017.4.05.8302 volunt06\n", 113 | "3 0533196-12.2018.4.05.8013 volunt29\n", 114 | "4 0504055-24.2018.4.05.8311 volunt11\n", 115 | ".. ... ...\n", 116 | "685 0502542-82.2017.4.05.8205 volunt02\n", 117 | "686 0504586-52.2018.4.05.8201 volunt32\n", 118 | "687 0522136-09.2017.4.05.8100 volunt12\n", 119 | "688 0502287-96.2018.4.05.8106 volunt12\n", 120 | "689 0517669-83.2019.4.05.8013 volunt32\n", 121 | "\n", 122 | "[690 rows x 2 columns]" 123 | ] 124 | }, 125 | "execution_count": 2, 126 | "metadata": {}, 127 | "output_type": "execute_result" 128 | } 129 | ], 130 | "source": [ 131 | "expert_id" 132 | ] 133 | }, 134 | { 135 | "cell_type": "code", 136 | "execution_count": 3, 137 | "id": "f85497a2-38c4-4950-83a9-ca3b23c60c72", 138 | "metadata": {}, 139 | "outputs": [ 140 | { 141 | "data": { 142 | "text/plain": [ 143 | "22" 144 | ] 145 | }, 146 | "execution_count": 3, 147 | "metadata": {}, 148 | "output_type": "execute_result" 149 | } 150 | ], 151 | "source": [ 152 | "expert_id.volunteer_id.nunique()" 153 | ] 154 | }, 155 | { 156 | "cell_type": "code", 157 | "execution_count": 4, 158 | "id": "aab6c98e-e632-4a6a-8de3-30656c33c0a8", 159 | "metadata": {}, 160 | "outputs": [ 161 | { 162 | "data": { 163 | "text/html": [ 164 | "
\n", 165 | "\n", 178 | "\n", 179 | " \n", 180 | " \n", 181 | " \n", 182 | " \n", 183 | " \n", 184 | " \n", 185 | " \n", 186 | " \n", 187 | " \n", 188 | " \n", 189 | " \n", 190 | " \n", 191 | " \n", 192 | " \n", 193 | " \n", 194 | " \n", 195 | " \n", 196 | " \n", 197 | " \n", 198 | " \n", 199 | " \n", 200 | " \n", 201 | " \n", 202 | " \n", 203 | " \n", 204 | " \n", 205 | " \n", 206 | " \n", 207 | " \n", 208 | " \n", 209 | " \n", 210 | " \n", 211 | " \n", 212 | " \n", 213 | " \n", 214 | " \n", 215 | " \n", 216 | " \n", 217 | " \n", 218 | " \n", 219 | " \n", 220 | " \n", 221 | " \n", 222 | " \n", 223 | " \n", 224 | " \n", 225 | " \n", 226 | " \n", 227 | " \n", 228 | " \n", 229 | " \n", 230 | " \n", 231 | " \n", 232 | " \n", 233 | " \n", 234 | " \n", 235 | " \n", 236 | " \n", 237 | " \n", 238 | " \n", 239 | " \n", 240 | " \n", 241 | " \n", 242 | " \n", 243 | " \n", 244 | " \n", 245 | " \n", 246 | " \n", 247 | " \n", 248 | " \n", 249 | " \n", 250 | " \n", 251 | " \n", 252 | " \n", 253 | " \n", 254 | " \n", 255 | " \n", 256 | " \n", 257 | " \n", 258 | " \n", 259 | " \n", 260 | " \n", 261 | " \n", 262 | " \n", 263 | " \n", 264 | " \n", 265 | " \n", 266 | " \n", 267 | " \n", 268 | " \n", 269 | " \n", 270 | " \n", 271 | " \n", 272 | " \n", 273 | " \n", 274 | " \n", 275 | " \n", 276 | " \n", 277 | " \n", 278 | " \n", 279 | " \n", 280 | " \n", 281 | " \n", 282 | " \n", 283 | " \n", 284 | " \n", 285 | " \n", 286 | " \n", 287 | " \n", 288 | " \n", 289 | " \n", 290 | " \n", 291 | " \n", 292 | " \n", 293 | " \n", 294 | " \n", 295 | " \n", 296 | " \n", 297 | " \n", 298 | " \n", 299 | " \n", 300 | " \n", 301 | " \n", 302 | " \n", 303 | " \n", 304 | " \n", 305 | " \n", 306 | " \n", 307 | " \n", 308 | " \n", 309 | " \n", 310 | " \n", 311 | " \n", 312 | " \n", 313 | " \n", 314 | " \n", 315 | " \n", 316 | " \n", 317 | " \n", 318 | " \n", 319 | " \n", 320 | " \n", 321 | " \n", 322 | " \n", 323 | " \n", 324 | " \n", 325 | " \n", 326 | " \n", 327 | " \n", 328 | " \n", 329 | " \n", 330 | " \n", 331 | " \n", 332 | " \n", 333 | " \n", 334 | " \n", 335 | " \n", 336 | " \n", 337 | " \n", 338 | " \n", 339 | " \n", 340 | " \n", 341 | " \n", 342 | " \n", 343 | " \n", 344 | " \n", 345 | " \n", 346 | " \n", 347 | " \n", 348 | " \n", 349 | " \n", 350 | " \n", 351 | " \n", 352 | " \n", 353 | " \n", 354 | " \n", 355 | " \n", 356 | " \n", 357 | " \n", 358 | " \n", 359 | " \n", 360 | " \n", 361 | " \n", 362 | " \n", 363 | " \n", 364 | " \n", 365 | " \n", 366 | " \n", 367 | " \n", 368 | " \n", 369 | " \n", 370 | " \n", 371 | " \n", 372 | " \n", 373 | " \n", 374 | " \n", 375 | " \n", 376 | " \n", 377 | " \n", 378 | " \n", 379 | " \n", 380 | " \n", 381 | " \n", 382 | " \n", 383 | " \n", 384 | " \n", 385 | " \n", 386 | " \n", 387 | " \n", 388 | " \n", 389 | " \n", 390 | " \n", 391 | " \n", 392 | " \n", 393 | " \n", 394 | " \n", 395 | " \n", 396 | " \n", 397 | " \n", 398 | " \n", 399 | " \n", 400 | " \n", 401 | " \n", 402 | " \n", 403 | " \n", 404 | " \n", 405 | " \n", 406 | " \n", 407 | " \n", 408 | " \n", 409 | " \n", 410 | " \n", 411 | " \n", 412 | " \n", 413 | " \n", 414 | " \n", 415 | " \n", 416 | " \n", 417 | " \n", 418 | " \n", 419 | " \n", 420 | " \n", 421 | " \n", 422 | " \n", 423 | " \n", 424 | " \n", 425 | " \n", 426 | " \n", 427 | " \n", 428 | " \n", 429 | " \n", 430 | " \n", 431 | " \n", 432 | " \n", 433 | " \n", 434 | " \n", 435 | " \n", 436 | " \n", 437 | " \n", 438 | " \n", 439 | " \n", 440 | " \n", 441 | " \n", 442 | " \n", 443 | " \n", 444 | " \n", 445 | " \n", 446 | " \n", 447 | " \n", 448 | " \n", 449 | " \n", 450 | " \n", 451 | " \n", 452 | " \n", 453 | " \n", 454 | " \n", 455 | " \n", 456 | " \n", 457 | " \n", 458 | " \n", 459 | " \n", 460 | " \n", 461 | " \n", 462 | " \n", 463 | " \n", 464 | " \n", 465 | " \n", 466 | " \n", 467 | " \n", 468 | " \n", 469 | " \n", 470 | " \n", 471 | " \n", 472 | " \n", 473 | " \n", 474 | " \n", 475 | " \n", 476 | " \n", 477 | " \n", 478 | " \n", 479 | " \n", 480 | " \n", 481 | " \n", 482 | " \n", 483 | " \n", 484 | " \n", 485 | " \n", 486 | " \n", 487 | " \n", 488 | " \n", 489 | "
user_idrolestateyears_experience_judiciaryyears_experience_federal_small_claims_courtsyears_higher_legal_education
0volunt01Federal JudgePE6.02.06.5
1volunt02Federal JudgeRN16.015.09.0
2volunt03Federal JudgeRN9.09.05.0
3volunt04Analyst (Clerk)RN4.54.56.5
4volunt05Analyst (Clerk)RN8.03.05.0
5volunt06Technical (Clerk)RN8.08.06.5
6volunt07Analyst (Clerk)PE7.04.06.5
7volunt08Federal JudgeRN12.02.05.0
8volunt09Analyst (Clerk)RN5.05.06.5
9volunt10Analyst (Clerk)RN8.08.06.5
10volunt11Analyst (Clerk)RN8.08.06.5
11volunt12Technical (Clerk)RN16.016.06.5
12volunt13Technical (Clerk)RN10.07.06.5
13volunt14Analyst (Clerk)RN17.017.06.5
14volunt15Technical (Clerk)RN27.018.06.5
15volunt16Technical (Clerk)RN16.013.06.5
16volunt17Analyst (Clerk)PE6.06.06.5
17volunt18Analyst (Clerk)RN11.08.06.5
18volunt19Analyst (Clerk)RN9.09.06.5
19volunt20Federal JudgeRN9.09.07.0
20volunt21Federal JudgeRN9.09.07.0
21volunt22Technical (Clerk)RN8.08.06.5
22volunt23Technical (Clerk)RN16.04.06.5
23volunt24Technical (Clerk)RN10.05.06.5
24volunt25Analyst (Clerk)RN8.05.06.5
25volunt26Analyst (Clerk)RN8.02.06.5
26volunt27Analyst (Clerk)RN24.03.06.5
27volunt28Technical (Clerk)RN17.04.06.5
28volunt29Analyst (Clerk)RN22.09.06.5
29volunt30Analyst (Clerk)RN6.03.06.5
30volunt31Technical (Clerk)RN10.08.06.5
31volunt32Technical (Clerk)RN22.07.05.0
32volunt33Technical (Clerk)RN5.05.06.5
\n", 490 | "
" 491 | ], 492 | "text/plain": [ 493 | " user_id role state years_experience_judiciary \\\n", 494 | "0 volunt01 Federal Judge PE 6.0 \n", 495 | "1 volunt02 Federal Judge RN 16.0 \n", 496 | "2 volunt03 Federal Judge RN 9.0 \n", 497 | "3 volunt04 Analyst (Clerk) RN 4.5 \n", 498 | "4 volunt05 Analyst (Clerk) RN 8.0 \n", 499 | "5 volunt06 Technical (Clerk) RN 8.0 \n", 500 | "6 volunt07 Analyst (Clerk) PE 7.0 \n", 501 | "7 volunt08 Federal Judge RN 12.0 \n", 502 | "8 volunt09 Analyst (Clerk) RN 5.0 \n", 503 | "9 volunt10 Analyst (Clerk) RN 8.0 \n", 504 | "10 volunt11 Analyst (Clerk) RN 8.0 \n", 505 | "11 volunt12 Technical (Clerk) RN 16.0 \n", 506 | "12 volunt13 Technical (Clerk) RN 10.0 \n", 507 | "13 volunt14 Analyst (Clerk) RN 17.0 \n", 508 | "14 volunt15 Technical (Clerk) RN 27.0 \n", 509 | "15 volunt16 Technical (Clerk) RN 16.0 \n", 510 | "16 volunt17 Analyst (Clerk) PE 6.0 \n", 511 | "17 volunt18 Analyst (Clerk) RN 11.0 \n", 512 | "18 volunt19 Analyst (Clerk) RN 9.0 \n", 513 | "19 volunt20 Federal Judge RN 9.0 \n", 514 | "20 volunt21 Federal Judge RN 9.0 \n", 515 | "21 volunt22 Technical (Clerk) RN 8.0 \n", 516 | "22 volunt23 Technical (Clerk) RN 16.0 \n", 517 | "23 volunt24 Technical (Clerk) RN 10.0 \n", 518 | "24 volunt25 Analyst (Clerk) RN 8.0 \n", 519 | "25 volunt26 Analyst (Clerk) RN 8.0 \n", 520 | "26 volunt27 Analyst (Clerk) RN 24.0 \n", 521 | "27 volunt28 Technical (Clerk) RN 17.0 \n", 522 | "28 volunt29 Analyst (Clerk) RN 22.0 \n", 523 | "29 volunt30 Analyst (Clerk) RN 6.0 \n", 524 | "30 volunt31 Technical (Clerk) RN 10.0 \n", 525 | "31 volunt32 Technical (Clerk) RN 22.0 \n", 526 | "32 volunt33 Technical (Clerk) RN 5.0 \n", 527 | "\n", 528 | " years_experience_federal_small_claims_courts years_higher_legal_education \n", 529 | "0 2.0 6.5 \n", 530 | "1 15.0 9.0 \n", 531 | "2 9.0 5.0 \n", 532 | "3 4.5 6.5 \n", 533 | "4 3.0 5.0 \n", 534 | "5 8.0 6.5 \n", 535 | "6 4.0 6.5 \n", 536 | "7 2.0 5.0 \n", 537 | "8 5.0 6.5 \n", 538 | "9 8.0 6.5 \n", 539 | "10 8.0 6.5 \n", 540 | "11 16.0 6.5 \n", 541 | "12 7.0 6.5 \n", 542 | "13 17.0 6.5 \n", 543 | "14 18.0 6.5 \n", 544 | "15 13.0 6.5 \n", 545 | "16 6.0 6.5 \n", 546 | "17 8.0 6.5 \n", 547 | "18 9.0 6.5 \n", 548 | "19 9.0 7.0 \n", 549 | "20 9.0 7.0 \n", 550 | "21 8.0 6.5 \n", 551 | "22 4.0 6.5 \n", 552 | "23 5.0 6.5 \n", 553 | "24 5.0 6.5 \n", 554 | "25 2.0 6.5 \n", 555 | "26 3.0 6.5 \n", 556 | "27 4.0 6.5 \n", 557 | "28 9.0 6.5 \n", 558 | "29 3.0 6.5 \n", 559 | "30 8.0 6.5 \n", 560 | "31 7.0 5.0 \n", 561 | "32 5.0 6.5 " 562 | ] 563 | }, 564 | "execution_count": 4, 565 | "metadata": {}, 566 | "output_type": "execute_result" 567 | } 568 | ], 569 | "source": [ 570 | "expert_info" 571 | ] 572 | }, 573 | { 574 | "cell_type": "code", 575 | "execution_count": 5, 576 | "id": "2e39a46a-276f-459e-83ea-ac9841044721", 577 | "metadata": {}, 578 | "outputs": [ 579 | { 580 | "data": { 581 | "text/html": [ 582 | "
\n", 583 | "\n", 596 | "\n", 597 | " \n", 598 | " \n", 599 | " \n", 600 | " \n", 601 | " \n", 602 | " \n", 603 | " \n", 604 | " \n", 605 | " \n", 606 | " \n", 607 | " \n", 608 | " \n", 609 | " \n", 610 | " \n", 611 | " \n", 612 | " \n", 613 | " \n", 614 | " \n", 615 | " \n", 616 | " \n", 617 | " \n", 618 | " \n", 619 | " \n", 620 | " \n", 621 | " \n", 622 | " \n", 623 | " \n", 624 | " \n", 625 | " \n", 626 | " \n", 627 | " \n", 628 | " \n", 629 | " \n", 630 | " \n", 631 | " \n", 632 | " \n", 633 | " \n", 634 | " \n", 635 | " \n", 636 | " \n", 637 | " \n", 638 | " \n", 639 | " \n", 640 | " \n", 641 | " \n", 642 | " \n", 643 | " \n", 644 | " \n", 645 | " \n", 646 | " \n", 647 | " \n", 648 | " \n", 649 | " \n", 650 | " \n", 651 | " \n", 652 | " \n", 653 | " \n", 654 | " \n", 655 | " \n", 656 | " \n", 657 | " \n", 658 | " \n", 659 | " \n", 660 | " \n", 661 | " \n", 662 | " \n", 663 | " \n", 664 | " \n", 665 | " \n", 666 | " \n", 667 | " \n", 668 | " \n", 669 | " \n", 670 | " \n", 671 | " \n", 672 | " \n", 673 | " \n", 674 | " \n", 675 | " \n", 676 | " \n", 677 | " \n", 678 | " \n", 679 | " \n", 680 | " \n", 681 | " \n", 682 | " \n", 683 | " \n", 684 | " \n", 685 | " \n", 686 | " \n", 687 | " \n", 688 | " \n", 689 | " \n", 690 | " \n", 691 | " \n", 692 | " \n", 693 | " \n", 694 | " \n", 695 | " \n", 696 | " \n", 697 | " \n", 698 | " \n", 699 | " \n", 700 | " \n", 701 | " \n", 702 | " \n", 703 | " \n", 704 | " \n", 705 | " \n", 706 | " \n", 707 | " \n", 708 | " \n", 709 | " \n", 710 | " \n", 711 | " \n", 712 | " \n", 713 | " \n", 714 | " \n", 715 | " \n", 716 | "
volunteer_idcase_number
0volunt0125
1volunt0237
2volunt0318
3volunt0418
4volunt0545
5volunt0649
6volunt0729
7volunt0835
8volunt0910
9volunt1043
10volunt1156
11volunt1248
12volunt1444
13volunt1810
14volunt2044
15volunt2321
16volunt245
17volunt2950
18volunt3026
19volunt3125
20volunt3221
21volunt3331
\n", 717 | "
" 718 | ], 719 | "text/plain": [ 720 | " volunteer_id case_number\n", 721 | "0 volunt01 25\n", 722 | "1 volunt02 37\n", 723 | "2 volunt03 18\n", 724 | "3 volunt04 18\n", 725 | "4 volunt05 45\n", 726 | "5 volunt06 49\n", 727 | "6 volunt07 29\n", 728 | "7 volunt08 35\n", 729 | "8 volunt09 10\n", 730 | "9 volunt10 43\n", 731 | "10 volunt11 56\n", 732 | "11 volunt12 48\n", 733 | "12 volunt14 44\n", 734 | "13 volunt18 10\n", 735 | "14 volunt20 44\n", 736 | "15 volunt23 21\n", 737 | "16 volunt24 5\n", 738 | "17 volunt29 50\n", 739 | "18 volunt30 26\n", 740 | "19 volunt31 25\n", 741 | "20 volunt32 21\n", 742 | "21 volunt33 31" 743 | ] 744 | }, 745 | "execution_count": 5, 746 | "metadata": {}, 747 | "output_type": "execute_result" 748 | } 749 | ], 750 | "source": [ 751 | "cases_per_expert = expert_id.groupby('volunteer_id').count().reset_index()\n", 752 | "cases_per_expert" 753 | ] 754 | }, 755 | { 756 | "cell_type": "code", 757 | "execution_count": 6, 758 | "id": "2161bb4f-ed52-4dd2-b675-354344389d23", 759 | "metadata": {}, 760 | "outputs": [ 761 | { 762 | "name": "stdout", 763 | "output_type": "stream", 764 | "text": [ 765 | "Weighted Average - Experience in Federal Courts: 11.207246376811595 years\n" 766 | ] 767 | } 768 | ], 769 | "source": [ 770 | "years_experience_judiciary = cases_per_expert.merge(expert_info[['user_id', 'years_experience_judiciary']], how='inner', left_on='volunteer_id', right_on='user_id').copy()\n", 771 | "years_experience_judiciary.drop('user_id', axis=1, inplace=True)\n", 772 | "print(f'Weighted Average - Experience in Federal Courts: {np.average(years_experience_judiciary.years_experience_judiciary, weights=years_experience_judiciary.case_number)} years')" 773 | ] 774 | }, 775 | { 776 | "cell_type": "code", 777 | "execution_count": 7, 778 | "id": "91057f9b-9d93-4ae1-ab33-0ae413b124d2", 779 | "metadata": {}, 780 | "outputs": [ 781 | { 782 | "name": "stdout", 783 | "output_type": "stream", 784 | "text": [ 785 | "Weighted Average - Legal Higher Education: 6.407246376811594 years\n" 786 | ] 787 | } 788 | ], 789 | "source": [ 790 | "years_higher_legal_education = cases_per_expert.merge(expert_info[['user_id', 'years_higher_legal_education']], how='inner', left_on='volunteer_id', right_on='user_id').copy()\n", 791 | "years_higher_legal_education.drop('user_id', axis=1, inplace=True)\n", 792 | "print(f'Weighted Average - Legal Higher Education: {np.average(years_higher_legal_education.years_higher_legal_education, weights=years_higher_legal_education.case_number)} years')" 793 | ] 794 | }, 795 | { 796 | "cell_type": "code", 797 | "execution_count": 8, 798 | "id": "f192962c-9946-4475-8667-30650814d945", 799 | "metadata": {}, 800 | "outputs": [ 801 | { 802 | "name": "stdout", 803 | "output_type": "stream", 804 | "text": [ 805 | "Weighted Average - Experience FSCC: 8.020289855072464 years\n" 806 | ] 807 | } 808 | ], 809 | "source": [ 810 | "years_experience_federal_small_claims_courts = cases_per_expert.merge(expert_info[['user_id', 'years_experience_federal_small_claims_courts']], how='inner', left_on='volunteer_id', right_on='user_id').copy()\n", 811 | "years_experience_federal_small_claims_courts.drop('user_id', axis=1, inplace=True)\n", 812 | "print(f'Weighted Average - Experience FSCC: {np.average(years_experience_federal_small_claims_courts.years_experience_federal_small_claims_courts, weights=years_experience_federal_small_claims_courts.case_number)} years')" 813 | ] 814 | }, 815 | { 816 | "cell_type": "code", 817 | "execution_count": 9, 818 | "id": "50df5b12-6528-46b3-8a95-ebad31f693d3", 819 | "metadata": {}, 820 | "outputs": [ 821 | { 822 | "data": { 823 | "text/plain": [ 824 | "count 22.000000\n", 825 | "mean 31.363636\n", 826 | "std 14.676010\n", 827 | "min 5.000000\n", 828 | "25% 21.000000\n", 829 | "50% 30.000000\n", 830 | "75% 44.000000\n", 831 | "max 56.000000\n", 832 | "Name: case_number, dtype: float64" 833 | ] 834 | }, 835 | "execution_count": 9, 836 | "metadata": {}, 837 | "output_type": "execute_result" 838 | } 839 | ], 840 | "source": [ 841 | "cases_per_expert.case_number.describe()" 842 | ] 843 | }, 844 | { 845 | "cell_type": "code", 846 | "execution_count": null, 847 | "id": "47abf3a1-d7f0-4433-98a4-92af75df7e80", 848 | "metadata": {}, 849 | "outputs": [], 850 | "source": [] 851 | }, 852 | { 853 | "cell_type": "code", 854 | "execution_count": null, 855 | "id": "f149d6fe-26fd-4acc-9812-7ad9dcd36a82", 856 | "metadata": {}, 857 | "outputs": [], 858 | "source": [] 859 | } 860 | ], 861 | "metadata": { 862 | "kernelspec": { 863 | "display_name": "conda_paper_brcad5", 864 | "language": "python", 865 | "name": "conda_paper_brcad5" 866 | }, 867 | "language_info": { 868 | "codemirror_mode": { 869 | "name": "ipython", 870 | "version": 3 871 | }, 872 | "file_extension": ".py", 873 | "mimetype": "text/x-python", 874 | "name": "python", 875 | "nbconvert_exporter": "python", 876 | "pygments_lexer": "ipython3", 877 | "version": "3.9.7" 878 | } 879 | }, 880 | "nbformat": 4, 881 | "nbformat_minor": 5 882 | } 883 | --------------------------------------------------------------------------------