O Insight e o laboratório ÍRIS estão cominscrições abertas para bolsistas desenvolvedores ou pesquisadores. Venha fazer parte do nosso time e contribuir com pesquisas acadêmicas e tecnologias de ponta aplicadas aos problemas da sociedade e das organizações.
Vagas para bolsistas graduados e graduandos:
Desenvolvedor Back End;
Pesquisador em Ciência de Dados.
Habilidades:
Desenvolvedor Back End:
Java (Spring Boot)
Mongo
Pesquisador em Ciência de dados:
Python
Pandas
Numpy
Scikit Learn
Cursado alguma disciplina de Aprendizado de Máquina
Modalidade de Contratação
Alunos de graduação: bolsa FUNCAP de R$ 800,00 com uma carga horária de 20h semanais.
Graduados, valor da bolsa a combinar com carga horária até 40h semanais.
Etapas da seleção
Envio do formulário, até:
26/08
Resultado da análise de currículo e histórico
27/08
Entrevistas
30/08
Resultado final
31/08
Formulário de inscrição
Acesse o formulário de inscrição para registrar seus dados, enviar seu currículo e histórico escolar. Fique atento às datas e ao seu e-mail.
PLN ou Processamento de Linguagem Natural é a forma como as máquinas entendem e lidam com as linguagens humanas. Esta técnica lida com dados não estruturados de texto e embora seja difícil de dominá-la é fácil de entender seus conceitos.
Cientes disso, devemos entender que a disponibilidade e geração de dados são complexidades envolvidas, em geral, com qualquer tipo de caso de uso de Machine Learning (ML). Mas o PLN é o campo onde esse problema é relativamente menos pronunciado, pois há muitos dados de texto ao nosso redor. Os e-mails que escrevemos, os comentários que postamos, os blogs que escrevemos são alguns exemplos.
Tipos:
1) Reconhecimento de entidade nomeada
O processo de extração de entidades de nomeadas no texto, nome de pessoas, países, organizações, extrai informações úteis que podem ser usadas para vários fins como: classificação, recomendação, análise de sentimento, entre outros.
Um chatbot é o exemplo de uso mais comum. A consulta do usuário é entendida por meio das entidades no texto e respondida de acordo com elas.
2) Resumo do texto
É onde os conceitos-chave do texto são extraídos e o resumo parafraseado é construído em torno dele. Isso pode ser útil em resultados de pesquisas extensos.
3) Tradução
Conversão de texto de uma linguagem para outra. O tradutor do Google é o exemplo mais comum que temos.
4) Fala em texto
Converte voz em dados de texto, sendo o exemplo mais comum os assistentes em nossos smartphones.
5) NLU
Natural Language Understanding é uma forma de entender as palavras e frases no que diz respeito ao contexto. Eles são úteis na análise de sentimento dos comentários de usuários e consumidores. Modelos NLU são comumente usados na criação de chatbot.
6) NLG
Natural Language Generation vai além do processamento da máquina ou da compreensão do texto. Essa é a capacidade das máquinas de escrever conteúdo por si mesmas. Uma rede profunda, usando Transformers GTP-3, escreveu este artigo.
Iniciando
Os insights sobre como o Machine Learning lida com dados não estruturados de texto são apresentados por meio de um exemplo básico de classificação de texto.
Entrada:
Uma coluna de ‘texto’ com comentários de revisão por usuário. Uma coluna de ‘rótulo’ com um sinalizador para indicar se é um comentário positivo ou negativo.
Saída:
A tarefa é classificar os comentários com base no sentimento como positivos ou negativos.
Etapas de pré-processamento
Um pré-processamento será feito para transformar os dados em algoritmos de ML. Como o texto não pode ser tratado diretamente por máquinas, ele é convertido em números. Dessa forma, os dados não estruturados são convertidos em dados estruturados.
NLTK é uma biblioteca Python que pode ajudar você nos casos de uso de PLN e atende muito bem às necessidades de pré-processamento.
1) Remoção de palavras irrelevantes
Palavras irrelevantes ocorrem com frequência e não acrescentam muito significado ao texto. Os mecanismos de pesquisa também são programados para ignorar essas palavras. Podemos citar como exemplo as palavras: de, o, isso, tem, seu, o quê, etc.
A remoção dessas palavras ajuda o código a se concentrar nas principais palavras-chave do texto que adicionam mais contexto.
Aplicando a remoção de palavras irrelevantes a um data frame do Pandas com uma coluna de ‘texto’.
input_df[‘text’] = input_df[‘text’].apply(lambda x: “ “.join(x for x in x.split() if x not in stop))
2) Remoção de emojis e caracteres especiais
Os comentários do usuário são carregados de emojis e caracteres especiais. Eles são representados como caracteres Unicode no texto, denotados como U +, variando de U + 0000 a U + 10FFFF.
Flexão é a modificação de uma palavra para expressar diferentes categorias gramaticais como tempo verbal, voz, aspecto, pessoa, número, gênero e humor. Por exemplo, as derivações de ‘venha’ são ‘veio’, ‘vem’. Para obter o melhor resultado, as flexões de uma palavra devem ser tratadas da mesma maneira. Para lidar com isso usamos a lematização.
A lematização resolve as palavras em sua forma de dicionário (conhecida como lema), para a qual requer dicionários detalhados nos quais o algoritmo pode pesquisar e vincular palavras aos lemas correspondentes.
Por exemplo, as palavras “correr”, “corre” e “correu” são todas formas da palavra “correr”, portanto “correr” é o lema de todas as palavras anteriores.
a) Stemming
Stemming é uma abordagem baseada em regras que converte as palavras em sua palavra raiz (radical) para remover a flexão sem se preocupar com o contexto da palavra na frase. Isso é usado quando o significado da palavra não é importante. A palavra raiz pode ser uma palavra sem sentido em si mesma.
def stemming_text(text):
stem_words = [porter.stem(w) for w in w_tokenizer.tokenize(text)]
return ‘ ‘.join(stem_words)
input_df[‘text’] = input_df[‘text’].apply(lambda x: stemming_text(x))
b) Lematização
A lematização, ao contrário de Stemming, reduz as palavras flexionadas adequadamente, garantindo que a palavra raiz (lema) pertence ao idioma. Embora a lematização seja mais lenta em comparação com a Stemming, ela considera o contexto da palavra levando em consideração a palavra anterior, o que resulta em melhor precisão.
Código de explicação:
w_tokenizer = nltk.tokenize.WhitespaceTokenizer()
lemmatizer = nltk.stem.WordNetLemmatizer()
def lemmatize_text(text):
lemma_words = [lemmatizer.lemmatize(w) for w in w_tokenizer.tokenize(text)]
return ‘ ‘.join(lemma_words)
print(lemmatize_text('study'),
lemmatize_text('studying') ,
lemmatize_text('studies'))
Esta é a etapa em que as palavras são convertidas em números, que podem ser processados pelos algoritmos. Esses números resultantes estão na forma de vetores, daí o nome.
1) Modelo Bag of words
Este é o mais básico dos vetorizadores. O vetor formado contém palavras no texto e sua frequência. É como se as palavras fossem colocadas em um saco. A ordem das palavras não é mantida.
Código de explicação:
from sklearn.feature_extraction.text import CountVectorizer
bagOwords = CountVectorizer()
print(bagOwords.fit_transform(text).toarray())
print('Features:', bagOwords.get_feature_names())
Entrada:
text = [“I like the product very much. The quality is very good.”,
Os vetores dos textos 2 e 5 (ao contrário do que se espera), por serem de sentidos opostos, não diferem tanto. A matriz retornada é esparsa.
2) n-gramas
Ao contrário da abordagem do saco de palavras, a abordagem de n-gram depende da ordem das palavras para derivar seu contexto. O n-gram é uma sequência contígua de “n” itens em um texto, portanto, o conjunto de recursos criado com o recurso n-grams terá um número n de palavras consecutivas como recursos. O valor para “n” pode ser fornecido como um intervalo.
Só porque uma palavra aparece com alta frequência não significa que a palavra acrescenta um efeito significativo sobre o sentimento que procuramos. A palavra pode ser comum a todos os textos de amostra. Por exemplo, a palavra ‘product’ em nossa amostra é redundante e não fornece muitas informações relacionadas ao sentimento. Isso apenas aumenta a duração do recurso.
Frequência do termo (TF) – é a frequência das palavras em um texto de amostra.
Frequência inversa do documento (IDF) – destaca a frequência das palavras em outros textos de amostra. Os recursos são raros ou comuns nos textos de exemplo é a principal preocupação aqui.
Quando usamos ambos os TF-IDF juntos (TF * IDF), as palavras de alta frequência em um texto de exemplo que tem baixa ocorrência em outros textos de exemplo recebem maior importância.
No terceiro texto de exemplo, as palavras de valores ‘broken‘ e ‘delivered‘ são raras em todos os textos e recebem pontuação mais alta do que ‘product‘, que é uma palavra recorrente.
Geralmente, esse tipo de cenário terá um desequilíbrio de classe. Os dados de texto incluíam mais casos de sentimento positivo do que negativo. A maneira mais simples de lidar com o desequilíbrio de classe é aumentando os dados com cópias exatas da classe minoritária (neste caso, os cenários de sentimento negativo). Essa técnica é chamada de sobreamostragem.
Algoritmo de Machine Learning
Após a conclusão das etapas de processamento, os dados estão prontos para serem passados para um algoritmo de ML para ajuste e previsão. Este é um processo iterativo no qual um algoritmo adequado é escolhido e o ajuste do hiperparâmetro é feito.
Um ponto a ser observado aqui é que, aparentemente, como qualquer outro problema de ML, as etapas de pré-processamento devem ser tratadas após a divisão de treinamento e teste.
Código de implementação
from sklearn.ensemble import RandomForestClassifier
from sklearn.metrics import f1_score
rnd_mdl = RandomForestClassifier()
rnd_mdl.fit(tfidf_result, input_df[‘label’])
#Using the fitted model to predict from the test data
#test_df is the test data and tfidf_result_test is the preprocessed test text data
output_test_pred = rnd_mdl.predict(tfidf_result_test)
#finding f1 score for the generated model
test_f1_score = f1_score(test_df[‘label’], output_test_pred)
Biblioteca pré-construída
Há uma biblioteca pré-construída em NLTK que pontua os dados de texto com base no sentimento. Ele não precisa dessas etapas de pré-processamento. É denominado nltk.sentiment.SentimentAnalyzer.
Finalizando
Existem muitos modelos avançados de Deep Learning pré-treinados disponíveis para PLN. O pré-processamento envolvido, ao usar essas redes profundas, varia consideravelmente da abordagem de ML fornecida aqui.
Esta é uma introdução simples ao interessante mundo da PLN! É um vasto espaço em constante evolução!
Oportunidade para estudantes dos cursos de Tecnologia da Informação. O Projeto de Transformação Digital do Governo do Ceará, por meio do Insight Lab, está com inscrições abertas para bolsistas de graduação. O estudante pode estar cursando qualquer semestre e estar matriculado em qualquer instituição de nível superior, desde que seja residente no Ceará. O empenho em se aprofundar em Computação em Nuvem e Serverless Computing será o requisito mais relevante aqui.
Bolsista Iniciação Científica
Público
Aluno de graduação em Cursos de Tecnologia da Informação (TI).
Responsável por
Atuar na pesquisa de soluções inovadoras para desenvolvimento e implantação de Microserviços em Arquiteturas Serverless.
Habilidades
Conhecimento básico em Computação em Nuvem.
Modalidade de Contratação
Alunos de graduação: bolsa FUNCAP com uma carga horária de 20h semanais (R$ 800,00).
Etapas da seleção
Inscrições até:
17/08
Entrevistas de análise de currículo e resultado (previsão)
18/08
Envio da solução do desafio
26/08
Entrevista técnica
27/08
Resultado da entrevista técnica (previsão)
28/08
Desafio
O desafio será divulgado no dia 18/08. Sua resolução envolverá as tecnologias AWS Lambda e o framework AWS Serverless Application Model. Os estudantes que fizerem a inscrição e forem selecionados para a segunda fase receberão uma conta temporária na AWS para resolução do desafio.
Formulário de inscrição
Acesse o formulário de inscrição para registrar seus dados, enviar seu currículo e histórico escolar.
Com este livro prático os profissionais de IA e Machine Learning (ML) aprenderão como construir e implantar com sucesso, projetos de Ciência de Dados na Amazon Web Services (AWS). Os serviços Amazon AI e ML unificam Ciência de Dados, Engenharia de Dados e desenvolvimento de softwares para ajudar a aprimorar suas habilidades.
Este livro mostra como criar e executar pipelines na nuvem e, em seguida, integrar os resultados aos aplicativos em minutos, em vez de dias. Ao longo do livro, os autores Chris Fregly e Antje Barth demonstram como reduzir custos e melhorar o desempenho. Veja as possibilidades que esta leitura lhe trará:
Aplicação dos serviços Amazon AI e de ML a casos de uso do mundo real para Processamento de Linguagem Natural, visão computacional, detecção de fraude, dispositivos de conversação e muito mais;
Uso de ML automatizado (AutoML) para implementar um subconjunto específico de casos de uso com o Amazon SageMaker Autopilot;
Mergulhe profundamente no ciclo de vida de desenvolvimento de modelo completo para um caso de uso de processamento de Linguagem Natural (PLN) baseado em BERT, incluindo ingestão, análise de dados e muito mais;
Operações repetitivas de ML (MLOps) pipeline;
Explore ML em tempo real, detecção de anomalias e streaming, análises em fluxos de dados em tempo real com Amazon Kinesis e Amazon Managed Streaming para Apache Kafka (Amazon MSK);
Aprenda as melhores práticas de segurança para projetos e fluxos de trabalho de Ciência de Dados incluindo: AWS Identity and Access Management (IAM), autenticação, autorização, ingestão de dados e análise, treinamento de modelo e implantação.
Para quem é este livro
Este livro é para qualquer pessoa que utiliza dados para tomar decisões de negócios. A orientação aqui ajudará analistas de dados, cientistas de dados, engenheiros de dados, engenheiros de ML, cientistas de pesquisa, desenvolvedores de aplicativos e engenheiros de DevOps a ampliar sua compreensão sobre Ciência de Dados e o nível de suas habilidades na nuvem.Para obter o máximo deste livro, é sugerido que os leitores tenham o seguinte conhecimento:
Conhecimento básico de computação em nuvem;
Habilidades básicas de programação com Python, R, Java / Scala ou SQL;
Familiaridade básica com ferramentas de Ciência de Dados, como Jupyter Notebook, Pandas, NumPy ou Scikit-learn.
Conheça os autores
Chris Fregly é um desenvolvedor, defensor de IA e Machine Learning na AWS com sede em San Francisco, Califórnia. Ele também é o fundador da série Meetup Advanced Spark, TensorFlow e KubeFlow, com sede em San Francisco. Anteriormente, Chris foi fundador da PipelineAI, onde trabalhou com muitas empresas e startups de IA para implantar continuamente Pipelines de ML / AI usando Apache Spark ML, Kubernetes, TensorFlow, Kubeflow, Amazon EKS e Amazon SageMaker.
Antje Barth é uma desenvolvedora, defensora de IA e Machine Learning na AWS com sede em Düsseldorf, Alemanha. Ela também é co-fundadora do capítulo de Düsseldorf do Meetup Women in Big Data. Além de ML / AI, Antje é apaixonada por ajudar os desenvolvedores a aproveitar Big Data, contêineres e plataformas Kubernetes no contexto de IA e aprendizado de máquina. Antes de ingressar na AWS, Antje trabalhou na função de engenharia de soluções na MapR e Cisco
Nós usamos cookies para melhorar sua experiência de navegação. Ao navegar no site, você concorda com a política de monitoramento de cookies. Se você concorda, clique em OK. Para ter mais informações sobre como isso é feito, acesse nosso Aviso de Privacidade.OKAviso de Privacidade