Category Archives: Machine Learning

Algoritmos de NLP

Os **principais algoritmos de Processamento de Linguagem Natural (NLP)** incluem uma variedade de técnicas que permitem a compreensão e manipulação de texto e linguagem humana. Aqui estão alguns dos mais destacados:

### 1. **Modelos Baseados em Regras**
– **Análise Sintática**: Utiliza gramáticas para analisar a estrutura das frases.
– **Análise Semântica**: Interpreta o significado das palavras e frases.

### 2. **Modelos Estatísticos**
– **Naive Bayes**: Um classificador probabilístico que assume independência entre características.
– **Modelos de Markov Ocultos (HMM)**: Usados em reconhecimento de fala e etiquetagem de partes do discurso.

### 3. **Redes Neurais**
– **Word Embeddings**: Técnicas como Word2Vec e GloVe que transformam palavras em vetores de alta dimensão.
– **Redes Neurais Recorrentes (RNNs)**: Especialmente úteis para sequências de texto, como em tradução automática.
– **Long Short-Term Memory (LSTM)**: Um tipo de RNN que pode aprender dependências de longo prazo.

### 4. **Transformadores**
– **BERT (Bidirectional Encoder Representations from Transformers)**: Modelo que captura o contexto de uma palavra com base em todas as outras palavras na frase.
– **GPT (Generative Pre-trained Transformer)**: Modelo que gera texto de forma coerente e contextualizada.

### 5. **Técnicas de Aprendizado de Máquina**
– **Classificação de Texto**: Algoritmos como Support Vector Machines (SVM) e Árvores de Decisão.
– **Análise de Sentimento**: Usada para determinar a polaridade de um texto (positivo, negativo, neutro).

### 6. **Técnicas de Pré-processamento**
– **Tokenização**: Divisão de texto em palavras ou frases.
– **Remoção de Stop Words**: Eliminação de palavras comuns que não adicionam significado (como “e”, “a”, “de”).
– **Stemming e Lemmatization**: Redução de palavras às suas raízes.

Esses algoritmos e técnicas são fundamentais para o desenvolvimento de aplicações em NLP, como chatbots, tradutores automáticos, sistemas de recomendação e muito mais. Se precisar de mais detalhes sobre algum algoritmo específico, fique à vontade para perguntar!

Machine Learning – Tarefas

A seguir estão algumas tarefas de aprendizado de máquina padrão que foram amplamente estudadas:

  • Classification: trata-se do problema de atribuir uma categoria a cada item. Por exemplo, a classificação de documentos consiste em atribuir uma categoria, como política, negócios, esportes ou clima a cada documento, enquanto a classificação de imagens consiste em atribuir a cada imagem uma categoria, como carro, trem ou avião. O número de categorias nessas tarefas costuma ser menor do que algumas centenas, mas pode ser muito maior em algumas tarefas difíceis e até mesmo ilimitado, como em OCR, classificação de texto ou reconhecimento de fala.
  • Regression: é o problema de prever um valor real para cada item. Exemplos de regressão incluem previsão de valores de estoque ou de variações de variáveis ​​econômicas. Na regressão, a penalidade para uma previsão incorreta depende da magnitude da diferença entre os valores verdadeiros e previstos, em contraste com o problema de classificação, onde normalmente não há noção de proximidade entre as várias categorias.
  • Ranking: é o problema de aprender a ordenar os itens de acordo com algum critério. A pesquisa na web, por exemplo, retornar páginas da web relevantes para uma consulta de pesquisa, é o exemplo de classificação canônica. Muitos outros problemas de classificação semelhantes surgem no contexto do projeto de extração de informações ou sistemas de processamento de linguagem natural.
  • Clustering: este é o problema de particionar um conjunto de itens em subconjuntos homogêneos. O clustering é freqüentemente usado para analisar conjuntos de dados muito grandes. Por exemplo, no contexto da análise de rede social, os algoritmos de agrupamento tentam identificar comunidades naturais dentro de grandes grupos de pessoas.
  • Redução da dimensionalidade ou aprendizado múltiplo: este problema consiste em transformar uma representação inicial de itens em uma representação de dimensão inferior preservando algumas propriedades da representação inicial. Um exemplo comum envolve o pré-processamento de imagens digitais em tarefas de visão computacional.

Os principais objetivos práticos do aprendizado de máquina consistem em gerar previsões precisas para itens invisíveis e projetar algoritmos eficientes e robustos para produzir essas previsões, mesmo para problemas de grande escala.

Para isso, surgem várias questões algorítmicas e teóricas. Algumas questões fundamentais incluem:

  • Que famílias de conceitos podem realmente ser aprendidas e em que condições?
  • Quão bem esses conceitos podem ser aprendidos computacionalmente?

Machine Learning – Algoritmos

Regressão

É possível prever o valor contínuo de um modelo através do modelo de regressão. Por exemplo, é possível prever os preços dos imóveis em função do tamanho, localização e características da casa. Este é o exemplo mais simples de compreensão da regressão. A regressão é uma técnica supervisionada.

Regressão Lasso

Esta técnica é um tipo de regressão linear e ajuda a diminuir a limitação do modelo. Os valores dos dados encolhem para o centro ou média para evitar o sobre-ajustamento dos dados. Regressão Lasso pode eliminar as variáveis inúteis da equação. Este tipo de regressão é melhor do que a regressão de Ridge e ajuda a reduzir as Variâncias num modelo de aprendizagem da máquina que contém muitas Variâncias.

KNN – K-Nearest Neighbor

Em estatística, o algoritmo de vizinhos k-mais próximos é um método de classificação não paramétrico desenvolvido pela primeira vez por Evelyn Fix e Joseph Hodges em 1951, e posteriormente expandido por Thomas Cover. É usado para classificação e regressão.

Links

https://minerandodados.com.br/machine-learning-na-pratica-knn-python/

https://portaldatascience.com/o-algoritmo-k-nearest-neighbors-knn-em-machine-learning/

Redes Bayesianas / Bayes Theorem / Bayesian Methods

O algoritmo “Naive Bayes” é um classificador probabilístico muito utilizado em machine learning. Baseado no “Teorema de Bayes”, o modelo foi criado por um matemático inglês, e também ministro presibiteriano, chamado Thomas Bayes (1701 – 1761) para tentar provar a existência de Deus.

Random Forest

Baseia-se justamente em um dos algoritmos mais básicos da área de mineração de dados: as árvores de decisão.

K-Means

K-Means é um algoritmo de clusterização (ou agrupamento) disponível na biblioteca Scikit-Learn.

É um algoritmo de aprendizado não supervisionado (ou seja, que não precisa de inputs de confirmação externos) que avalia e clusteriza os dados de acordo com suas características.

PCA – Principal Component Analysis

O PCA é uma técnica estabelecida de aprendizado de máquina. É frequentemente usado na análise de dados exploratória porque revela a estrutura interna dos dados e explica a variação nos dados.

Boosting

No aprendizado de máquina, Boosting é um meta-algoritmo de conjunto para reduzir principalmente o viés e também a variação no aprendizado supervisionado. Baseia-se justamente em um dos algoritmos mais básicos da área de mineração de dados: as árvores de decisão.

Redes Neurais

Redes neurais são sistemas de computação com nós interconectados que funcionam como os neurônios do cérebro humano. Usando algoritmos, elas podem reconhecer padrões escondidos e correlações em dados brutos, agrupá-los e classificá-los, e – com o tempo – aprender e melhorar continuamente.

Hill Climbing

  • Segue apenas um sentido, explorando a “vizinhança”
  • Não garante obter o Global Optima
  • Existem muitas variações, principalmente incluindo elementos não determinísticos no algoritmo

Breadth First Search

Capaz de retornar de uma vizinhança em busca de uma solução melhor (backtracing)

Depth-first search

Explora uma “vizinhança”, retornando e tentando outras ramificações

Best First Search

Usa heurística para avaliar o valor de cada nó

Sua performance depende da heurística

Instalando R no Ubuntu

Como o R é um projeto em constante atualização, a versão estável mais recente nem sempre está disponível nos repositórios do Ubuntu. Sendo assim, vamos começar adicionando o repositório externo mantido pelo CRAN.

Nota: o CRAN mantém os repositórios dentro de sua rede, mas nem todos os repositórios externos são confiáveis. Certifique-se de instalar apenas a partir de fontes confiáveis.

Vamos primeiro adicionar a chave GPG relevante.

$ sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys E298A3A825C0D65DFD57CBB651716619E084DAB9

 Copy

Ao executarmos o programa, vamos receber o seguinte resultado:

OutputExecuting: /tmp/apt-key-gpghome.cul0ddtmN1/gpg.1.sh --keyserver keyserver.ubuntu.com --recv-keys E298A3A825C0D65DFD57CBB651716619E084DAB9
gpg: key 51716619E084DAB9: public key "Michael Rutter <marutter@gmail.com>" imported
gpg: Total number processed: 1
gpg:               imported: 1

Assim que tivermos a chave confiável, podemos adicionar o repositório.

Se você não estiver usando a versão 20.04, será possível encontrar o repositório relevante da lista Ubuntu do projeto R, nomeada para cada versão. O Ubuntu 20.04 é conhecido como Focal Fossa, e a versão mais recente do R é a 4.1.0. Por conta disso, este é o nome convencionado do repositório abaixo — focal-cran40.

$ sudo add-apt-repository 'deb https://cloud.r-project.org/bin/linux/ubuntu focal-cran40/'

 Copy

Dentro do resultado exibido, você deve identificar linhas semelhantes às seguintes:

Output...
Get:7 https://cloud.r-project.org/bin/linux/ubuntu focal-cran40/ InRelease [3622 B]                  
Get:8 https://cloud.r-project.org/bin/linux/ubuntu focal-cran40/ Packages [15.6 kB]
...

Agora, precisaremos executar update (atualizar) após isso para incluir os manifestos de pacotes do novo repositório.

$ sudo apt update

 Copy

Certifique-se de que uma das linhas do resultado é semelhante à seguinte:

Output...
Hit:5 https://cloud.r-project.org/bin/linux/ubuntu focal-cran40/ InRelease
...

Se a linha acima aparecer no resultado do comando update, adicionamos o repositório com sucesso. Podemos garantir que não instalaremos acidentalmente uma versão mais antiga.

Neste ponto, estamos prontos para instalar o R com o seguinte comando.

$ sudo apt install r-base

 Copy

Se for solicitado a confirmar a instalação, pressione y para continuar.

No momento em que este tutorial está sendo escrito, a versão estável mais recente do R do CRAN é a 4.1.0, que é exibida quando você inicia o R.

Como estamos planejando instalar um pacote de exemplo para cada usuário no sistema, iniciaremos o R como root para que as bibliotecas estejam disponíveis para todos os usuários automaticamente. De forma alternativa, se você executar o comando R sem o sudo, uma biblioteca pessoal pode ser configurada para seu usuário.

$ sudo -i R

 Copy

Output
R version 4.0.0 (2020-04-24) -- "Arbor Day"
Copyright (C) 2020 The R Foundation for Statistical Computing
Platform: x86_64-pc-linux-gnu (64-bit)
...
Type 'demo()' for some demos, 'help()' for on-line help, or
'help.start()' for an HTML browser interface to help.
Type 'q()' to quit R.

>

Isso confirma que instalamos o R com sucesso e entramos em seu shell interativo.

Para verificar a versão instalada, digite o comando

$ R --version

NLP – Natural Language Processing

Layers

  1. Input and initial processing—Taking in speech or text and breaking it up into smaller pieces for processing. For speech, this step is called phonetic analysis, and consists of breaking down the speech into individual sounds, called phonemes. For text input, this can include optical character recognition (OCR) and tokenization. OCR is used to recognize the individual characters in text if it’s coming in as an image rather than as words made of characters. Tokenization refers to breaking down a continuous text into individual tokens, often words.
  2. Morphological analysis—Breaking down complex words into their components to better understand their meaning. For example, you can break down “incomprehensible” into its component parts.
    • “in”—not
    • “comprehens”—to understand or comprehend
    • “ible”—indicates that this word is an adjective, describing whether something can be comprehended
  3. Syntactic analysis—Trying to understand the structure of sentences by looking at how the words work together. This step is like diagramming a sentence, where you identify the role each word is playing in the sentence.
  4. Semantic interpretation—Working out the meaning of a sentence by combining the meaning of individual words with their syntactic roles in the sentence.
  5. Discourse processing—Understanding the context around a sentence to fully process what it means.
1. Speech (phonetic/phonological analysis) or text (OCR/tokenization); 2. Morphological analysis; 3. Syntactic analysis; 4. Semantic interpretation; 5. Discourse processing

Fonte: https://trailhead.salesforce.com/pt-BR/content/learn/modules/deep-learning-and-natural-language-processing/start-with-nlp

As 8 melhores bibliotecas Python para Machine Learning

O que é machine learning?

O machine learning (ML), ou aprendizado de máquina, é o estudo de algoritmos de computador que melhoram automaticamente com a experiência. É visto como parte da inteligência artificial.

É o campo com maior intensidade de algoritmo na ciência da computação. Já se foi o tempo em que as pessoas tinham que codificar todos os algoritmos paramachine learning. Graças ao Python e suas bibliotecas, módulos e estruturas, agora é mais eficaz e fácil.

Algumas das melhores bibliotecas Python para machine learning em 2021

Bem, Python cresceu e se tornou a linguagem preferida para algoritmos de machine learning. Vamos dar uma olhada nas principais bibliotecas Python usadas para isto.

ML / DL envolve muitos cálculos matemáticos e operações, especialmente Matrix. Para tornar mais fácil e menos demorado, são usadas bibliotecas Python para machine learning.

De acordo com o relatório, NumPy, Pandas e Matplotlib são as bibliotecas Python preferidas para machine learning.

Imagem Ilustrativa

Agora, vamos verificar algumas das melhores bibliotecas Python para machine learning em 2021.

1- Numpy

NumPy ou Numerical Python é álgebra linear desenvolvida em Python. Um grande número de desenvolvedores e especialistas prefere isso a outras bibliotecas Python paramachine learning. Porque quase todos os pacotes de machine learning Python, como scipy, Mat-plotlib, Scikit-learn, etc, dependem fortemente dessa biblioteca em uma extensão razoável.

Além disso, ele vem com funções para lidar com operações matemáticas complexas como transformação de Fourier, álgebra linear, número aleatório e recursos que funcionam com matrizes e n-arrays em Python. Além disso, este pacote python executa cálculos científicos. Portanto, é amplamente utilizado no tratamento de ondas sonoras, imagens e outras funções binárias.

Características:
Objeto de matriz N-dimensional de alto desempenho
Interativo
Recipiente multidimensional para dados genéricos
Intuitivo
Informação adicional

2- TensorFlow

TensorFlow é uma biblioteca de machine learning Python de ponta a ponta para realizar cálculos numéricos de ponta. É uma das bibliotecas Python mais recomendadas para aprendizado de máquina. Ele pode lidar com redes neurais profundas para PNL (Processamento de Linguagem Natural), redes neurais recorrentes, reconhecimento de imagem, incorporação de palavras, classificação de dígitos manuscritos e PDE (Equação Diferencial Parcial). O TensorFlow Python garante excelente suporte de arquitetura para permitir implantações de computação fáceis em uma ampla gama de plataformas, incluindo desktops, servidores e dispositivos móveis.

Um dos principais benefícios do TensorFlow é a abstração para projetos de machine learning e IA. Esse recurso permite que os desenvolvedores se concentrem na lógica abrangente do aplicativo em vez de lidar com os detalhes mundanos da implementação de algoritmos. Além disso, com esta biblioteca, os desenvolvedores de Python agora podem aproveitar IA e ML sem esforço para criar aplicativos responsivos exclusivos, que respondem às entradas do usuário, como expressão facial ou de voz.

Características:
Ele é otimizado para velocidade e faz uso de técnicas como o XLA para operações rápidas de álgebra linear.
Construto Responsivo
Flexível
Facilmente treinável
Treinamento de rede neural paralela
Grande Comunidade
Código aberto

3- Pytorch

Você já pensou por que o PyTorch se tornou uma das bibliotecas Python populares para machine learning em tão pouco tempo?

PyTorch é uma biblioteca de machine learning Python pronta para produção com excelentes exemplos, aplicativos e casos de uso suportados por uma forte comunidade. Esta biblioteca absorve forte aceleração da GPU e permite que você a aplique a partir de aplicativos como o NLP. Como ele suporta computação de GPU e CPU, ele fornece otimização de desempenho e treinamento distribuído escalonável em pesquisa e produção.

Redes neurais profundas e computação de tensor com aceleração de GPU são os dois recursos de ponta do PyTorch. Ele inclui um compilador de machine learning chamado Glow, que aumenta o desempenho de estruturas deste processo.

Características:
Front-end híbrido
Treinamento Distribuído
Python First
Bibliotecas e ferramentas

4- Pandas

Em projetos de machine learning, uma quantidade substancial de tempo é gasta na preparação dos dados, bem como na análise de tendências e padrões básicos. É aqui que o Python Pandas atrai a atenção dos especialistas em machine learning. Python Pandas é uma biblioteca de código aberto que vem com uma ampla gama de ferramentas para manipulação e análise de dados. Com a ajuda dessa biblioteca, você pode ler dados de uma ampla variedade de fontes, como bancos de dados SQL, CSV, arquivos JSON e Excel.

Ele permite que você gerencie operações de dados complexas com apenas um ou dois comandos. Além disso, Python Pandas vem com vários métodos embutidos para combinar dados e agrupar e filtrar a funcionalidade de série temporal. No geral, o Pandas não se limita apenas a lidar com tarefas relacionadas a dados; também serve como o melhor ponto de partida para criar ferramentas de dados mais focadas e poderosas.

Características:
Objeto DataFrame rápido e eficiente com indexação padrão e customizada.
Ferramentas para carregar dados em objetos de dados na memória de diferentes formatos de arquivo.
Alinhamento de dados e tratamento integrado de dados ausentes.
Remodelagem e dinamização de conjuntos de dados.

5- Matplotlib

Como o nome sugere, Matplotlib oferece uma interface semelhante ao MATLAB e fornece aos usuários uma excelente experiência de usuário. Ele usa kits de ferramentas GUI padrão como Qt, wxPython, GTK + ou Tkinter para fornecer aos programadores uma API orientada a objetos para incorporar gráficos e plotagens em seus aplicativos.

Matplotlib ajuda a produzir gráficos e figuras 2D de alta qualidade em vários formatos. Os tipos de gráficos e gráficos incluem gráficos de erros, gráficos, histogramas, gráficos de dispersão e gráficos de barras com o mínimo de linhas de código.

Características:
Renderização de texto mais rápida
Mapa de cores qualitativo
Suporte de imagem aprimorado
Melhor escolha de texto de deslocamento

6- Scipy

SciPy é uma das bibliotecas Python populares para machine learning. Tem sido uma biblioteca favorita entre os entusiastas do machine learning, pois contém diferentes módulos para integração, otimização, álgebra linear e estatística. Há uma diferença entre a biblioteca SciPy e a pilha SciPy. O SciPy é um dos pacotes principais que compõem a pilha do SciPy. Além disso, SciPy também é muito útil para a manipulação de imagens.

Características:
Lida facilmente com operações matemáticas.
Oferece rotinas numéricas eficientes, como integração e otimização numérica, usando submódulos.
Suporta processamento de sinal.

7- Keras

Keras é uma das melhores bibliotecas Python para machine learning. Se você for um iniciante em machine learning, sugiro que use Keras. Além disso, fornece uma maneira mais fácil de expressar redes neurais. Além disso, ele também fornece alguns dos utilitários para compilar modelos, processar conjuntos de dados, avaliar resultados, visualizar gráficos e muito mais.

Keras usa internamente Tensorflow ou Theano como backend. Algumas outras estruturas de rede neural populares como CNTK também podem ser usadas. Keras é lento quando comparado a outras bibliotecas porque constrói um gráfico computacional usando a infraestrutura de back-end e depois o usa para realizar operações. Além disso, Keras fornece muitos conjuntos de dados pré-processados ​​e modelos pré-treinados como Inception, SqueezeNet, Mnist, VGG, ResNet, etc.

Características:
Ele funciona perfeitamente na CPU e GPU.
Conjuntos de dados pré-etiquetados
Vários métodos para pré-processamento de dados
Avaliação de modelo
Modularidade

8- Theano

Em essência, Theano é uma conhecida biblioteca de computação científica que permite definir, otimizar e avaliar expressões matemáticas que lidam com matrizes multidimensionais. O fundamento de vários aplicativos de ML e IA é o cálculo repetitivo de uma expressão matemática complicada.

Theano permite que você faça cálculos com muitos dados mais rápido do que executando somente em sua CPU. Além disso, é bem otimizado para GPUs, o que oferece diferenciação simbólica eficaz e inclui recursos de teste de código extensos.

Quando se trata de desempenho superior, Theano é uma ótima biblioteca de machine learning Python, pois inclui a capacidade de lidar com cálculos em grandes redes neurais. Tem como objetivo aumentar o tempo de desenvolvimento e o tempo de execução de aplicativos de ML, principalmente em algoritmos de aprendizado profundo. Apenas uma desvantagem do Theano na frente do TensorFlow é que sua sintaxe é bastante difícil para iniciantes.

Características:
Integração total com NumPy
Uso transparente de uma GPU
Diferenciação simbólica eficiente
Otimizações de velocidade e estabilidade
Geração de código C dinâmico
Teste de unidade extensivo e autoverificação

Conclusão

O ecossistema python é enorme, tanto em termos de contribuição quanto de uso. Discutimos as bibliotecas Python para machine learning usadas em todas as principais áreas do ML, desde o estágio de manipulação de dados ao aprendizado profundo, processamento de linguagem natural e até mesmo visualização.

IBM Watson Assistant

Introdução

Este post, demonstra a configuração do processo de conversação com IBM Watson.

Premissas

  1. Vá para Watson Developer Console Services, aqui.
  2. Selecione “Watson Assistant”
  3. Clique “Incluir Serviços / Add Services”
  4. Forneça um nome, por exemplo: watson-assistant-tutorial
  5. Clique em “Criar Projeto / Create Project”

Ativar a Ferramenta

Com o projeto watson-assistant-tutorial aberto:

  1. Clique em “Ferramenta Ativar / Launch Tool”
  2. Se desejar, veja o vídeo da ferramenta, aqui

Criar Workspace

  1. Selecione o menu Workspaces
  2. Clique em “Create” para criar um novo workspace
  3. Defina um nome, por exemplo “Watson Assistant tutorial”
  4. Selecione a linguagem Portuguese (Brazilian)
  5. Clique em “Create”

Criar Intents

Intent representa o propósito de input de um usuário. De forma simples, são ações que o usuário pode executar, dentro de sua aplicação.

  1. Clique em “Add intent”
  2. Digite o nome “hello” e clique em “Create intent”
  3. Abrirá uma tela solicitando “Add user example”, forneça “hello” novamente
  4. Clique em “Add example”
  5. Adicione mais 4 examples
    1. good morning, greetings, hi, howdy
  6. Clique em “Close” (ícone de seta para esquerda)
  7. Criar outro Intent (#goodbye)
    1. Examples: bye, farewell, goodbye, I’m done, see you later

Examples informam ao serviço do Assistente do Watson quais tipos de entrada do usuário você deseja corresponder à intenção. Quanto mais exemplos você fornecer, mais preciso será o serviço ao reconhecer as intenções do usuário.