{"id":5641,"date":"2023-06-20T11:11:42","date_gmt":"2023-06-20T14:11:42","guid":{"rendered":"https:\/\/netproject.com.br\/blog\/?p=5641"},"modified":"2023-06-21T15:32:07","modified_gmt":"2023-06-21T18:32:07","slug":"ia-em-gp-classificadores-automaticos-em-formularios-de-projeto","status":"publish","type":"post","link":"https:\/\/blog.netproject.com.br\/blog\/ia-em-gp-classificadores-automaticos-em-formularios-de-projeto\/","title":{"rendered":"IA (Intelig\u00eancia Artificial) em GP (Gest\u00e3o de Projetos) &#8211; Classificadores Autom\u00e1ticos em Formul\u00e1rios de Projeto."},"content":{"rendered":"<p class=\"estimated-read-time\">Tempo de leitura:<small> 10 minutos<\/small><\/p> \n<p>Mais um artigo da s\u00e9rie em que trabalhamos o uso de Intelig\u00eancia Artificial na Gest\u00e3o de Projetos.<\/p>\n\n\n\n<p>Aqui na NetProject, entendemos que o  tempo de trabalho do gerente de projetos \u00e9 de suma import\u00e2ncia para a organiza\u00e7\u00e3o e deve ser sempre melhor aproveitado. Ao liberar o gerente de atividades repetitivas e rotineiras, permitimos que ele execute as responsabilidades essenciais de planejamento, coordena\u00e7\u00e3o, comunica\u00e7\u00e3o, gerenciamento de riscos e controle. <\/p>\n\n\n\n<p>Um gerente de projetos bem-sucedido precisa de tempo adequado para realizar essas atividades de maneira eficaz e garantir o sucesso do projeto. <\/p>\n\n\n\n<p>Assim, qualquer mecanismo que execute tarefas repetitivas automaticamente est\u00e1 sendo por n\u00f3s avaliado. <\/p>\n\n\n\n<p>Um deles \u00e9 o <strong>Classificador Autom\u00e1tico em Formul\u00e1rios de Projeto.<\/strong><\/p>\n\n\n\n<h2><strong>Os Formul\u00e1rios de Projeto.<\/strong><\/h2>\n\n\n\n<p>Imagino que esteja se perguntando, o qu\u00ea s\u00e3o formul\u00e1rios de projeto? Certamente voc\u00ea j\u00e1 se deparou com alguns deles:<\/p>\n\n\n\n<p><strong>Business Case ou Pr\u00e9-Projeto: <\/strong> Um Business Case, tamb\u00e9m conhecido como Caso de Neg\u00f3cio, \u00e9 um documento que justifica a viabilidade de um projeto, iniciativa ou investimento em termos financeiros e estrat\u00e9gicos. Ele \u00e9 usado para tomar decis\u00f5es informadas sobre a aloca\u00e7\u00e3o de recursos e determinar se um projeto ou investimento \u00e9 justific\u00e1vel do ponto de vista econ\u00f4mico. O Business Case descreve os benef\u00edcios esperados, os custos associados, os riscos envolvidos e as alternativas consideradas. Ele fornece uma an\u00e1lise detalhada dos aspectos financeiros, comerciais e estrat\u00e9gicos relevantes, ajudando a avaliar se o projeto atender\u00e1 \u00e0s necessidades da organiza\u00e7\u00e3o e se \u00e9 uma escolha sensata<\/p>\n\n\n\n<p><strong>Termo de Abertura do Projeto: <\/strong> O Termo de Abertura do Projeto (TAP), tamb\u00e9m conhecido como Project Charter em ingl\u00eas, \u00e9 um documento formal que marca o in\u00edcio de um projeto. Ele \u00e9 criado pelo gerente de projetos ou pelo patrocinador do projeto e serve como uma autoriza\u00e7\u00e3o oficial para iniciar o trabalho. O TAP \u00e9 geralmente desenvolvido durante a fase de inicia\u00e7\u00e3o do projeto e \u00e9 usado como refer\u00eancia ao longo de todo o ciclo de vida do projeto.<\/p>\n\n\n\n<p><strong>Declara\u00e7\u00e3o de Escopo do Projeto: <\/strong> Uma declara\u00e7\u00e3o de escopo, tamb\u00e9m conhecida como Declara\u00e7\u00e3o de Escopo do Projeto, \u00e9 um documento que define de forma clara e concisa os limites, objetivos, entregas e requisitos de um projeto. \u00c9 uma parte essencial do processo de planejamento do projeto e estabelece a base para o trabalho a ser realizado. A declara\u00e7\u00e3o de escopo descreve o que est\u00e1 inclu\u00eddo e o que est\u00e1 exclu\u00eddo do projeto, definindo as fronteiras do trabalho a ser executado. Ela fornece uma vis\u00e3o geral do projeto, alinhando as expectativas de todas as partes interessadas e fornecendo orienta\u00e7\u00e3o para a equipe do projeto.<\/p>\n\n\n\n<p><strong>Ficha de Riscos<\/strong>: Uma Ficha de Riscos tamb\u00e9m conhecida como Registro de Riscos ou Formul\u00e1rio de Identifica\u00e7\u00e3o de Riscos, \u00e9 um documento utilizado para registrar e documentar os riscos identificados em um projeto, organiza\u00e7\u00e3o ou atividade espec\u00edfica. \u00c9 uma ferramenta fundamental no gerenciamento de riscos, pois ajuda a identificar, analisar e monitorar os riscos ao longo do ciclo de vida do projeto ou atividade.<\/p>\n\n\n\n<p><strong>Termo de Encerramento do Projeto: <\/strong> O Termo de Encerramento do Projeto, tamb\u00e9m conhecido como Encerramento do Projeto ou Termo de Encerramento, \u00e9 um documento que formaliza o encerramento de um projeto. Ele \u00e9 elaborado no final do ciclo de vida do projeto, ap\u00f3s a conclus\u00e3o de todas as atividades e entregas planejadas.  O Termo de Encerramento do Projeto \u00e9 importante porque fornece uma revis\u00e3o geral do projeto, resume os resultados alcan\u00e7ados, avalia o desempenho e registra li\u00e7\u00f5es aprendidas. Ele tamb\u00e9m comunica o encerramento do projeto para as partes interessadas relevantes, encerra as obriga\u00e7\u00f5es contratuais e libera recursos para outras iniciativas.<\/p>\n\n\n\n<p>Todos estes formul\u00e1rios possuem campos de sele\u00e7\u00e3o, ou combos, que vamos passar a chamar daqui pra frente de classifica\u00e7\u00f5es. Por exemplo, Tipo de Projeto, Categoria de Projeto, Tipo de Risco, Tipo de Tarefa, dentre outros. <\/p>\n\n\n\n<p><strong>Como podemos poupar tempo do gerente para preencher estas classifica\u00e7\u00f5es?<\/strong><\/p>\n\n\n\n<h2>Processamento de Linguagem Natural<\/h2>\n\n\n\n<p>O Processamento de Linguagem Natural, do ingl\u00eas Natural Language Processing (NLP) \u00e9 um campo da intelig\u00eancia artificial (IA) que se concentra na intera\u00e7\u00e3o entre computadores e linguagem humana. Ele envolve o desenvolvimento e aplica\u00e7\u00e3o de t\u00e9cnicas computacionais para entender, interpretar, manipular e gerar linguagem humana de forma natural.<\/p>\n\n\n\n<p>O objetivo do processamento de linguagem natural \u00e9 capacitar os computadores a entender e processar a linguagem humana em diferentes formas, como texto escrito, \u00e1udio e fala.<\/p>\n\n\n\n<h2><strong>Representa\u00e7\u00e3o textual<\/strong><\/h2>\n\n\n\n<p>Para que um computador possa entender e processar um texto, \u00e9 necess\u00e1rio representar esse texto em uma forma que possa ser compreendida pelos algoritmos e modelos de processamento de linguagem natural. Existem v\u00e1rias t\u00e9cnicas de representa\u00e7\u00e3o de texto que s\u00e3o comumente utilizadas. Alguns exemplos:<\/p>\n\n\n\n<ol><li><strong>Bag-of-Words (saco de palavras): <\/strong>Essa abordagem simplificada considera um texto como uma cole\u00e7\u00e3o de palavras, ignorando a ordem e a estrutura gramatical. Cada documento \u00e9 representado como um vetor contendo a frequ\u00eancia ou presen\u00e7a das palavras encontradas nele. \u00c9 uma t\u00e9cnica simples, mas perde informa\u00e7\u00f5es importantes sobre a sequ\u00eancia das palavras.<\/li><li><strong>Count Vectorizer<\/strong>: O CountVectorizer \u00e9 uma t\u00e9cnica de vetoriza\u00e7\u00e3o de texto utilizada para representar textos como vetores num\u00e9ricos. \u00c9 uma etapa comum de pr\u00e9-processamento em tarefas de processamento de linguagem natural, como classifica\u00e7\u00e3o de texto e an\u00e1lise de sentimentos. O CountVectorizer converte um conjunto de documentos de texto em uma matriz de contagem de termos. Cada documento \u00e9 tratado como uma &#8220;bag-of-words&#8221; (saco de palavras), onde a ordem das palavras \u00e9 ignorada e apenas a frequ\u00eancia de ocorr\u00eancia de cada palavra \u00e9 considerada.<\/li><li><strong>TF-IDF (Term Frequency-Inverse Document Frequency)<\/strong>: Essa t\u00e9cnica pondera as palavras com base na frequ\u00eancia em um documento espec\u00edfico (term frequency) e na frequ\u00eancia inversa em todo o corpus (inverse document frequency). Isso ajuda a destacar palavras mais importantes em rela\u00e7\u00e3o ao documento espec\u00edfico e ao corpus em geral.<\/li><li><strong>Representa\u00e7\u00e3o vetorial (embedding):<\/strong> Essa t\u00e9cnica mapeia palavras ou frases em vetores num\u00e9ricos de alta dimensionalidade. Um exemplo popular \u00e9 o Word2Vec, que mapeia palavras em vetores densos com base em sua distribui\u00e7\u00e3o em um corpus de texto. Isso permite que as palavras sejam representadas numericamente e captura rela\u00e7\u00f5es sem\u00e2nticas e sint\u00e1ticas entre elas.<\/li><li><strong>Modelos de linguagem pr\u00e9-treinados<\/strong>: Esses modelos s\u00e3o treinados em grandes quantidades de texto para aprender padr\u00f5es lingu\u00edsticos e representa\u00e7\u00f5es de palavras. Exemplos populares s\u00e3o o <strong>GPT<\/strong> (Generative Pre-trained Transformer) e o <strong>BERT<\/strong> (Bidirectional Encoder Representations from Transformers). Esses modelos podem ser usados para extrair representa\u00e7\u00f5es contextuais de palavras e at\u00e9 mesmo de frases ou documentos inteiros.<\/li><\/ol>\n\n\n\n<h2>Classifica\u00e7\u00e3o em NLP<\/h2>\n\n\n\n<p>A tarefa de classifica\u00e7\u00e3o em Processamento de linguagem Natural (NLP) refere-se ao processo de <strong>atribuir uma categoria ou r\u00f3tulo a um texto com base em seu conte\u00fado.<\/strong> <\/p>\n\n\n\n<p>\u00c9 uma das tarefas fundamentais no campo do NLP e possui uma ampla gama de aplica\u00e7\u00f5es.<\/p>\n\n\n\n<p>Na classifica\u00e7\u00e3o de texto, um algoritmo ou modelo \u00e9 treinado para aprender a associar automaticamente textos a uma ou mais categorias pr\u00e9-definidas. Essas categorias podem ser sentimentos (positivo, negativo, neutro), t\u00f3picos (esportes, pol\u00edtica, tecnologia), inten\u00e7\u00f5es (perguntas, afirma\u00e7\u00f5es, solicita\u00e7\u00f5es) <strong>ou qualquer outra classe espec\u00edfica que seja relevante para o contexto do problema.<\/strong><\/p>\n\n\n\n<p>A classifica\u00e7\u00e3o em NLP geralmente segue os seguintes passos:<\/p>\n\n\n\n<ol><li><strong>Conjunto de treinamento:<\/strong> Um conjunto de textos \u00e9 coletado e rotulado manualmente com suas respectivas categorias. Esses textos s\u00e3o usados para treinar o modelo de classifica\u00e7\u00e3o.<\/li><li><strong>Pr\u00e9-processamento:<\/strong> Os textos passam por uma etapa de pr\u00e9-processamento, que inclui remo\u00e7\u00e3o de pontua\u00e7\u00e3o, convers\u00e3o para letras min\u00fasculas, tokeniza\u00e7\u00e3o (divis\u00e3o em palavras ou outros tokens) e aplica\u00e7\u00e3o de t\u00e9cnicas de normaliza\u00e7\u00e3o, como lematiza\u00e7\u00e3o ou stemming.<\/li><li><strong>Vetoriza\u00e7\u00e3o<\/strong>: Os textos s\u00e3o convertidos em representa\u00e7\u00f5es num\u00e9ricas. T\u00e9cnicas como CountVectorizer, TF-IDF ou modelos de linguagem pr\u00e9-treinados (como o Word2Vec ou o BERT) podem ser usados para criar vetores num\u00e9ricos a partir dos textos.<\/li><li><strong>Treinamento do modelo<\/strong>: Um modelo de classifica\u00e7\u00e3o \u00e9 selecionado e treinado com o conjunto de treinamento, utilizando os vetores num\u00e9ricos e suas respectivas categorias. Algoritmos populares para classifica\u00e7\u00e3o de texto incluem Naive Bayes, Support Vector Machines (SVM), \u00e1rvores de decis\u00e3o e redes neurais.<\/li><li><strong>Avalia\u00e7\u00e3o do modelo:<\/strong> O modelo treinado \u00e9 avaliado usando um conjunto de teste, que cont\u00e9m textos n\u00e3o vistos durante o treinamento. M\u00e9tricas de desempenho, como precis\u00e3o, recall, F1-score e acur\u00e1cia, s\u00e3o utilizadas para medir o qu\u00e3o bem o modelo est\u00e1 classificando os textos em rela\u00e7\u00e3o \u00e0s categorias esperadas.<\/li><li><strong>Predi\u00e7\u00e3o<\/strong>: Ap\u00f3s o treinamento e avalia\u00e7\u00e3o, o modelo \u00e9 usado para prever a categoria de novos textos n\u00e3o rotulados. O texto \u00e9 pr\u00e9-processado da mesma forma que o conjunto de treinamento e vetorizado antes de ser submetido ao modelo para classifica\u00e7\u00e3o.<\/li><\/ol>\n\n\n\n<h2>Classifica\u00e7\u00e3o Autom\u00e1tica em Formul\u00e1rios de Projeto<\/h2>\n\n\n\n<p>Todo sistema PPM, ou Portf\u00f3lio Project Management, armazena uma grande quantidade de informa\u00e7\u00f5es que v\u00e3o muito al\u00e9m do cronograma do projeto. Todos os formul\u00e1rios que citamos acima devem estar presentes em uma base de dados integrada e organizada, que permita o trabalho e a recupera\u00e7\u00e3o de qualquer informa\u00e7\u00e3o do projeto.<\/p>\n\n\n\n<p>Nosso objetivo \u00e9 usar as informa\u00e7\u00f5es que foram previamente alimentadas nos projetos j\u00e1 executados pela organiza\u00e7\u00e3o para alimentar os Classificadores e ent\u00e3o sugerir ao Gerente do Projeto a op\u00e7\u00e3o mais adequada para o novo preenchimento de formul\u00e1rio que est\u00e1 sendo realizado.<\/p>\n\n\n\n<p>Sendo direto, vamos usar, por exemplo,  as tarefas previamente cadastradas e suas classifica\u00e7\u00f5es de tipo, juntamente com o nome da tarefa e qualquer outro campo descritivo que a mesma possua para:<\/p>\n\n\n\n<p><strong>Conjunto de treinamento:<\/strong> Alimentar um conjunto de treinamento com as informa\u00e7\u00f5es j\u00e1 cadastradas, que identificam qual o tipo de tarefa a empresa definiu para as tarefas j\u00e1 criadas.<br><strong>Pr\u00e9-processamento:<\/strong> Aplicar as t\u00e9cnicas de pr\u00e9-processamento acima citadas<br><strong>Vetoriza\u00e7\u00e3o<\/strong>: Converter os textos em representa\u00e7\u00f5es num\u00e9ricas, provavelmente usando modelos de linguagem pr\u00e9-treinados (como o Word2Vec ou o BERT).<br><strong>Treinamento do modelo<\/strong>: Avaliar qual o melhor algoritmo para  classifica\u00e7\u00e3o de text, dentre Naive Bayes, Support Vector Machines (SVM), \u00e1rvores de decis\u00e3o e redes neurais.<br><strong>Avalia\u00e7\u00e3o do modelo:<\/strong> Avaliar o modelo treinado com apoio conjunto de teste<br><strong>Predi\u00e7\u00e3o<\/strong>: Incluir a predi\u00e7\u00e3o na interface do software NetProject. Com o seguinte formato:<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-full is-resized\"><img loading=\"lazy\" src=\"https:\/\/netproject.com.br\/blog\/wp-content\/uploads\/2023\/06\/sugestao_netproject.jpeg\" alt=\"\" class=\"wp-image-5652\" width=\"321\" height=\"220\" srcset=\"https:\/\/blog.netproject.com.br\/blog\/wp-content\/uploads\/2023\/06\/sugestao_netproject.jpeg 569w, https:\/\/blog.netproject.com.br\/blog\/wp-content\/uploads\/2023\/06\/sugestao_netproject-300x206.jpeg 300w\" sizes=\"(max-width: 321px) 100vw, 321px\" \/><figcaption>Caixa de Sugest\u00e3o Autom\u00e1tica &#8211; Formul\u00e1rios NetProject<\/figcaption><\/figure><\/div>\n\n\n\n<p><\/p>\n\n\n\n<p>Vale ressaltar que o ciclo que vai desde o estabelecimento do conjunto de treinamento at\u00e9 a constru\u00e7\u00e3o do modelo precisam ser realizados periodicamente, estamos inclu\u00edndo na interface do software NetProject a execu\u00e7\u00e3o deste ciclo de forma agendada, para que seja feito um refinamento progressivo dos classificadores. <\/p>\n\n\n\n<p>Entre em contato conosco para conhecer mais!<\/p>\n","protected":false},"excerpt":{"rendered":"<p><small> 10 minutos<\/small> Mais um artigo da s\u00e9rie em que trabalhamos o uso de Intelig\u00eancia Artificial na Gest\u00e3o de Projetos. Aqui na NetProject, entendemos que o tempo de trabalho do gerente de projetos \u00e9 de suma import\u00e2ncia para a organiza\u00e7\u00e3o e deve ser sempre melhor aproveitado. Ao liberar o gerente de atividades repetitivas e rotineiras, permitimos que ele execute as responsabilidades essenciais de planejamento, coordena\u00e7\u00e3o, comunica\u00e7\u00e3o, gerenciamento de riscos e controle. Um gerente de projetos bem-sucedido precisa de tempo adequado para realizar essas atividades de <a href=\"https:\/\/blog.netproject.com.br\/blog\/ia-em-gp-classificadores-automaticos-em-formularios-de-projeto\/\" class=\"more-link\"><span>Continue<\/span>\u2192<\/a><\/p>\n","protected":false},"author":1,"featured_media":5645,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":[],"categories":[1],"tags":[],"_links":{"self":[{"href":"https:\/\/blog.netproject.com.br\/blog\/wp-json\/wp\/v2\/posts\/5641"}],"collection":[{"href":"https:\/\/blog.netproject.com.br\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.netproject.com.br\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.netproject.com.br\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.netproject.com.br\/blog\/wp-json\/wp\/v2\/comments?post=5641"}],"version-history":[{"count":6,"href":"https:\/\/blog.netproject.com.br\/blog\/wp-json\/wp\/v2\/posts\/5641\/revisions"}],"predecessor-version":[{"id":5654,"href":"https:\/\/blog.netproject.com.br\/blog\/wp-json\/wp\/v2\/posts\/5641\/revisions\/5654"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/blog.netproject.com.br\/blog\/wp-json\/wp\/v2\/media\/5645"}],"wp:attachment":[{"href":"https:\/\/blog.netproject.com.br\/blog\/wp-json\/wp\/v2\/media?parent=5641"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.netproject.com.br\/blog\/wp-json\/wp\/v2\/categories?post=5641"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.netproject.com.br\/blog\/wp-json\/wp\/v2\/tags?post=5641"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}