{"metadata":{"kernelspec":{"language":"python","display_name":"Python 3","name":"python3"},"language_info":{"pygments_lexer":"ipython3","nbconvert_exporter":"python","version":"3.6.4","file_extension":".py","codemirror_mode":{"name":"ipython","version":3},"name":"python","mimetype":"text/x-python"}},"nbformat_minor":4,"nbformat":4,"cells":[{"cell_type":"markdown","source":"![Logo-PUC-Minas-Sobre-290x250.png](data:image/jpeg;base64,/9j/4AAQSkZJRgABAQEBLAEsAAD/4UKGRXhpZgAASUkqAAgAAAAJABIBAwABAAAAAQAAABoBBQABAAAAegAAABsBBQABAAAAggAAACgBAwABAAAAAgAAADEBAgANAAAAigAAADIBAgAUAAAAmAAAADsBAgAVAAAArAAAAGmHBAABAAAA3hAAABzqAgAbEAAAwgAAAHAhAAAsAQAAAQAAACwBAAABAAAAR0lNUCAyLjEwLjI4AAAyMDIyOjA1OjA2IDEwOjUyOjE3AEJydW5hIE1pY2FlbGkgUnVnZ2lvAAAyOCAyMzQgMCAwIDAgOCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAAAAYAA5ACABQAAAAsEQAABJACABQAAABAEQAAkZICAAMAAAAwMAAAkpICAAMAAAAwMAAAAaADAAEAAAABAAAAHOoCABsQAABUEQAAAAAAADIwMTg6MDI6MTUgMTA6NDc6MDAAMjAxODowMjoxNSAxMDo0NzowMAAyOCAyMzQgMCAwIDAgOCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAw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PSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iWE1QIENvcmUgNC40LjAtRXhpdjIiPiA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RFdnQ9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZUV2ZW50IyIgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIiB4bWxuczpHSU1QPSJodHRwOi8vd3d3LmdpbXAub3JnL3htcC8iIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyIgeG1wTU06RG9jdW1lbnRJRD0iZ2ltcDpkb2NpZDpnaW1wOmEzMzkyYjFiLWM0MzktNDZiZS04YjFjLWJkZWUyYzI3NWYxNyIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDoyMzQwYTY3Zi0yMzkxLTRhNWItOTQwMy1mZjI1NDRhMThhNGYiIHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD0ieG1wLmRpZDo4ZjQ1NTEzNy05YjI0LTQ2MjItOTBkYy0wMmRjNWFkNzI5M2IiIGRjOkZvcm1hdD0iaW1hZ2UvanBlZyIgR0lNUDpBUEk9IjIuMCIgR0lNUDpQbGF0Zm9ybT0iTGludXgiIEdJTVA6VGltZVN0YW1wPSIxNjUxODQ1MTM5NDQ0MzUyIiBHSU1QOlZlcnNpb249IjIuMTAuMjgiIHhtcDpDcmVhdGVEYXRlPSIyMDE4LTAyLTE1VDEwOjQ3OjAwIiB4bXA6Q3JlYXRvclRvb2w9IkdJTVAgMi4xMCI+IDx4bXBNTTpIaXN0b3J5PiA8cmRmOkJhZz4gPHJkZjpsaSBzdEV2dDphY3Rpb249InNhdmVkIiBzdEV2dDpjaGFuZ2VkPSIvIiBzdEV2dDppbnN0YW5jZUlEPSJ4bXAuaWlkOjc0NWVhYjE5LWFlYTUtNDc3ZS04ZThhLTllZTBiODgzMzZmZiIgc3RFdnQ6c29mdHdhcmVBZ2VudD0iR2ltcCAyLjEwIChMaW51eCkiIHN0RXZ0OndoZW49IjIwMjItMDUtMDZUMTA6NDQ6MzItMDM6MDAiLz4gPHJkZjpsaSBzdEV2dDphY3Rpb249InNhdmVkIiBzdEV2dDpjaGFuZ2VkPSIvIiBzdEV2dDppbnN0YW5jZUlEPSJ4bXAuaWlkOmRmN2YzODliLTNlNmUtNGNjMi1iOTM1LWVkNzg3YjEwNWU3NiIgc3RFdnQ6c29mdHdhcmVBZ2VudD0iR2ltcCAyLjEwIChMaW51eCkiIHN0RXZ0OndoZW49IjIwMjItMDUtMDZUMTA6NDY6MDItMDM6MDAiLz4gPHJkZjpsaSBzdEV2dDphY3Rpb249InNhdmVkIiBzdEV2dDpjaGFuZ2VkPSIvIiBzdEV2dDppbnN0YW5jZUlEPSJ4bXAuaWlkOjA3ZmFkMTZlLWIyYmMtNGQ4Yy1hNDk3LTFlMzUwZmM0M2RlOCIgc3RFdnQ6c29mdHdhcmVBZ2VudD0iR2ltcCAyLjEwIChMaW51eCkiIHN0RXZ0OndoZW49IjIwMjItMDUtMDZUMTA6NTI6MTktMDM6MDAiLz4gPC9yZGY6QmFnPiA8L3htcE1NOkhpc3Rvcnk+IDxkYzpjcmVhdG9yPiA8cmRmOlNlcT4gPHJkZjpsaT5CcnVuYSBNaWNhZWxpIFJ1Z2dpbzwvcmRmOmxpPiA8L3JkZjpTZXE+IDwvZGM6Y3JlYXRvcj4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg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)\n\n## Programa de Pós Graduação em Informática\n\n### Disciplina: Natural Language Processing (NLP)\n\n### Aluno: Felipe A. L. Reis","metadata":{}},{"cell_type":"code","source":"#import nltk\n#nltk.download('all')","metadata":{"execution":{"iopub.status.busy":"2022-07-22T13:37:23.543859Z","iopub.execute_input":"2022-07-22T13:37:23.544257Z","iopub.status.idle":"2022-07-22T13:37:23.593480Z","shell.execute_reply.started":"2022-07-22T13:37:23.544226Z","shell.execute_reply":"2022-07-22T13:37:23.592240Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"import nltk\nnltk.data.path.append('../input/open-multilingual-wordnet')\nnltk.data.path.append('../input/wordnet/')\nnltk.data.path.append('../input/wordnet/wordnet')\nnltk.data.path","metadata":{"execution":{"iopub.status.busy":"2022-07-22T13:37:23.595432Z","iopub.execute_input":"2022-07-22T13:37:23.595779Z","iopub.status.idle":"2022-07-22T13:37:23.646591Z","shell.execute_reply.started":"2022-07-22T13:37:23.595749Z","shell.execute_reply":"2022-07-22T13:37:23.645547Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"%load_ext autoreload\n%autoreload 2","metadata":{"execution":{"iopub.status.busy":"2022-07-22T13:37:23.647731Z","iopub.execute_input":"2022-07-22T13:37:23.648568Z","iopub.status.idle":"2022-07-22T13:37:23.697600Z","shell.execute_reply.started":"2022-07-22T13:37:23.648535Z","shell.execute_reply":"2022-07-22T13:37:23.696225Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"import datetime\nimport os, shutil\nfrom scipy import stats\n\nimport matplotlib.pyplot as plt\nimport numpy as np\nimport pandas as pd\nimport seaborn as sns\n\nfrom sklearn import metrics\nfrom sklearn.model_selection import train_test_split, cross_val_score, cross_val_predict\nfrom sklearn.model_selection import KFold, RepeatedStratifiedKFold\nfrom sklearn.preprocessing import LabelEncoder\n\nfrom sklearn.svm import SVC\nfrom sklearn.linear_model import LogisticRegression, LinearRegression\nfrom sklearn.naive_bayes import MultinomialNB\nfrom sklearn.ensemble import RandomForestClassifier, RandomForestRegressor\nfrom sklearn.preprocessing import StandardScaler\nfrom sklearn.neural_network import MLPRegressor\n\nfrom sklearn.feature_extraction.text import TfidfVectorizer\nfrom sklearn.feature_extraction.text import CountVectorizer","metadata":{"_cell_guid":"79c7e3d0-c299-4dcb-8224-4455121ee9b0","_uuid":"d629ff2d2480ee46fbb7e2d37f6b5fab8052498a","execution":{"iopub.status.busy":"2022-07-22T13:37:23.700947Z","iopub.execute_input":"2022-07-22T13:37:23.701362Z","iopub.status.idle":"2022-07-22T13:37:23.753879Z","shell.execute_reply.started":"2022-07-22T13:37:23.701326Z","shell.execute_reply":"2022-07-22T13:37:23.752763Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"import re\nimport nltk\nfrom nltk.corpus import stopwords\nfrom nltk import word_tokenize\nfrom nltk.tokenize import sent_tokenize\nfrom nltk.stem import PorterStemmer, WordNetLemmatizer, SnowballStemmer, LancasterStemmer\nfrom nltk.tag.perceptron import PerceptronTagger\n\nimport gensim\nimport gensim.downloader as api\nfrom gensim.models import Word2Vec, Doc2Vec, FastText","metadata":{"execution":{"iopub.status.busy":"2022-07-22T13:37:23.755699Z","iopub.execute_input":"2022-07-22T13:37:23.756264Z","iopub.status.idle":"2022-07-22T13:37:23.803603Z","shell.execute_reply.started":"2022-07-22T13:37:23.756234Z","shell.execute_reply":"2022-07-22T13:37:23.802535Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"#with open('../input/stopwords/stopwords/english','r') as fin:\n#    stop_words=word_tokenize(fin.read())","metadata":{"execution":{"iopub.status.busy":"2022-07-22T13:37:23.805178Z","iopub.execute_input":"2022-07-22T13:37:23.805575Z","iopub.status.idle":"2022-07-22T13:37:23.852756Z","shell.execute_reply.started":"2022-07-22T13:37:23.805539Z","shell.execute_reply":"2022-07-22T13:37:23.851518Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"def load_data(filename):\n    data = pd.read_csv(filename, delimiter=',')\n    \n    return data\n    \n\ndef split_data(x_data, y_data, test_size=0.2):\n  \"\"\"Função para divisão dos conjuntos de treinamento e testes.\"\"\"\n\n  return train_test_split(\n    x_data,\n    y_data, \n    test_size = test_size, #percentual do conjunto de treino\n    #random_state = 10 #seed random, para resultados semelhantes\n  )\n\ndef calcula_correlacao(y_true, y_pred):\n    pd_true = pd.DataFrame({'true': y_true})\n    pd_pred = pd.DataFrame({'pred': y_pred})\n\n    pd_pred['pred'] = pd_pred['pred'].transform(lambda x: 0. if x < 0. else (1. if x > 1. else x ))\n\n    test_eval = pd.concat([pd_true, pd_pred], axis=1)\n    \n    return test_eval.corr()\n\ndef calcula_mse(y_true, y_pred):\n    return np.sqrt(mean_squared_error(y_true, y_pred))","metadata":{"execution":{"iopub.status.busy":"2022-07-22T13:37:23.854806Z","iopub.execute_input":"2022-07-22T13:37:23.855526Z","iopub.status.idle":"2022-07-22T13:37:23.908435Z","shell.execute_reply.started":"2022-07-22T13:37:23.855495Z","shell.execute_reply":"2022-07-22T13:37:23.907118Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"---\n# U.S. Patent Phrase to Phrase Matching\n\nAvailable at: https://www.kaggle.com/competitions/us-patent-phrase-to-phrase-matching/\n\nIn this dataset, you are presented pairs of phrases (an anchor and a target phrase) and asked to rate how similar they are on a scale from 0 (not at all similar) to 1 (identical in meaning). This challenge differs from a standard semantic similarity task in that similarity has been scored here within a patent's context, specifically its [CPC classification (version 2021.05)](https://en.wikipedia.org/wiki/Cooperative_Patent_Classification), which indicates the subject to which the patent relates. For example, while the phrases \"bird\" and \"Cape Cod\" may have low semantic similarity in normal language, the likeness of their meaning is much closer if considered in the context of \"house\".\n\nThis is a code competition, in which you will submit code that will be run against an unseen test set. The unseen test set contains approximately 12k pairs of phrases. A small public test set has been provided for testing purposes, but is not used in scoring.\n\nInformation on the meaning of CPC codes may be found on the [USPTO website](https://www.uspto.gov/web/patents/classification/cpc/html/cpc.html). The CPC version 2021.05 can be found on the [CPC archive website](https://www.cooperativepatentclassification.org/Archive).\n\n### Score meanings\nThe scores are in the 0-1 range with increments of 0.25 with the following meanings:\n\n1.0 - Very close match. This is typically an exact match except possibly for differences in conjugation, quantity (e.g. singular vs. plural), and addition or removal of stopwords (e.g. “the”, “and”, “or”).\n0.75 - Close synonym, e.g. “mobile phone” vs. “cellphone”. This also includes abbreviations, e.g. \"TCP\" -> \"transmission control protocol\".\n0.5 - Synonyms which don’t have the same meaning (same function, same properties). This includes broad-narrow (hyponym) and narrow-broad (hypernym) matches.\n0.25 - Somewhat related, e.g. the two phrases are in the same high level domain but are not synonyms. This also includes antonyms.\n0.0 - Unrelated.\n\n### Files\n\n* train.csv - the training set, containing phrases, contexts, and their similarity scores\n* test.csv - the test set set, identical in structure to the training set but without the score\n* sample_submission.csv - a sample submission file in the correct format\n\n### Columns\n\n* id - a unique identifier for a pair of phrases\n* anchor - the first phrase\n* target - the second phrase\n* context - the [CPC classification (version 2021.05)](https://en.wikipedia.org/wiki/Cooperative_Patent_Classification), which indicates the subject within which the similarity is to be scored\n* score - the similarity. This is sourced from a combination of one or more manual expert ratings.","metadata":{}},{"cell_type":"markdown","source":"----\n----\n----\n## BERT Exemplo\n\n* https://www.kaggle.com/competitions/us-patent-phrase-to-phrase-matching/overview/evaluation\n* https://www.kaggle.com/code/surilee/inference-bert-for-uspatents-deepshare\n* https://www.kaggle.com/code/leehann/inference-bert-for-uspatents/notebook\n* https://www.kaggle.com/code/renokan/2-deberta-1-roberta-analysis-and-using\n\n---\n----\n----","metadata":{}},{"cell_type":"markdown","source":"---\n# Aplicação de Pré Processamento Textual","metadata":{}},{"cell_type":"code","source":"test = load_data('../input/us-patent-phrase-to-phrase-matching/test.csv')\ndata = load_data('../input/us-patent-phrase-to-phrase-matching/train.csv')\n\ndata['match'] = 0\ndata","metadata":{"execution":{"iopub.status.busy":"2022-07-22T13:37:23.910021Z","iopub.execute_input":"2022-07-22T13:37:23.911163Z","iopub.status.idle":"2022-07-22T13:37:24.015855Z","shell.execute_reply.started":"2022-07-22T13:37:23.911118Z","shell.execute_reply":"2022-07-22T13:37:24.014731Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"---\n## Solução usando Word2Vec e Doc2Vec\n\nA solução usando Word2Vec não funcionou adequadamente, pois o cálculo de similaridade é feito automaticamente.\n\nNão foi encontrada formas de treinar o modelo usando esse recurso.\n\nCom isso, os resultados foram visualmente baixos (análise de exemplos) e incompatíveis com o desejado.\n\n\n### Pendente Avaliar\n\n* https://adventuresinmachinelearning.com/word2vec-keras-tutorial/\n* https://thinkingneuron.com/how-to-classify-text-using-word2vec/","metadata":{}},{"cell_type":"code","source":"#model_txt = '../input/glove-embeddings/glove.6B.100d.txt'\n#w2vec_model = gensim.models.KeyedVectors.load_word2vec_format(model_txt, binary=False, no_header=True)\n\nmodel_txt = '../input/w2vec-patent-domain/W2Vec_Patent_Domain.txt'\nw2vec_model = gensim.models.KeyedVectors.load_word2vec_format(model_txt, binary=False, limit=2000000)\n\n#https://github.com/RaRe-Technologies/gensim-data\nprint(len(w2vec_model))","metadata":{"execution":{"iopub.status.busy":"2022-07-22T13:37:24.019371Z","iopub.execute_input":"2022-07-22T13:37:24.019704Z","iopub.status.idle":"2022-07-22T13:40:11.293064Z","shell.execute_reply.started":"2022-07-22T13:37:24.019671Z","shell.execute_reply":"2022-07-22T13:40:11.291859Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"w2vec_model.most_similar('article', topn=50)","metadata":{"execution":{"iopub.status.busy":"2022-07-22T13:40:11.297174Z","iopub.execute_input":"2022-07-22T13:40:11.297462Z","iopub.status.idle":"2022-07-22T13:40:11.735020Z","shell.execute_reply.started":"2022-07-22T13:40:11.297434Z","shell.execute_reply":"2022-07-22T13:40:11.733624Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"data[data.anchor == 'abatement'] #.head()","metadata":{"execution":{"iopub.status.busy":"2022-07-22T13:40:11.737921Z","iopub.execute_input":"2022-07-22T13:40:11.738256Z","iopub.status.idle":"2022-07-22T13:40:11.824005Z","shell.execute_reply.started":"2022-07-22T13:40:11.738209Z","shell.execute_reply":"2022-07-22T13:40:11.823051Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"def calc_similarity(data, topn=50):\n    #wnl = WordNetLemmatizer()\n\n    #data = data[data.anchor == 'wood article']\n    #data = data[data.id == '756ec035e694722b']\n    print('start:', datetime.datetime.now())\n\n    index = 0\n    for d in data.iterrows():\n        index += 1\n        score = 0.\n\n        anchor = d[1]['anchor']\n        target = d[1]['target']\n\n        anchors = anchor.split()\n        targets = target.split()\n\n        len_anchors = len(anchors)\n        len_targets = len(targets)\n        max_len = max(len_anchors, len_targets)\n\n        #lematiza palavras\n        #for i in range(len(anchors)):\n        #    anchors[i] = wnl.lemmatize(anchors[i])\n\n        #for i in range(len_targets):\n        #    targets[i] = wnl.lemmatize(targets[i])\n\n        #verifica se a expressão é igual\n        if(''.join(anchors) == ''.join(targets)):\n            score = 1.\n        else:\n            #compara palavras individuais\n            if(len_anchors == 1 and len_targets == 1):\n                try:\n                    similars = w2vec_model.most_similar(anchors[0], topn=topn)\n\n                    for sim in similars:\n                        if(targets[0].lower() == sim[0].lower()):\n                            score += sim[1]\n                            break\n                except:\n                    pass\n\n            elif(len_anchors == len_targets):\n                idx = 0\n                for anch, targ in zip(anchors, targets):\n                    idx += 1\n                    try:\n                        similars = w2vec_model.most_similar(anch, topn=topn)\n                        if(anch.lower() == targ.lower()):\n                            score += 0.5 / idx\n                        else:\n                            #busca similaridades baseados no anchor\n                            for sim in similars:\n                                if(targ.lower() == sim[0].lower()):\n                                    score += sim[1] / idx\n                                    break\n                    except:\n                        pass    \n\n            else:                   \n                #compara as palavras, a fim de encontrar similaridade entre as expressões\n                for anch in anchors:\n                    try:\n                        similars = w2vec_model.most_similar(anch, topn=topn)\n\n                        for targ in targets:\n                            if(anch.lower() == targ.lower()):\n                                if(len_anchors == 1 or len_targets == 1):\n                                    score += 0.5\n                                else:\n                                    score += (1. / max_len) #(len_anchors + len_targets))\n                            else:\n                                #busca similaridades baseados no anchor\n                                found_sim = False\n                                for sim in similars:\n                                    for s in sim[0].split('_'):\n                                        if(targ.lower() == s.lower()):\n                                            score += sim[1] / idx\n                                            found_sim = True\n                                            break\n\n                                    if(found_sim):\n                                        break\n                    except:\n                        pass\n\n        score = (1. if score > 1. else score)\n        #score = round(score * 4) / 4\n\n        data.loc[d[0],'match'] = score\n\n        print(index, '/', len(data), '\\r', end='')\n\n    print()\n    print('end:', datetime.datetime.now())\n    \n    return data","metadata":{"execution":{"iopub.status.busy":"2022-07-22T13:40:11.825938Z","iopub.execute_input":"2022-07-22T13:40:11.826439Z","iopub.status.idle":"2022-07-22T13:40:11.909645Z","shell.execute_reply.started":"2022-07-22T13:40:11.826409Z","shell.execute_reply":"2022-07-22T13:40:11.907615Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"#data = calc_similarity(data.head(500), topn=50)\n#data.to_csv('dataset/train_w2vec.csv', index=False)","metadata":{"execution":{"iopub.status.busy":"2022-07-22T13:40:11.911293Z","iopub.execute_input":"2022-07-22T13:40:11.911580Z","iopub.status.idle":"2022-07-22T13:40:11.948984Z","shell.execute_reply.started":"2022-07-22T13:40:11.911554Z","shell.execute_reply":"2022-07-22T13:40:11.947866Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"### Carrega dados já pré compilados","metadata":{}},{"cell_type":"code","source":"#data = load_data('dataset/train_w2vec.csv')","metadata":{"execution":{"iopub.status.busy":"2022-07-22T13:40:11.950400Z","iopub.execute_input":"2022-07-22T13:40:11.951084Z","iopub.status.idle":"2022-07-22T13:40:12.003449Z","shell.execute_reply.started":"2022-07-22T13:40:11.951042Z","shell.execute_reply":"2022-07-22T13:40:12.002510Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"#calcula_correlacao(data.score.values, data.match.values)","metadata":{"execution":{"iopub.status.busy":"2022-07-22T13:40:12.005273Z","iopub.execute_input":"2022-07-22T13:40:12.005626Z","iopub.status.idle":"2022-07-22T13:40:12.054606Z","shell.execute_reply.started":"2022-07-22T13:40:12.005589Z","shell.execute_reply":"2022-07-22T13:40:12.053407Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"### Calcula os testes","metadata":{}},{"cell_type":"code","source":"test","metadata":{"execution":{"iopub.status.busy":"2022-07-22T13:40:12.055994Z","iopub.execute_input":"2022-07-22T13:40:12.056532Z","iopub.status.idle":"2022-07-22T13:40:12.119233Z","shell.execute_reply.started":"2022-07-22T13:40:12.056442Z","shell.execute_reply":"2022-07-22T13:40:12.117875Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"test = calc_similarity(test, topn=200)\ntest","metadata":{"execution":{"iopub.status.busy":"2022-07-22T13:40:12.121224Z","iopub.execute_input":"2022-07-22T13:40:12.121609Z","iopub.status.idle":"2022-07-22T13:40:16.867067Z","shell.execute_reply.started":"2022-07-22T13:40:12.121569Z","shell.execute_reply":"2022-07-22T13:40:16.866170Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"submission = pd.DataFrame({\n    'id': test['id'],\n    'score': test['match'],\n})\nsubmission","metadata":{"execution":{"iopub.status.busy":"2022-07-22T13:40:16.868300Z","iopub.execute_input":"2022-07-22T13:40:16.869140Z","iopub.status.idle":"2022-07-22T13:40:16.938485Z","shell.execute_reply.started":"2022-07-22T13:40:16.869102Z","shell.execute_reply":"2022-07-22T13:40:16.937478Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"submission.to_csv('submission.csv', index=False)","metadata":{"execution":{"iopub.status.busy":"2022-07-22T13:40:16.943220Z","iopub.execute_input":"2022-07-22T13:40:16.944028Z","iopub.status.idle":"2022-07-22T13:40:16.991208Z","shell.execute_reply.started":"2022-07-22T13:40:16.943993Z","shell.execute_reply":"2022-07-22T13:40:16.990430Z"},"trusted":true},"execution_count":null,"outputs":[]}]}