示例#1
0
        public void recebendo_emails()
        {
            var emailRecebido = new EmailRecebido("Email", "Email");
            gerenciadorEmails.NovoEmail(emailRecebido);

            gerenciadorEmails.ObterTodosEmails().Should().Contain(emailRecebido);
        }
示例#2
0
 public double[] Extrair(EmailRecebido email)
 {
     return new[]
     {
         ContarPalavrasSocial(email.Assunto) + ContarPalavrasSocial(email.Mensagem),
         ContarPalavrasAnuncio(email.Assunto) + ContarPalavrasAnuncio(email.Mensagem)
     };
 }
        public void extraindo_caracteristicas_de_um_email()
        {
            var email = new EmailRecebido("Esse Desconto está com cara de bons amigos", "Um desconto especial da loja x para você que é nosso amigo");
            var caracteristicas = geradorCaracteristicas.Extrair(email);

            caracteristicas.Should().HaveCount(2);
            caracteristicas[0].Should().Be(2); // amigos + amigos
            caracteristicas[1].Should().Be(3); // desconto + desconto + loja
        }
示例#4
0
        public void classificando_emails_recebidos()
        {
            var emailRecebido = new EmailRecebido("Email", "Email");
            var categoria = new Categoria("Teste");
            classificadorEmail.Classificar(emailRecebido).Returns(categoria);

            gerenciadorEmails.NovoEmail(emailRecebido);

            emailRecebido.Categoria.Should().Be(categoria);
        }
示例#5
0
        public void Executar()
        {
            Console.Write("Assunto: ");
            var assunto = Console.ReadLine();

            Console.Write("Mensagem: ");
            var mensagem = Console.ReadLine();

            var emailRecebido = new EmailRecebido(assunto, mensagem);
            gerenciadorEmails.NovoEmail(emailRecebido);
        }
示例#6
0
        public DadosTreinamento Extrair(EmailRecebido[] emailsRecebidos)
        {
            var dadosTreinamento = new DadosTreinamento();
            foreach (var emailRecebido in emailsRecebidos)
            {
                var caracteristicas = geradorCaracteristicas.Extrair(emailRecebido);
                var classe = colecaoChaveValor.ObterValor(emailRecebido.Categoria);
                dadosTreinamento.Adicionar(caracteristicas, classe);
            }

            return dadosTreinamento;
        }
示例#7
0
        public void classificando_email()
        {
            var email = new EmailRecebido("email", "email");
            const int classeEsperada = 1;
            var categoriaEsperada = new Categoria("Esperada");
            geradorDadosTreinamento.ObterCategoria(classeEsperada).Returns(categoriaEsperada);

            var caracteristicas = new[] {2.6, 1.9};
            geradorCaracteristicas.Extrair(email).Returns(caracteristicas);
            algoritmoClassificacao.Classificar(caracteristicas).Returns(classeEsperada);

            var categoria = classificadorEmail.Classificar(email);

            algoritmoClassificacao.Received().Classificar(caracteristicas);
            categoria.Should().Be(categoriaEsperada);
        }
示例#8
0
 public void NovoEmail(EmailRecebido emailRecebido)
 {
     var categoriaEmail = classificadorEmail.Classificar(emailRecebido);
     emailRecebido.Categoria = categoriaEmail;
     emailsRecebidos.Add(emailRecebido);
 }
示例#9
0
 public void Treinar(EmailRecebido[] emailsRecebidos)
 {
     var dadosTreinamento = geradorDadosTreinamento.Extrair(emailsRecebidos);
     algoritmoClassificacao.Treinar(dadosTreinamento);
 }
示例#10
0
 public Categoria Classificar(EmailRecebido email)
 {
     var caracteristicas = geradorCaracteristicas.Extrair(email);
     var classe = algoritmoClassificacao.Classificar(caracteristicas);
     return geradorDadosTreinamento.ObterCategoria(classe);
 }