O que é PNL em Python?

A inteligência artificial evoluiu tremendamente na última década, e também é um de seus subcampos - Processamento de linguagem natural. O avanço da IA ​​é resultado da enorme capacidade computacional dos sistemas modernos e dos grandes volumes de dados não estruturados que são gerados a partir de uma infinidade de fontes. O Natural Language Processing ou PNL é o estudo da IA, que permite que os computadores processem dados textuais não estruturados brutos e extraam informações ocultas deles.

Definição

Ao contrário dos humanos, os computadores não são inteligentes o suficiente para processar dados não estruturados. Os seres humanos podem derivar significados desses dados, enquanto os computadores só podem fazê-lo com os dados estruturados armazenados nos bancos de dados. Para encontrar padrões e extrair significado dos dados naturais, os computadores usam as ferramentas e técnicas envolvidas na PNL para processar esses dados.

Como a PNL funciona em Python?

É muito complexo ler e entender inglês. A frase abaixo é um exemplo em que é realmente difícil para o computador compreender o pensamento real por trás da frase.

No Machine Learning, um pipeline é construído para cada problema em que cada parte do problema é resolvida separadamente usando o ML. O resultado final seria a combinação de vários modelos de aprendizado de máquina encadeados. O Processamento de linguagem natural funciona de maneira semelhante a esta, onde a sentença em inglês é dividida em partes.

Existem vários fatos presentes neste parágrafo. As coisas teriam sido fáceis se os próprios computadores pudessem entender o que é Londres, mas, para isso, os computadores precisam ser treinados com conceitos básicos da linguagem escrita.

1. Segmentação de sentenças - O corpus é dividido em várias sentenças, como abaixo.

Isso tornaria nossa vida mais fácil, pois é melhor processar uma única frase do que um parágrafo como um todo. A divisão pode ser feita com base em pontuações ou em várias outras técnicas complicadas que funcionam também em dados não limpos.

2. Tokenização de Palavras - Uma frase pode ainda ser dividida no token de palavras, como mostrado abaixo.

Após a tokenização, a frase acima é dividida em -

3. Partes da Previsão de Fala - Esse processo é sobre a geração das partes da fala para cada token. Isso nos permitiria entender o significado da frase e o tópico abordado na frase.

4. Lematização - Uma palavra em uma frase pode aparecer em diferentes formas. A lematização rastreia uma palavra de volta à sua raiz, ou seja, o lema de cada palavra.

5. Interrompa a identificação de palavras - Existem muitas palavras de preenchimento como 'the', 'a', em uma frase. Essas palavras agem como ruído em um texto cujo significado estamos tentando extrair. Portanto, é necessário filtrar essas palavras de parada para criar um modelo melhor.

Com base no aplicativo, as palavras de parada podem variar. No entanto, há uma lista predefinida de trabalhos interrompidos aos quais se pode se referir.

6. Reconhecimento de Entidades Nomeadas - NER é o processo de encontrar entidades como nome, local, pessoa, organização, etc., de uma frase.

O contexto da aparência de uma palavra em uma frase é usado aqui. Para obter dados estruturados de um texto, os sistemas NER têm muitos usos.

Exemplo de PNL em Python

Agora, a maioria das empresas está disposta a processar dados não estruturados para o crescimento de seus negócios. A PNL tem uma ampla variedade de usos, e um dos casos de uso mais comuns é a Classificação de Texto.

A classificação do texto em diferentes categorias automaticamente é conhecida como classificação de texto. A detecção de spam ou presunto em um email, a categorização de artigos de notícias, são alguns dos exemplos comuns de classificação de texto. Os dados usados ​​para essa finalidade precisam ser rotulados.

As poucas etapas de um pipeline de classificação de texto que precisam ser seguidas são:

  • O carregamento e o pré-processamento dos dados é a primeira etapa e, em seguida, eles são divididos em treinamento e conjunto de validação.
  • A etapa Engenharia de recursos envolve extrair os recursos úteis ou criar recursos significativos adicionais que ajudariam no desenvolvimento de um modelo preditivo melhor.
  • Para construir o modelo, o conjunto de dados rotulado é usado para treinar o modelo.

Pandas, Scikit-learn, XGBoost, TextBlog, Keras são algumas das bibliotecas necessárias que precisamos instalar. Em seguida, importaríamos as bibliotecas para preparação de conjuntos de dados, engenharia de recursos etc.

Os dados são enormes, com quase 3, 6 milhões de comentários que podem ser baixados aqui. Uma fração dos dados é usada. É baixado e lido em um quadro de dados do Pandas.

A variável de destino é codificada e os dados são divididos em conjuntos de trem e teste.

A engenharia de recursos é realizada usando os diferentes métodos abaixo.

1. Vetores de contagem - A representação de um documento, um termo e sua frequência de um corpus é alcançada pelos vetores de contagem.

2. Vetores TF-IDF - Em um documento, a importância relativa de um termo é representada pela pontuação na Frequência de termos (TF) e na Frequência inversa de documentos (IDF). O TF-IDF pode ser calculado por -

Os vetores TF-IDF podem ser gerados por nível de palavra, que apresenta a pontuação de cada termo, e o nível de grama N, que é a combinação de n-termos.

3. Incorporação de palavras - A representação de documentos e palavras na forma de um vetor denso é conhecida como incorporação de palavras. Há incorporação pré-treinada, como Glove, Word2Vec que pode ser usada ou também pode ser treinada.

4. Modelos de tópicos - é o grupo de palavras de um documento que carrega mais informações. A Alocação de Dirichlet Latente é usada aqui para modelagem de tópicos.

O modo é construído após a conclusão da engenharia de recursos e os recursos relevantes foram extraídos.

5. Bayes Naïve - É baseado no Teorema de Bayes, e o algoritmo acredita que não há relação entre os recursos em um conjunto de dados.


6. Regressão logística - Mede a relação linear entre os recursos, e a variável alvo é medida com base em uma função sigmóide que estima as probabilidades.


7. Support Vector Machine - Um hiperplano separa duas classes em um SVM.


8. Modelo de floresta aleatória - Um modelo de conjunto em que reduz a variação e agrupa várias árvores de decisão.


9. XG Boost - O viés é reduzido e os alunos fracos são convertidos em fortes.

Como a PNL o ajudaria em sua carreira?

O Processamento de linguagem natural é um campo em expansão no mercado e quase todas as organizações precisam de um engenheiro de PNL para ajudá-lo a processar os dados brutos. Portanto, é imperativo dominar as habilidades necessárias, pois não haverá escassez de empregos no mercado.

Conclusão: PNL em Python

Neste artigo, começamos com uma introdução à PNL no Python e, em seguida, implementamos um caso de uso no Python para mostrar como trabalhar com a PNL no Python.

Artigos recomendados

Este foi um guia para a PNL em Python. Aqui discutimos o exemplo, casos de uso e como trabalhar com a PNL no Python. Você também pode consultar nossos outros artigos sugeridos para saber mais -

  1. Usos do Python
  2. O que é a EAP?
  3. Python vs Scala
  4. O que é o Tableau?

Categoria: