Livro "Análise de dados de texto aplicada em Python"

imagem A tecnologia de análise de texto está mudando rapidamente sob a influência do aprendizado de máquina. As redes neurais da pesquisa científica teórica passaram para a vida real e a análise de texto é ativamente integrada às soluções de software. As redes neurais são capazes de resolver as tarefas mais complexas do processamento de linguagem natural; ninguém se surpreende com tradução automática, "conversa" com um robô em uma loja online, reformulando, respondendo a perguntas e mantendo um diálogo. Por que Siri, Alexa e Alice não querem nos entender, o Google não encontra o que procuramos e os tradutores automáticos nos divertem com exemplos de "dificuldades de tradução" do chinês para o albanês? A resposta está nos detalhes - em algoritmos que funcionam corretamente na teoria, mas são difíceis de implementar na prática. Aprenda a usar técnicas de aprendizado de máquina para analisar texto em tarefas da vida real usando recursos e bibliotecas do Python. Na pesquisa de modelo e no pré-processamento de dados, você passará para os métodos de classificação e agrupamento de textos, em seguida, procederá à interpretação visual, análise de gráficos e, depois de se familiarizar com as técnicas de dimensionamento, aprenderá a usar o aprendizado profundo para analisar o texto.


O que é descrito neste livro?


Este livro fala sobre o uso de métodos de aprendizado de máquina para analisar texto usando as bibliotecas Python recém listadas. A natureza aplicada do livro sugere que não nos concentremos na linguística acadêmica ou nos modelos estatísticos, mas na implantação eficaz de modelos treinados em texto no aplicativo.

Nosso modelo de análise de texto está diretamente relacionado ao processo de aprendizado de máquina - a busca por um modelo que consiste em atributos, algoritmo e hiperparâmetros que dariam os melhores resultados em dados de treinamento para avaliar dados desconhecidos. Esse processo começa com a criação de um conjunto de dados de treinamento, que no campo da análise de texto é chamado de corpus. Em seguida, examinamos os métodos para extrair atributos e pré-processamento para representar o texto na forma de dados numéricos compreensíveis para os métodos de aprendizado de máquina. Além disso, depois de nos familiarizarmos com alguns princípios básicos, passaremos a estudar os métodos de classificação e agrupamento de textos, cuja história completa os primeiros capítulos do livro.

Nos capítulos seguintes, o foco está na expansão de modelos com conjuntos de atributos mais ricos e na criação de aplicativos de análise de texto. Primeiro, veremos como é possível apresentar e implementar um contexto na forma de sinais; depois, passaremos para uma interpretação visual para controlar o processo de seleção de modelos. Em seguida, veremos como analisar relacionamentos complexos extraídos do texto usando técnicas de análise de gráficos. Depois disso, voltamos nossa atenção para agentes interativos e aprofundamos nossa compreensão da análise sintática e semântica do texto. Em conclusão, o livro apresentará uma discussão prática de técnicas de dimensionamento para análise de texto em sistemas multiprocessadores usando o Spark e, finalmente, consideraremos o próximo estágio da análise de texto: aprendizado profundo.

Para quem é este livro?


Este livro foi escrito para programadores Python que estão interessados ​​em usar métodos de processamento de linguagem natural e aprendizado de máquina em seus produtos de software. Não assumimos que nossos leitores tenham conhecimento acadêmico ou matemático especial e, em vez disso, se concentrem em ferramentas e técnicas, em vez de explicações longas. Primeiro de tudo, este livro discute a análise de textos em inglês, para que os leitores precisem de pelo menos um conhecimento básico de entidades gramaticais, como substantivos, verbos, advérbios e adjetivos e como eles estão relacionados. Leitores sem experiência em aprendizado de máquina e linguística, mas com habilidades de programação em Python, não se sentirão perdidos em aprender os conceitos que apresentaremos.

Trecho. Extrair gráficos do texto


Extrair um gráfico do texto é uma tarefa difícil. Sua solução geralmente depende da área de assunto e, de um modo geral, a busca por elementos estruturados em dados não estruturados ou semiestruturados é determinada por perguntas analíticas sensíveis ao contexto.

Propomos dividir essa tarefa em etapas menores, organizando um processo simples de análise de gráficos, conforme mostrado na Fig. 9.3

imagem

Nesse processo, primeiro determinamos as entidades e os relacionamentos entre elas, com base na descrição da tarefa. Além disso, com base nesse esquema, determinamos a metodologia para selecionar um gráfico do corpus usando metadados, documentos no corpus e frases ou tokens nos documentos para extrair dados e as relações entre eles. A técnica de selecionar um gráfico é um processo cíclico que pode ser aplicado ao corpo, gerar um gráfico e salvar esse gráfico em disco ou memória para processamento analítico adicional.

No estágio de análise, os cálculos são realizados no gráfico extraído, por exemplo, clustering, análise estrutural, filtragem ou avaliação, e um novo gráfico é criado, usado em aplicativos. Com base nos resultados da etapa de análise, podemos voltar ao início do ciclo, refinar a metodologia e o esquema, extrair ou recolher grupos de nós ou arestas para tentar obter resultados mais precisos.

Criando um gráfico social


Considere o nosso corpo de artigos de notícias e a tarefa de modelar os relacionamentos entre diferentes entidades no texto. Se considerarmos a questão das diferenças de cobertura entre diferentes agências de notícias, você pode criar um gráfico a partir dos elementos que representam os nomes das publicações, nomes dos autores e fontes de informação. E se o objetivo é combinar referências a uma entidade em muitos artigos, além de detalhes demográficos, nossas redes podem corrigir a forma de apelação (respeitosa e outras). As entidades de nosso interesse podem estar na estrutura dos próprios documentos ou contidas diretamente no texto.

Digamos que nosso objetivo seja descobrir pessoas, lugares e qualquer outra coisa relacionada entre si em nossos documentos. Em outras palavras, precisamos construir uma rede social realizando uma série de transformações, como mostra a Fig. 9.4 Começamos a construção do gráfico usando a classe EntityExtractor criada no Capítulo 7. Em seguida, adicionamos os transformadores, um dos quais procura pares de entidades relacionadas e o segundo converte esses pares em um gráfico.

imagem

Procure pares de entidades

Nosso próximo passo é criar a classe EntityPairs, que recebe documentos na forma de listas de entidades (criadas pela classe EntityExtractor do Capítulo 7). Essa classe deve atuar como um conversor no pipeline Pipeline do Scikit-Learn e, portanto, herdar as classes BaseEstimator e TransformerMixin, conforme descrito no Capítulo 4. Supõe-se que as entidades no mesmo documento estejam relacionadas incondicionalmente entre si, portanto, adicionamos o método de pares usando a função itertools .permutations para criar todos os pares possíveis de entidades em um documento. Nosso método de transformação chamará pares para cada documento no corpo:

import itertools from sklearn.base import BaseEstimator, TransformerMixin class EntityPairs(BaseEstimator, TransformerMixin): def __init__(self): super(EntityPairs, self).__init__() def pairs(self, document): return list(itertools.permutations(set(document), 2)) def fit(self, documents, labels = None): return self def transform(self, documents): return [self.pairs(document) for document in documents] 

Agora você pode extrair sequencialmente entidades de documentos e emparelhar. Mas ainda não podemos distinguir pares de entidades que ocorrem com freqüência de pares que ocorrem apenas uma vez. De alguma forma, devemos codificar o peso do relacionamento entre as entidades em cada par, com o qual trataremos na próxima seção.

Gráficos de propriedades


O modelo matemático do gráfico define apenas conjuntos de nós e arestas e pode ser representado como uma matriz de adjacência, que pode ser usada em uma variedade de cálculos. Mas ele não suporta um mecanismo para modelar força ou tipos de relacionamentos. Duas entidades aparecem em apenas um documento ou em muitos? Eles se reúnem em artigos de um gênero específico? Para apoiar esse raciocínio, precisamos de uma maneira de salvar propriedades significativas nos nós e nas arestas do gráfico.

O modelo de gráfico de propriedades permite incorporar mais informações no gráfico, expandindo nossos recursos. No gráfico de propriedades, os nós são objetos com arestas de entrada e saída e, como regra, contendo um campo de tipo, semelhante a uma tabela em um banco de dados relacional. Costelas são objetos que definem os pontos inicial e final; esses objetos geralmente contêm um campo de rótulo que identifica o tipo de conexão e um campo de peso que define a força da conexão. Usando gráficos para análise de texto, geralmente usamos substantivos como nós e verbos como arestas. Depois de passar para a etapa de modelagem, isso nos permitirá descrever os tipos de nós, rótulos de links e a estrutura gráfica proposta.

Sobre autores


Benjamin Bengfort é um especialista em ciência de dados com sede em Washington, DC, que ignora completamente a política (algo comum no Distrito de Columbia) e prefere a tecnologia. Atualmente, ele está trabalhando em sua dissertação de doutorado na Universidade de Maryland, onde estuda aprendizado de máquina e computação distribuída. Existem robôs em seu laboratório (embora essa não seja a sua área favorita) e, para seu desgosto, seus assistentes constantemente equipam esses robôs com facas e ferramentas, provavelmente com o objetivo de vencer uma competição culinária. Observando um robô tentando cortar um tomate, Benjamin prefere hospedar a cozinha, onde ele cozinha pratos franceses e havaianos, além de churrascos e churrascos de todos os tipos. Programador em educação profissional, pesquisador de dados vocacionais, Benjamin costuma escrever artigos cobrindo uma ampla variedade de tópicos, desde processamento de linguagem natural até análise de dados em Python e o uso do Hadoop e Spark na análise.

Dra. Rebecca Bilbro - especialista em ciência de dados, programador Python, professor, palestrante e autor de artigos; vive em Washington, DC. É especialista em avaliação visual dos resultados de aprendizado de máquina: da análise de recursos à seleção de modelos e configurações de hiper parâmetros. Ele conduz pesquisas no campo do processamento de linguagem natural, construindo redes semânticas, resolvendo entidades e processando informações com um grande número de dimensões. Como participante ativa da comunidade de usuários e desenvolvedores de software de código aberto, Rebecca tem o prazer de trabalhar com outros desenvolvedores em projetos como o Yellowbrick (um pacote Python que visa a modelagem preditiva de caixa preta). No seu tempo livre, ele costuma andar de bicicleta com sua família ou pratica tocando ukulele. Ela obteve seu doutorado na Universidade de Illinois, em Urbana-Champaign, onde estudou técnicas práticas de comunicação e visualização.

»Mais informações sobre o livro podem ser encontradas no site do editor
» Conteúdo
» Trecho

Cupom de 20% de desconto para vendedores ambulantes - Python

Após o pagamento da versão em papel do livro, uma versão eletrônica do livro é enviada por e-mail.

PS: 7% do custo do livro será destinado à tradução de novos livros de informática; a lista de livros entregues à gráfica está aqui .

Source: https://habr.com/ru/post/pt444384/


All Articles