Processamento de linguagem natural - Guia rápido

A linguagem é um meio de comunicação com o qual podemos falar, ler e escrever. Por exemplo, pensamos, tomamos decisões, planos e muito mais em linguagem natural; precisamente, em palavras. No entanto, a grande questão que nos confronta nesta era da IA ​​é que podemos nos comunicar de maneira semelhante com os computadores. Em outras palavras, os seres humanos podem se comunicar com computadores em sua linguagem natural? É um desafio para nós desenvolver aplicativos de PNL porque os computadores precisam de dados estruturados, mas a fala humana não é estruturada e muitas vezes é ambígua por natureza.

Nesse sentido, podemos dizer que Processamento de Linguagem Natural (PNL) é o subcampo da Ciência da Computação, especialmente Inteligência Artificial (IA) que se preocupa em permitir que os computadores entendam e processem a linguagem humana. Tecnicamente, a principal tarefa da PNL seria programar computadores para analisar e processar uma grande quantidade de dados de linguagem natural.

História da PNL

Dividimos a história da PNL em quatro fases. As fases têm interesses e estilos distintos.

Primeira fase (fase de tradução automática) - Final dos anos 1940 ao final dos anos 1960

O trabalho realizado nesta fase incidiu principalmente na tradução automática (TA). Esta fase foi um período de entusiasmo e otimismo.

Vamos agora ver tudo o que a primeira fase tinha nele -

  • A pesquisa sobre PNL começou no início dos anos 1950 após a investigação de Booth & Richens e o memorando de Weaver sobre tradução automática em 1949.

  • 1954 foi o ano em que uma experiência limitada de tradução automática do russo para o inglês foi demonstrada na experiência de Georgetown-IBM.

  • No mesmo ano, teve início a publicação da revista MT (Machine Translation).

  • A primeira conferência internacional sobre tradução automática (MT) foi realizada em 1952 e a segunda em 1956.

  • Em 1961, o trabalho apresentado na Teddington International Conference on Machine Translation of Languages ​​and Applied Language analysis foi o ponto alto dessa fase.

Segunda fase (fase influenciada pela IA) - Final dos anos 1960 ao final dos anos 1970

Nesta fase, o trabalho realizado relacionou-se fundamentalmente com o conhecimento de mundo e sobre o seu papel na construção e manipulação de representações de sentido. É por isso que essa fase também é chamada de fase com sabor de AI.

A fase tinha nele, o seguinte -

  • No início de 1961, o trabalho começou com os problemas de endereçamento e construção de dados ou base de conhecimento. Este trabalho foi influenciado pela IA.

  • No mesmo ano, também foi desenvolvido um sistema de perguntas e respostas BASEBALL. A entrada para este sistema era restrita e o processamento da linguagem envolvido era simples.

  • Um sistema muito avançado foi descrito em Minsky (1968). Este sistema, quando comparado ao sistema de perguntas e respostas BASEBALL, foi reconhecido e previu a necessidade de inferência sobre a base de conhecimento na interpretação e resposta ao input da linguagem.

Terceira fase (fase gramático-lógica) - Final dos anos 1970 ao final dos anos 1980

Esta fase pode ser descrita como a fase gramatical lógica. Devido ao fracasso da construção prática do sistema na última fase, os pesquisadores passaram a usar a lógica para representação e raciocínio do conhecimento em IA.

A terceira fase tinha o seguinte -

  • A abordagem gramatical-lógica, no final da década, nos ajudou com poderosos processadores de frases de propósito geral, como o Core Language Engine e a Teoria de Representação do Discurso do SRI, que ofereceu um meio de lidar com um discurso mais extenso.

  • Nesta fase, obtivemos alguns recursos e ferramentas práticas como analisadores, por exemplo, Alvey Natural Language Tools junto com sistemas mais operacionais e comerciais, por exemplo, para consulta de banco de dados.

  • O trabalho sobre o léxico na década de 1980 também apontou na direção da abordagem gramatical-lógica.

Quarta Fase (Fase Lexical e Corpus) - Década de 1990

Podemos descrever isso como uma fase lexical e corpus. A fase tinha uma abordagem lexicalizada da gramática que apareceu no final dos anos 1980 e se tornou uma influência crescente. Houve uma revolução no processamento de linguagem natural nesta década com a introdução de algoritmos de aprendizado de máquina para processamento de linguagem.

Estudo de Línguas Humanas

A linguagem é um componente crucial para a vida humana e também o aspecto mais fundamental de nosso comportamento. Podemos experimentá-lo principalmente de duas formas - escrita e falada. Na forma escrita, é uma forma de passar nosso conhecimento de uma geração para a outra. Na forma falada, é o principal meio para os seres humanos se coordenarem entre si em seu comportamento cotidiano. O idioma é estudado em várias disciplinas acadêmicas. Cada disciplina vem com seu próprio conjunto de problemas e um conjunto de soluções para resolvê-los.

Considere a seguinte tabela para entender isso -

Disciplina Problemas Ferramentas

Lingüistas

Como frases e sentenças podem ser formadas com palavras?

O que restringe o possível significado de uma frase?

Intuições sobre boa formação e significado.

Modelo matemático de estrutura. Por exemplo, semântica teórica do modelo, teoria da linguagem formal.

Psicolinguistas

Como os seres humanos podem identificar a estrutura das frases?

Como o significado das palavras pode ser identificado?

Quando ocorre a compreensão?

Técnicas experimentais principalmente para medir o desempenho de seres humanos.

Análise estatística de observações.

Filósofos

Como palavras e frases adquirem significado?

Como os objetos são identificados pelas palavras?

O que significa?

Argumentação em linguagem natural por meio da intuição.

Modelos matemáticos como lógica e teoria dos modelos.

Lingüistas Computacionais

Como podemos identificar a estrutura de uma frase

Como o conhecimento e o raciocínio podem ser modelados?

Como podemos usar a linguagem para realizar tarefas específicas?

Algoritmos

Estruturas de dados

Modelos formais de representação e raciocínio.

Técnicas de IA, como métodos de pesquisa e representação.

Ambiguidade e incerteza na linguagem

A ambigüidade, geralmente usada no processamento de linguagem natural, pode ser referida como a capacidade de ser compreendido de mais de uma maneira. Em termos simples, podemos dizer que ambigüidade é a capacidade de ser compreendido de mais de uma maneira. A linguagem natural é muito ambígua. A PNL tem os seguintes tipos de ambigüidades -

Ambiguidade Lexical

A ambigüidade de uma única palavra é chamada de ambigüidade lexical. Por exemplo, tratar a palavrasilver como substantivo, adjetivo ou verbo.

Ambiguidade sintática

Esse tipo de ambigüidade ocorre quando uma frase é analisada de maneiras diferentes. Por exemplo, a frase “O homem viu a menina com o telescópio”. É ambíguo se o homem viu a garota carregando um telescópio ou se a viu através de seu telescópio.

Ambiguidade Semântica

Esse tipo de ambigüidade ocorre quando o significado das próprias palavras pode ser mal interpretado. Em outras palavras, a ambigüidade semântica ocorre quando uma frase contém uma palavra ou frase ambígua. Por exemplo, a frase “O carro bateu no poste enquanto estava em movimento” apresenta ambigüidade semântica porque as interpretações podem ser “O carro, enquanto se move, bate no poste” e “O carro bate no poste enquanto o poste está em movimento”.

Ambiguidade anafórica

Esse tipo de ambigüidade surge devido ao uso de entidades anáforas no discurso. Por exemplo, o cavalo subiu a colina correndo. Era muito íngreme. Ele logo se cansou. Aqui, a referência anafórica de “isso” em duas situações causa ambigüidade.

Ambiguidade pragmática

Esse tipo de ambigüidade se refere à situação em que o contexto de uma frase fornece múltiplas interpretações. Em palavras simples, podemos dizer que a ambigüidade pragmática surge quando o enunciado não é específico. Por exemplo, a frase “Eu também gosto de você” pode ter múltiplas interpretações como eu gosto de você (assim como você gosta de mim), eu gosto de você (assim como alguém dose).

Fases da PNL

O diagrama a seguir mostra as fases ou etapas lógicas no processamento de linguagem natural -

Processamento Morfológico

É a primeira fase da PNL. O objetivo desta fase é quebrar pedaços de entrada de linguagem em conjuntos de tokens correspondentes a parágrafos, frases e palavras. Por exemplo, uma palavra como“uneasy” pode ser dividido em dois tokens de subpalavra como “un-easy”.

Análise de sintaxe

É a segunda fase da PNL. O objetivo desta fase é duplo: verificar se uma frase está bem formada ou não e dividi-la em uma estrutura que mostre as relações sintáticas entre as diferentes palavras. Por exemplo, a frase como“The school goes to the boy” seria rejeitado pelo analisador de sintaxe ou analisador.

Análise Semântica

É a terceira fase da PNL. O objetivo desta fase é extrair o significado exato, ou você pode dizer o significado do dicionário a partir do texto. O texto é verificado quanto ao significado. Por exemplo, o analisador semântico rejeitaria uma frase como “Sorvete quente”.

Análise Pragmática

É a quarta fase da PNL. A análise pragmática simplesmente ajusta os objetos / eventos reais, que existem em um determinado contexto, com as referências de objetos obtidas durante a última fase (análise semântica). Por exemplo, a frase “Coloque a banana na cesta da prateleira” pode ter duas interpretações semânticas e o analisador pragmático escolherá entre essas duas possibilidades.

Neste capítulo, aprenderemos sobre os recursos linguísticos do Processamento de Linguagem Natural.

Corpus

Um corpus é um conjunto grande e estruturado de textos legíveis por máquina que foram produzidos em um ambiente comunicativo natural. Seu plural é corpora. Eles podem ser derivados de diferentes maneiras, como texto originalmente eletrônico, transcrições da linguagem falada e reconhecimento óptico de caracteres, etc.

Elementos do Corpus Design

A linguagem é infinita, mas um corpus deve ser finito em tamanho. Para que o corpus tenha um tamanho finito, precisamos amostrar e incluir proporcionalmente uma ampla gama de tipos de texto para garantir um bom design de corpus.

Vamos agora aprender sobre alguns elementos importantes para o design de corpus -

Representatividade do Corpus

A representatividade é uma característica definidora do design de corpus. As seguintes definições de dois grandes pesquisadores - Leech e Biber, nos ajudarão a entender a representatividade do corpus -

  • According to Leech (1991), “Um corpus é considerado representativo da variedade linguística que supostamente representa se as descobertas baseadas em seu conteúdo puderem ser generalizadas para essa variedade linguística”.

  • According to Biber (1993), “Representatividade refere-se à extensão em que uma amostra inclui toda a gama de variabilidade em uma população”.

Desta forma, podemos concluir que a representatividade de um corpus é determinada pelos seguintes dois fatores -

  • Balance - A variedade de gêneros incluídos em um corpus

  • Sampling - Como os pedaços de cada gênero são selecionados.

Equilíbrio do Corpus

Outro elemento muito importante do design de corpus é o equilíbrio de corpus - a gama de gêneros incluída em um corpus. Já estudamos que a representatividade de um corpus geral depende de quão equilibrado é o corpus. Um corpus equilibrado cobre uma ampla gama de categorias de texto, que deveriam ser representantes da linguagem. Não temos nenhuma medida científica confiável para o equilíbrio, mas a melhor estimativa e intuição funcionam nessa questão. Em outras palavras, podemos dizer que o saldo aceito é determinado apenas pelos usos pretendidos.

Amostragem

Outro elemento importante do desenho do corpus é a amostragem. A representatividade e o equilíbrio do corpo estão intimamente associados à amostragem. É por isso que podemos dizer que a amostragem é inevitável na construção do corpus.

  • De acordo com Biber(1993), “Algumas das primeiras considerações na construção de um corpus dizem respeito ao design geral: por exemplo, os tipos de textos incluídos, o número de textos, a seleção de textos específicos, a seleção de amostras de texto de dentro dos textos e a extensão do texto amostras. Cada um deles envolve uma decisão de amostragem, consciente ou não. ”

Ao obter uma amostra representativa, precisamos considerar o seguinte -

  • Sampling unit- Refere-se à unidade que requer uma amostra. Por exemplo, para texto escrito, uma unidade de amostragem pode ser um jornal, periódico ou um livro.

  • Sampling frame - A lista de todas as unidades de amostragem é chamada de base de amostragem.

  • Population- Pode ser referido como a montagem de todas as unidades amostrais. É definido em termos de produção de linguagem, recepção de linguagem ou linguagem como um produto.

Tamanho do Corpus

Outro elemento importante do design do corpus é seu tamanho. Qual deve ser o tamanho do corpus? Não há uma resposta específica para esta pergunta. O tamanho do corpus depende da finalidade a que se destina, bem como de algumas considerações práticas como segue -

  • Tipo de consulta antecipada do usuário.

  • A metodologia utilizada pelos usuários para estudar os dados.

  • Disponibilidade da fonte de dados.

Com o avanço da tecnologia, o tamanho do corpus também aumenta. A tabela de comparação a seguir ajudará você a entender como funciona o tamanho do corpus -

Ano Nome do Corpus Tamanho (em palavras)
Anos 60 - 70 Marrom e LOB 1 milhão de palavras
Década de 1980 The Birmingham corpora 20 milhões de palavras
Década de 1990 The British National Corpus 100 milhões de palavras
Início do século 21 The Bank of English corpus 650 milhões de palavras

Em nossas seções subsequentes, veremos alguns exemplos de corpus.

TreeBank Corpus

Pode ser definido como um corpus de texto analisado linguisticamente que anota a estrutura sintática ou semântica da frase. Geoffrey Leech cunhou o termo 'treebank', que representa que a forma mais comum de representar a análise gramatical é por meio de uma estrutura de árvore. Geralmente, Treebanks são criados na parte superior de um corpus, que já foi anotado com tags de classes gramaticais.

Tipos de TreeBank Corpus

Os bancos de árvores semânticos e sintáticos são os dois tipos mais comuns de bancos de árvores em linguística. Vamos agora aprender mais sobre esses tipos -

Bancos de árvores semânticas

Esses Treebanks usam uma representação formal da estrutura semântica da frase. Eles variam na profundidade de sua representação semântica. Robot Commands Treebank, Geoquery, Groningen Meaning Bank, RoboCup Corpus são alguns dos exemplos de Semantic Treebanks.

Bancos de árvores sintáticas

Ao contrário dos Treebanks semânticos, as entradas dos sistemas Syntactic Treebank são expressões da linguagem formal obtidas a partir da conversão de dados analisados ​​do Treebank. As saídas de tais sistemas são representação de significado baseada em lógica de predicado. Vários bancos de árvore sintáticos em diferentes idiomas foram criados até agora. Por exemplo,Penn Arabic Treebank, Columbia Arabic Treebank são bancos de árvores sintáticos criados na língua árabe. Sininca Treebank sintático criado em língua chinesa. Lucy, Susane e BLLIP WSJ corpus sintático criado em língua inglesa.

Aplicativos do TreeBank Corpus

A seguir estão alguns dos aplicativos do TreeBanks -

Em Lingüística Computacional

Se falamos de Linguística Computacional, então o melhor uso do TreeBanks é projetar sistemas de processamento de linguagem natural de última geração, como taggers de classes gramaticais, parsers, analisadores semânticos e sistemas de tradução automática.

Na Lingüística de Corpus

No caso da linguística de Corpus, o melhor uso de Treebanks é estudar fenômenos sintáticos.

Em Lingüística Teórica e Psicolinguística

O melhor uso de Treebanks em teórica e psicolinguística é a evidência de interação.

PropBank Corpus

O PropBank, mais especificamente chamado de “Banco de proposições”, é um corpus, que é anotado com proposições verbais e seus argumentos. O corpus é um recurso orientado para o verbo; as anotações aqui estão mais relacionadas ao nível sintático. Martha Palmer et al., Departamento de Linguística, University of Colorado Boulder, o desenvolveu. Podemos usar o termo PropBank como substantivo comum, referindo-se a qualquer corpus que tenha sido anotado com proposições e seus argumentos.

Em Processamento de Linguagem Natural (PNL), o projeto PropBank desempenhou um papel muito significativo. Ajuda na rotulagem de papéis semânticos.

VerbNet (VN)

VerbNet (VN) é o maior recurso léxico independente de domínio hierárquico presente em inglês que incorpora informações semânticas e sintáticas sobre seu conteúdo. VN é um léxico verbal de ampla cobertura com mapeamentos para outros recursos lexicais, como WordNet, Xtag e FrameNet. É organizado em classes de verbos que estendem as classes de Levin por refinamento e adição de subclasses para alcançar coerência sintática e semântica entre os membros da classe.

Cada classe VerbNet (VN) contém -

Um conjunto de descrições sintáticas ou quadros sintáticos

Para representar as realizações de superfície possíveis da estrutura do argumento para construções como transitivas, intransitivas, frases preposicionais, resultativas e um grande conjunto de alternâncias de diátese.

Um conjunto de descrições semânticas, como animado, humano, organização

Para restringir, os tipos de papéis temáticos permitidos pelos argumentos e outras restrições podem ser impostas. Isso ajudará a indicar a natureza sintática do constituinte provavelmente associado à função temática.

WordNet

WordNet, criada por Princeton, é uma base de dados lexical para o idioma inglês. É a parte do corpus NLTK. No WordNet, substantivos, verbos, adjetivos e advérbios são agrupados em conjuntos de sinônimos cognitivos chamadosSynsets. Todos os synsets estão ligados com a ajuda de relações conceituais-semânticas e lexicais. Sua estrutura o torna muito útil para processamento de linguagem natural (PNL).

Em sistemas de informação, o WordNet é usado para vários fins, como desambiguação de sentido de palavra, recuperação de informação, classificação automática de texto e tradução automática. Um dos usos mais importantes do WordNet é descobrir a semelhança entre as palavras. Para esta tarefa, vários algoritmos foram implementados em vários pacotes como Similarity in Perl, NLTK em Python e ADW em Java.

Neste capítulo, entenderemos a análise de nível mundial em Processamento de Linguagem Natural.

Expressões regulares

Uma expressão regular (RE) é uma linguagem para especificar strings de pesquisa de texto. RE nos ajuda a encontrar ou encontrar outras strings ou conjuntos de strings, usando uma sintaxe especializada mantida em um padrão. As expressões regulares são usadas para pesquisar textos no UNIX e também no MS WORD de maneira idêntica. Temos vários mecanismos de pesquisa usando vários recursos de RE.

Propriedades de expressões regulares

A seguir estão algumas das propriedades importantes de RE -

  • O matemático americano Stephen Cole Kleene formalizou a linguagem de Expressão Regular.

  • RE é uma fórmula em uma linguagem especial, que pode ser usada para especificar classes simples de strings, uma sequência de símbolos. Em outras palavras, podemos dizer que RE é uma notação algébrica para caracterizar um conjunto de strings.

  • A expressão regular requer duas coisas, uma é o padrão que desejamos pesquisar e a outra é um corpus de texto a partir do qual precisamos pesquisar.

Matematicamente, uma expressão regular pode ser definida da seguinte forma -

  • ε é uma expressão regular, que indica que o idioma tem uma string vazia.

  • φ é uma expressão regular que denota que é uma linguagem vazia.

  • E se X e Y são expressões regulares, então

    • X, Y

    • X.Y(Concatenation of XY)

    • X+Y (Union of X and Y)

    • X*, Y* (Kleen Closure of X and Y)

também são expressões regulares.

  • Se uma string é derivada das regras acima, então também seria uma expressão regular.

Exemplos de expressões regulares

A tabela a seguir mostra alguns exemplos de expressões regulares -

Expressões regulares Conjunto Regular
(0 + 10 *) {0, 1, 10, 100, 1000, 10.000,…}
(0 * 10 *) {1, 01, 10, 010, 0010, ...}
(0 + ε) (1 + ε) {ε, 0, 1, 01}
(a + b) * Seria um conjunto de strings de a's eb's de qualquer comprimento que também inclui a string nula, ou seja, {ε, a, b, aa, ab, bb, ba, aaa …….}
(a + b) * abb Seria um conjunto de strings de a's eb's terminando com a string abb ie {abb, aabb, babb, aaabb, ababb, ………… ..}
(11) * Ele seria definido como um número par de 1's, que também inclui uma string vazia, ou seja, {ε, 11, 1111, 111111, ……….}
(aa) * (bb) * b Seria um conjunto de strings consistindo em um número par de a's seguido por um número ímpar de b's, ou seja, {b, aab, aabbb, aabbbbb, aaaab, aaaabbb, ………… ..}
(aa + ab + ba + bb) * Seria uma string de a's eb's de comprimento par que pode ser obtida pela concatenação de qualquer combinação das strings aa, ab, ba e bb incluindo null ie {aa, ab, ba, bb, aaab, aaba, …………. .}

Conjuntos regulares e suas propriedades

Pode ser definido como o conjunto que representa o valor da expressão regular e consiste em propriedades específicas.

Propriedades de conjuntos regulares

  • Se fizermos a união de dois conjuntos regulares, o conjunto resultante também será regula.

  • Se fizermos a interseção de dois conjuntos regulares, o conjunto resultante também será regular.

  • Se fizermos o complemento de conjuntos regulares, o conjunto resultante também será regular.

  • Se fizermos a diferença de dois conjuntos regulares, o conjunto resultante também será regular.

  • Se fizermos a reversão dos conjuntos regulares, o conjunto resultante também será regular.

  • Se considerarmos o fechamento de conjuntos regulares, o conjunto resultante também seria regular.

  • Se fizermos a concatenação de dois conjuntos regulares, o conjunto resultante também será regular.

Autômatos de Estados Finitos

O termo autômato, derivado da palavra grega "αὐτόματα" que significa "ação automática", é o plural de autômato que pode ser definido como um dispositivo de computação autopropelido abstrato que segue uma sequência predeterminada de operações automaticamente.

Um autômato com um número finito de estados é chamado de Autômato Finito (FA) ou Autômato de Estados Finitos (FSA).

Matematicamente, um autômato pode ser representado por uma 5-tupla (Q, Σ, δ, q0, F), onde -

  • Q é um conjunto finito de estados.

  • Σ é um conjunto finito de símbolos, denominado alfabeto do autômato.

  • δ é a função de transição

  • q0 é o estado inicial de onde qualquer entrada é processada (q0 ∈ Q).

  • F é um conjunto de estados / estados finais de Q (F ⊆ Q).

Relação entre autômatos finitos, gramáticas regulares e expressões regulares

Os pontos a seguir nos darão uma visão clara sobre a relação entre autômatos finitos, gramáticas regulares e expressões regulares -

  • Como sabemos, os autômatos de estados finitos são a base teórica do trabalho computacional e as expressões regulares são uma forma de descrevê-los.

  • Podemos dizer que qualquer expressão regular pode ser implementada como FSA e qualquer FSA pode ser descrita com uma expressão regular.

  • Por outro lado, a expressão regular é uma forma de caracterizar um tipo de linguagem chamada linguagem regular. Portanto, podemos dizer que a linguagem regular pode ser descrita com a ajuda de FSA e de expressões regulares.

  • A gramática regular, uma gramática formal que pode ser regular à direita ou regular à esquerda, é outra maneira de caracterizar a linguagem regular.

O diagrama a seguir mostra que autômatos finitos, expressões regulares e gramáticas regulares são as formas equivalentes de descrever linguagens regulares.

Tipos de automação de estado finito (FSA)

A automação de estado finito é de dois tipos. Vamos ver quais são os tipos.

Automação Finita Determinística (DFA)

Pode ser definido como o tipo de automação finita em que, para cada símbolo de entrada, podemos determinar o estado para o qual a máquina se moverá. Ele tem um número finito de estados, por isso a máquina é chamada de Autômato Finito Determinístico (DFA).

Matematicamente, um DFA pode ser representado por uma 5-tupla (Q, Σ, δ, q0, F), onde -

  • Q é um conjunto finito de estados.

  • Σ é um conjunto finito de símbolos, denominado alfabeto do autômato.

  • δ é a função de transição onde δ: Q × Σ → Q.

  • q0 é o estado inicial de onde qualquer entrada é processada (q0 ∈ Q).

  • F é um conjunto de estados / estados finais de Q (F ⊆ Q).

Considerando que graficamente, um DFA pode ser representado por diagramas chamados diagramas de estado onde -

  • Os estados são representados por vertices.

  • As transições são mostradas por rotulados arcs.

  • O estado inicial é representado por um empty incoming arc.

  • O estado final é representado por double circle.

Exemplo de DFA

Suponha que um DFA seja

  • Q = {a, b, c},

  • Σ = {0, 1},

  • q 0 = {a},

  • F = {c},

  • A função de transição δ é mostrada na tabela a seguir -

Estado atual Próximo estado para a entrada 0 Próximo estado para a entrada 1
UMA uma B
B b UMA
C c C

A representação gráfica deste DFA seria a seguinte -

Automação Finita Não Determinística (NDFA)

Pode ser definido como o tipo de automação finita em que para cada símbolo de entrada não podemos determinar o estado para o qual a máquina se moverá, ou seja, a máquina pode se mover para qualquer combinação de estados. Ele tem um número finito de estados, por isso a máquina é chamada de Automação Finita Não Determinística (NDFA).

Matematicamente, o NDFA pode ser representado por uma 5-tupla (Q, Σ, δ, q0, F), onde -

  • Q é um conjunto finito de estados.

  • Σ é um conjunto finito de símbolos, denominado alfabeto do autômato.

  • δ: -is a função de transição onde δ: Q × Σ → 2 Q .

  • q0: -é o estado inicial de onde qualquer entrada é processada (q0 ∈ Q).

  • F: -é um conjunto de estados / estados finais de Q (F ⊆ Q).

Considerando que graficamente (igual ao DFA), um NDFA pode ser representado por diagramas chamados diagramas de estado, onde -

  • Os estados são representados por vertices.

  • As transições são mostradas por rotulados arcs.

  • O estado inicial é representado por um empty incoming arc.

  • O estado final é representado por duplo circle.

Exemplo de NDFA

Suponha que um NDFA seja

  • Q = {a, b, c},

  • Σ = {0, 1},

  • q 0 = {a},

  • F = {c},

  • A função de transição δ é mostrada na tabela a seguir -

Estado atual Próximo estado para a entrada 0 Próximo estado para a entrada 1
UMA a, b B
B C a, c
C b, c C

A representação gráfica deste NDFA seria a seguinte -

Análise Morfológica

O termo análise morfológica está relacionado à análise de morfemas. Podemos definir a análise morfológica como o problema de reconhecer que uma palavra se divide em unidades menores significativas, chamadas morfemas, que produzem algum tipo de estrutura linguística para ela. Por exemplo, podemos quebrar a palavra raposas em duas, raposa e -es . Podemos ver que a palavra raposas é composta por dois morfemas, um é raposa e o outro é -es .

Em outro sentido, podemos dizer que a morfologia é o estudo de -

  • A formação de palavras.

  • A origem das palavras.

  • Formas gramaticais das palavras.

  • Uso de prefixos e sufixos na formação de palavras.

  • Como a classe gramatical (PoS) de um idioma é formada.

Tipos de Morfemas

Morfemas, as menores unidades com significado, podem ser divididos em dois tipos -

  • Stems

  • Ordem das palavras

Caules

É a unidade central significativa de uma palavra. Também podemos dizer que é a raiz da palavra. Por exemplo, na palavra raposas, o radical é raposa.

  • Affixes- Como o nome sugere, eles adicionam algum significado adicional e funções gramaticais às palavras. Por exemplo, na palavra raposas, o afixo é - es.

Além disso, os afixos também podem ser divididos nos seguintes quatro tipos -

    • Prefixes- Como o nome sugere, os prefixos precedem o radical. Por exemplo, na palavra desafivelar, un é o prefixo.

    • Suffixes- Como o nome sugere, os sufixos seguem a raiz. Por exemplo, na palavra gatos, -s é o sufixo.

    • Infixes- Como o nome sugere, os infixos são inseridos dentro da haste. Por exemplo, a palavra cupful pode ser pluralizada como cupful usando -s como infixo.

    • Circumfixes- Eles precedem e seguem a haste. Existem muito menos exemplos de circunfixos na língua inglesa. Um exemplo muito comum é 'A-ing', onde podemos usar -A precede e -ing segue o radical.

Ordem das palavras

A ordem das palavras seria decidida por análise morfológica. Vamos agora ver os requisitos para a construção de um analisador morfológico -

Léxico

O primeiro requisito para construir um analisador morfológico é o léxico, que inclui a lista de troncos e afixos junto com as informações básicas sobre eles. Por exemplo, as informações como se o radical é radical nominal ou radical verbal, etc.

Morfotática

É basicamente o modelo de ordenação de morfemas. Em outro sentido, o modelo que explica quais classes de morfemas podem seguir outras classes de morfemas dentro de uma palavra. Por exemplo, o fato morfotático é que o morfema plural do inglês sempre segue o substantivo, em vez de precedê-lo.

Regras ortográficas

Essas regras de ortografia são usadas para modelar as mudanças que ocorrem em uma palavra. Por exemplo, a regra de converter y em, ou seja, em palavras como cidade + s = cidades, não cidades.

A análise sintática ou análise sintática ou análise sintática é a terceira fase da PNL. O objetivo desta fase é extrair o significado exato, ou você pode dizer o significado do dicionário a partir do texto. A análise de sintaxe verifica se o texto é significativo em comparação com as regras da gramática formal. Por exemplo, a frase como “sorvete quente” seria rejeitada pelo analisador semântico.

Nesse sentido, a análise sintática ou análise sintática pode ser definida como o processo de análise das cadeias de símbolos na linguagem natural em conformidade com as regras da gramática formal. A origem da palavra‘parsing’ é da palavra latina ‘pars’ que significa ‘part’.

Conceito de analisador

É usado para implementar a tarefa de análise. Pode ser definido como o componente de software projetado para obter dados de entrada (texto) e fornecer uma representação estrutural da entrada após a verificação da sintaxe correta de acordo com a gramática formal. Ele também cria uma estrutura de dados geralmente na forma de árvore de análise ou árvore de sintaxe abstrata ou outra estrutura hierárquica.

As principais funções da análise incluem -

  • Para relatar qualquer erro de sintaxe.

  • Para se recuperar de erros comuns para que o processamento do restante do programa possa ser continuado.

  • Para criar uma árvore de análise.

  • Para criar uma tabela de símbolos.

  • Para produzir representações intermediárias (IR).

Tipos de análise

A derivação divide a análise nos dois tipos seguintes -

  • Análise de cima para baixo

  • Análise de baixo para cima

Análise de cima para baixo

Nesse tipo de análise, o analisador começa a construir a árvore de análise a partir do símbolo inicial e, em seguida, tenta transformar o símbolo inicial na entrada. A forma mais comum de análise de cima para baixo usa o procedimento recursivo para processar a entrada. A principal desvantagem da análise descendente recursiva é o retrocesso.

Análise de baixo para cima

Nesse tipo de análise, o analisador começa com o símbolo de entrada e tenta construir a árvore do analisador até o símbolo inicial.

Conceito de Derivação

Para obter a string de entrada, precisamos de uma sequência de regras de produção. Derivação é um conjunto de regras de produção. Durante a análise, precisamos decidir o não terminal, que deve ser substituído, juntamente com a decisão da regra de produção com a ajuda da qual o não terminal será substituído.

Tipos de Derivação

Nesta seção, aprenderemos sobre os dois tipos de derivações, que podem ser usadas para decidir qual não terminal a ser substituído pela regra de produção -

Derivação mais à esquerda

Na derivação mais à esquerda, a forma sentencial de uma entrada é digitalizada e substituída da esquerda para a direita. A forma sentencial, neste caso, é chamada de forma sentencial à esquerda.

Derivação mais à direita

Na derivação mais à esquerda, a forma sentencial de uma entrada é digitalizada e substituída da direita para a esquerda. A forma sentencial, neste caso, é chamada de forma sentencial direita.

Conceito de Parse Tree

Pode ser definido como a representação gráfica de uma derivação. O símbolo inicial de derivação serve como raiz da árvore de análise. Em cada árvore de análise, os nós folha são terminais e os nós internos são não terminais. Uma propriedade da árvore de análise é que a travessia em ordem produzirá a string de entrada original.

Conceito de Gramática

A gramática é muito essencial e importante para descrever a estrutura sintática de programas bem formados. No sentido literário, eles denotam regras sintáticas para conversação em línguas naturais. A linguística tem tentado definir gramáticas desde o início das línguas naturais, como inglês, hindi, etc.

A teoria das linguagens formais também é aplicável nos campos da Ciência da Computação, principalmente em linguagens de programação e estrutura de dados. Por exemplo, na linguagem 'C', as regras gramaticais precisas determinam como as funções são feitas a partir de listas e instruções.

Um modelo matemático de gramática foi dado por Noam Chomsky em 1956, que é eficaz para escrever linguagens de computador.

Matematicamente, uma gramática G pode ser escrita formalmente como uma tupla de 4 (N, T, S, P) onde -

  • N ou VN = conjunto de símbolos não terminais, ou seja, variáveis.

  • T ou = conjunto de símbolos do terminal.

  • S = Símbolo de início onde S ∈ N

  • Pdenota as regras de produção para terminais e também para não terminais. Tem a forma α → β, onde α e β são strings em V N ∪ ∑ e pelo menos um símbolo de α pertence a V N

Estrutura da frase ou gramática do grupo constituinte

A gramática de estrutura de frase, introduzida por Noam Chomsky, é baseada na relação de constituintes. É por isso que também é chamada de gramática constituinte. É o oposto da gramática da dependência.

Exemplo

Antes de dar um exemplo de gramática de constituintes, precisamos conhecer os pontos fundamentais sobre a gramática de constituintes e a relação de constituintes.

  • Todas as estruturas relacionadas vêem a estrutura da frase em termos de relação de constituintes.

  • A relação constituinte é derivada da divisão sujeito-predicado do latim e também da gramática grega.

  • A estrutura da cláusula básica é entendida em termos de noun phrase NP e verb phrase VP.

Podemos escrever a frase “This tree is illustrating the constituency relation” como segue -

Gramática de Dependência

É o oposto da gramática de constituintes e baseado na relação de dependência. Foi apresentado por Lucien Tesniere. A gramática de dependência (GD) é oposta à gramática de constituintes porque não possui nós frasais.

Exemplo

Antes de dar um exemplo de gramática de dependência, precisamos conhecer os pontos fundamentais sobre a gramática de dependência e a relação de dependência.

  • Na GD, as unidades linguísticas, ou seja, as palavras são conectadas entre si por links direcionados.

  • O verbo se torna o centro da estrutura da cláusula.

  • Todas as outras unidades sintáticas são conectadas ao verbo em termos de link direcionado. Essas unidades sintáticas são chamadasdependencies.

Podemos escrever a frase “This tree is illustrating the dependency relation” do seguinte modo;

A árvore de análise que usa a gramática de grupos constituintes é chamada de árvore de análise baseada em grupos constituintes; e a árvore de análise que usa a gramática de dependência é chamada de árvore de análise baseada em dependência.

Gramática livre de contexto

Gramática livre de contexto, também chamada de CFG, é uma notação para descrever linguagens e um superconjunto da gramática regular. Pode ser visto no diagrama a seguir -

Definição de CFG

CFG consiste em um conjunto finito de regras gramaticais com os quatro componentes a seguir -

Conjunto de não terminais

É denotado por V. Os não terminais são variáveis ​​sintáticas que denotam os conjuntos de strings, que auxiliam ainda mais na definição da linguagem, gerada pela gramática.

Conjunto de Terminais

Também é chamado de tokens e definido por Σ. As strings são formadas com os símbolos básicos dos terminais.

Conjunto de produções

É denotado por P. O conjunto define como os terminais e não terminais podem ser combinados. Cada produção (P) consiste em não terminais, uma seta e terminais (a sequência de terminais). Os não terminais são chamados de lado esquerdo da produção e os terminais são chamados de lado direito da produção.

Símbolo de início

A produção começa a partir do símbolo inicial. É denotado pelo símbolo S. O símbolo não terminal é sempre designado como símbolo inicial.

O objetivo da análise semântica é extrair o significado exato, ou você pode dizer o significado do dicionário a partir do texto. O trabalho do analisador semântico é verificar o significado do texto.

Já sabemos que a análise lexical também lida com o significado das palavras, então em que a análise semântica difere da análise lexical? A análise lexical é baseada em tokens menores, mas, por outro lado, a análise semântica se concentra em pedaços maiores. É por isso que a análise semântica pode ser dividida nas duas partes a seguir -

Estudando o significado de uma palavra individual

É a primeira parte da análise semântica em que o estudo do significado de palavras individuais é realizado. Esta parte é chamada de semântica lexical.

Estudar a combinação de palavras individuais

Na segunda parte, as palavras individuais serão combinadas para fornecer significado às frases.

A tarefa mais importante da análise semântica é obter o significado adequado da frase. Por exemplo, analise a frase“Ram is great.”Nesta frase, o orador está falando sobre Lord Ram ou sobre uma pessoa cujo nome é Ram. É por isso que o trabalho, para obter o significado adequado da frase, de analisador semântico é importante.

Elementos de Análise Semântica

A seguir estão alguns elementos importantes da análise semântica -

Hiponímia

Pode ser definido como a relação entre um termo genérico e instâncias desse termo genérico. Aqui, o termo genérico é chamado de hiperínimo e suas instâncias são chamadas de hipônimos. Por exemplo, a palavra cor é hiperônimo e as cores azul, amarelo etc. são hipônimos.

Homonímia

Pode ser definido como palavras com a mesma grafia ou mesma forma, mas com significados diferentes e não relacionados. Por exemplo, a palavra “Morcego” é uma palavra homonímia porque o morcego pode ser um instrumento para acertar uma bola ou o bastão também é um mamífero voador noturno.

Polissemia

Polissemia é uma palavra grega que significa “muitos sinais”. É uma palavra ou frase com sentido diferente, mas relacionado. Em outras palavras, podemos dizer que a polissemia tem a mesma grafia, mas um significado diferente e relacionado. Por exemplo, a palavra "banco" é uma palavra polissêmica com os seguintes significados -

  • Uma instituição financeira.

  • O prédio em que essa instituição está localizada.

  • Um sinônimo para “confiar em”.

Diferença entre polissemia e homonímia

Tanto as palavras polissêmicas quanto as homonímicas têm a mesma sintaxe ou grafia. A principal diferença entre eles é que na polissemia, os significados das palavras estão relacionados, mas na homonímia, os significados das palavras não estão relacionados. Por exemplo, se falarmos sobre a mesma palavra “Banco”, podemos escrever o significado de 'uma instituição financeira' ou 'uma margem de rio'. Nesse caso, seria o exemplo de homônimo porque os significados não estão relacionados entre si.

Sinonímia

É a relação entre dois itens lexicais com formas diferentes, mas expressando o mesmo ou um significado próximo. Os exemplos são 'autor / escritor', 'fado / destino'.

Antonymy

É a relação entre dois itens lexicais que possuem simetria entre seus componentes semânticos em relação a um eixo. O escopo da antonímia é o seguinte -

  • Application of property or not - O exemplo é 'vida / morte', 'certeza / incerteza'

  • Application of scalable property - O exemplo é 'rico / pobre', 'quente / frio'

  • Application of a usage - O exemplo é 'pai / filho', 'lua / sol'.

Representação de Significado

A análise semântica cria uma representação do significado de uma frase. Mas antes de entrar no conceito e nas abordagens relacionadas à representação do significado, precisamos entender os blocos de construção do sistema semântico.

Blocos de construção do sistema semântico

Na representação de palavras ou representação do significado das palavras, os seguintes blocos de construção desempenham um papel importante -

  • Entities- Representa o indivíduo, como uma pessoa particular, local etc. Por exemplo, Haryana. Índia, Ram, todos são entidades.

  • Concepts - Representa a categoria geral dos indivíduos, como pessoa, cidade, etc.

  • Relations- Representa a relação entre entidades e conceito. Por exemplo, Ram é uma pessoa.

  • Predicates- Representa as estruturas verbais. Por exemplo, papéis semânticos e gramática de caso são exemplos de predicados.

Agora, podemos entender que a representação de significado mostra como reunir os blocos de construção dos sistemas semânticos. Em outras palavras, mostra como reunir entidades, conceitos, relações e predicados para descrever uma situação. Também possibilita o raciocínio sobre o mundo semântico.

Abordagens para representações de significado

A análise semântica usa as seguintes abordagens para a representação do significado -

  • Lógica de predicado de primeira ordem (FOPL)

  • Redes Semânticas

  • Frames

  • Dependência conceitual (CD)

  • Arquitetura baseada em regras

  • Case Grammar

  • Gráficos Conceituais

Necessidade de representações de significado

Uma questão que surge aqui é por que precisamos de representação de significado? Seguintes são as razões para o mesmo -

Ligação de elementos linguísticos a elementos não linguísticos

A primeira razão é que, com a ajuda da representação do significado, a ligação dos elementos linguísticos aos elementos não linguísticos pode ser feita.

Representando a variedade em nível léxico

Com a ajuda da representação de significado, formas canônicas não ambíguas podem ser representadas no nível lexical.

Pode ser usado para raciocinar

A representação de significado pode ser usada para raciocinar para verificar o que é verdadeiro no mundo, bem como para inferir o conhecimento a partir da representação semântica.

Semântica Lexical

A primeira parte da análise semântica, que estuda o significado de palavras individuais, é chamada de semântica lexical. Inclui palavras, subpalavras, afixos (subunidades), palavras compostas e frases também. Todas as palavras, subpalavras, etc. são chamadas coletivamente de itens lexicais. Em outras palavras, podemos dizer que a semântica lexical é a relação entre itens lexicais, significado das frases e sintaxe da frase.

A seguir estão as etapas envolvidas na semântica lexical -

  • A classificação de itens lexicais como palavras, subpalavras, afixos, etc. é realizada na semântica lexical.

  • A decomposição de itens lexicais como palavras, subpalavras, afixos, etc. é realizada na semântica lexical.

  • Diferenças, bem como semelhanças entre várias estruturas semânticas lexicais também são analisadas.

Entendemos que as palavras têm significados diferentes com base no contexto de seu uso na frase. Se falamos sobre linguagens humanas, elas também são ambíguas, porque muitas palavras podem ser interpretadas de várias maneiras, dependendo do contexto de sua ocorrência.

A desambiguação do sentido da palavra, no processamento de linguagem natural (PNL), pode ser definida como a habilidade de determinar qual significado da palavra é ativado pelo uso da palavra em um contexto particular. A ambigüidade lexical, sintática ou semântica, é um dos primeiros problemas que qualquer sistema de PNL enfrenta. Os identificadores de parte da fala (POS) com alto nível de precisão podem resolver a ambigüidade sintática do Word. Por outro lado, o problema de resolver a ambigüidade semântica é chamado WSD (desambiguação do sentido da palavra). Resolver a ambigüidade semântica é mais difícil do que resolver a ambigüidade sintática.

Por exemplo, considere os dois exemplos dos sentidos distintos que existem para a palavra “bass” -

  • Eu posso ouvir sons graves.

  • Ele gosta de comer robalo grelhado.

A ocorrência da palavra bassclaramente denota o significado distinto. Na primeira frase, significafrequency e em segundo lugar, significa fish. Portanto, se fosse eliminado a ambigüidade por WSD, o significado correto para as sentenças acima pode ser atribuído da seguinte forma -

  • Consigo ouvir sons graves / de frequência.

  • Ele gosta de comer robalo / peixe grelhado.

Avaliação de WSD

A avaliação do WSD requer as duas entradas a seguir -

Um dicionário

A primeira entrada para avaliação do WSD é o dicionário, que é usado para especificar os sentidos a serem eliminados.

Test Corpus

Outra entrada exigida pelo WSD é o corpus de teste com anotações altas que tem o alvo ou os sentidos corretos. Os corpora de teste podem ser de dois tipos & minsu;

  • Lexical sample - Este tipo de corpora é utilizado no sistema, onde é necessário desambiguar uma pequena amostra de palavras.

  • All-words - Este tipo de corpora é utilizado no sistema, onde se espera desambiguar todas as palavras em um trecho de texto corrido.

Abordagens e métodos para desambiguação de sentido de palavras (WSD)

As abordagens e métodos para WSD são classificados de acordo com a fonte de conhecimento usada na desambiguação de palavras.

Vejamos agora os quatro métodos convencionais para WSD -

Métodos baseados em dicionário ou baseados em conhecimento

Como o nome sugere, para a desambiguação, esses métodos dependem principalmente de dicionários, tesouros e base de conhecimento lexical. Eles não usam evidências de corpora para desambiguação. O método Lesk é o método seminal baseado em dicionário introduzido por Michael Lesk em 1986. A definição de Lesk, na qual o algoritmo de Lesk é baseado é“measure overlap between sense definitions for all words in context”. No entanto, em 2000, Kilgarriff e Rosensweig deram a definição simplificada de Lesk como“measure overlap between sense definitions of word and current context”, que significa ainda identificar o sentido correto para uma palavra por vez. Aqui, o contexto atual é o conjunto de palavras em torno da frase ou do parágrafo.

Métodos Supervisionados

Para desambiguação, os métodos de aprendizado de máquina usam corpora com anotações de sentido para treinar. Esses métodos presumem que o contexto pode fornecer evidências suficientes por si mesmo para eliminar a ambigüidade do sentido. Nestes métodos, as palavras conhecimento e raciocínio são consideradas desnecessárias. O contexto é representado como um conjunto de “características” das palavras. Inclui também as informações sobre as palavras circundantes. Máquina de vetores de suporte e aprendizado baseado em memória são as abordagens de aprendizado supervisionado mais bem-sucedidas para WSD. Esses métodos dependem de uma quantidade substancial de corpora manualmente marcados com sense, cuja criação é muito cara.

Métodos Semi-Supervisionados

Devido à falta de corpus de treinamento, a maioria dos algoritmos de desambiguação de sentido de palavra usa métodos de aprendizagem semi-supervisionada. É porque os métodos semissupervisionados usam dados marcados e não marcados. Esses métodos requerem uma quantidade muito pequena de texto anotado e uma grande quantidade de texto simples não anotado. A técnica usada pelos métodos semissupervisionados é a inicialização a partir dos dados iniciais.

Métodos não supervisionados

Esses métodos pressupõem que sentidos semelhantes ocorrem em contextos semelhantes. É por isso que os sentidos podem ser induzidos a partir do texto agrupando ocorrências de palavras usando alguma medida de similaridade do contexto. Essa tarefa é chamada de indução ou discriminação do sentido da palavra. Os métodos não supervisionados têm grande potencial para superar o gargalo de aquisição de conhecimento devido à não dependência de esforços manuais.

Aplicações de Desambiguação de Sentido de Palavras (WSD)

A desambiguação de sentido de palavra (WSD) é aplicada em quase todas as aplicações de tecnologia de linguagem.

Vamos agora ver o escopo do WSD -

Maquina de tradução

A tradução automática ou MT é a aplicação mais óbvia do WSD. Na MT, a escolha lexical para as palavras que possuem traduções distintas para diferentes sentidos, é feita pelo WSD. Os sentidos na MT são representados como palavras na língua de chegada. A maioria dos sistemas de tradução automática não usa módulo WSD explícito.

Recuperação de informação (IR)

A recuperação de informação (IR) pode ser definida como um programa de software que lida com a organização, armazenamento, recuperação e avaliação de informações de repositórios de documentos, particularmente informações textuais. O sistema basicamente auxilia os usuários a encontrar as informações necessárias, mas não retorna explicitamente as respostas das perguntas. WSD é usado para resolver as ambigüidades das consultas fornecidas ao sistema IR. Assim como o MT, os sistemas IR atuais não usam explicitamente o módulo WSD e contam com o conceito de que o usuário digitaria contexto suficiente na consulta para recuperar apenas os documentos relevantes.

Mineração de texto e extração de informações (IE)

Na maioria dos aplicativos, o WSD é necessário para fazer uma análise precisa do texto. Por exemplo, o WSD ajuda o sistema de coleta inteligente a sinalizar as palavras corretas. Por exemplo, o sistema médico inteligente pode precisar de sinalização de "drogas ilegais" em vez de "drogas médicas"

Lexicografia

WSD e lexicografia podem trabalhar juntos em loop porque a lexicografia moderna é baseada em corpus. Com a lexicografia, WSD fornece agrupamentos de sentido empírico aproximado, bem como indicadores contextuais de sentido estatisticamente significativos.

Dificuldades na desambiguação de sentido de palavra (WSD)

A seguir estão algumas dificuldades enfrentadas pela desambiguação do sentido das palavras (WSD) -

Diferenças entre dicionários

O principal problema do WSD é decidir o sentido da palavra porque diferentes sentidos podem estar intimamente relacionados. Mesmo diferentes dicionários e tesauros podem fornecer diferentes divisões de palavras em sentidos.

Diferentes algoritmos para diferentes aplicações

Outro problema do WSD é que um algoritmo completamente diferente pode ser necessário para aplicativos diferentes. Por exemplo, na tradução automática, assume a forma de seleção de palavras-alvo; e na recuperação de informações, um inventário de sentido não é necessário.

Variância entre juízes

Outro problema do WSD é que os sistemas WSD geralmente são testados tendo seus resultados em uma tarefa comparados com a tarefa de seres humanos. Isso é chamado de problema de variação entre juízes.

Discrição de sentido de palavra

Outra dificuldade no WSD é que as palavras não podem ser facilmente divididas em subentendidos discretos.

O problema mais difícil da IA ​​é processar a linguagem natural por computadores ou, em outras palavras, o processamento da linguagem natural é o problema mais difícil da inteligência artificial. Se falarmos sobre os principais problemas da PNL, então um dos maiores problemas da PNL é o processamento do discurso - construir teorias e modelos de como os enunciados se unem para formarcoherent discourse. Na verdade, a linguagem sempre consiste em grupos de frases colocados, estruturados e coerentes, em vez de frases isoladas e não relacionadas como filmes. Esses grupos coerentes de frases são chamados de discurso.

Conceito de Coerência

A coerência e a estrutura do discurso estão interligadas de várias maneiras. Coerência, junto com propriedade de bom texto, é usada para avaliar a qualidade de saída do sistema de geração de linguagem natural. A questão que se coloca aqui é o que significa para um texto ser coerente? Suponha que coletamos uma frase de cada página do jornal, então será um discurso? Claro que não. É porque essas frases não apresentam coerência. O discurso coerente deve possuir as seguintes propriedades -

Relação de coerência entre enunciados

O discurso seria coerente se tivesse conexões significativas entre seus enunciados. Essa propriedade é chamada de relação de coerência. Por exemplo, algum tipo de explicação deve estar lá para justificar a conexão entre os enunciados.

Relacionamento entre entidades

Outra propriedade que torna um discurso coerente é que deve haver certo tipo de relacionamento com as entidades. Esse tipo de coerência é chamado de coerência baseada em entidade.

Estrutura do discurso

Uma questão importante a respeito do discurso é que tipo de estrutura o discurso deve ter. A resposta a essa pergunta depende da segmentação que aplicamos ao discurso. As segmentações do discurso podem ser definidas como determinantes dos tipos de estruturas para um grande discurso. É muito difícil implementar a segmentação do discurso, mas é muito importante parainformation retrieval, text summarization and information extraction tipo de aplicações.

Algoritmos para segmentação do discurso

Nesta seção, aprenderemos sobre os algoritmos para segmentação do discurso. Os algoritmos são descritos abaixo -

Segmentação do discurso não supervisionado

A classe de segmentação de discurso não supervisionada é freqüentemente representada como segmentação linear. Podemos entender a tarefa de segmentação linear com a ajuda de um exemplo. No exemplo, há uma tarefa de segmentar o texto em unidades de vários parágrafos; as unidades representam a passagem do texto original. Esses algoritmos são dependentes de coesão que pode ser definida como o uso de certos dispositivos linguísticos para amarrar as unidades textuais. Por outro lado, a coesão do léxico é a coesão indicada pela relação entre duas ou mais palavras em duas unidades, como o uso de sinônimos.

Segmentação do discurso supervisionado

O método anterior não possui limites de segmento rotulados à mão. Por outro lado, a segmentação do discurso supervisionado precisa ter dados de treinamento rotulados por limites. É muito fácil adquirir o mesmo. Na segmentação supervisionada do discurso, o marcador do discurso ou as palavras-chave desempenham um papel importante. Marcador de discurso ou palavra-chave é uma palavra ou frase que funciona para sinalizar a estrutura do discurso. Esses marcadores de discurso são específicos do domínio.

Coerência de Texto

A repetição lexical é uma forma de encontrar a estrutura de um discurso, mas não satisfaz a exigência de ser um discurso coerente. Para alcançar o discurso coerente, devemos nos concentrar nas relações de coerência em específico. Como sabemos, essa relação de coerência define a conexão possível entre os enunciados em um discurso. Hebb propôs esse tipo de relações da seguinte forma -

Estamos levando dois termos S0 e S1 para representar o significado das duas frases relacionadas -

Resultado

Isso infere que o estado afirmado por termo S0 poderia causar o estado afirmado por S1. Por exemplo, duas declarações mostram o resultado do relacionamento: Ram foi pego no fogo. Sua pele queimou.

Explicação

Conclui que o estado afirmado por S1 poderia causar o estado afirmado por S0. Por exemplo, duas declarações mostram o relacionamento - Ram brigou com o amigo de Shyam. Ele estava bêbado.

Paralelo

Ele infere p (a1, a2, ...) da asserção de S0 e p (b1, b2, ...) da afirmação S1. Aqui, ai e bi são semelhantes para todos os i. Por exemplo, duas afirmações são paralelas - Ram queria carro. Shyam queria dinheiro.

Elaboração

Ele infere a mesma proposição P de ambas as afirmações - S0 e S1Por exemplo, duas declarações mostram a elaboração da relação: Ram era de Chandigarh. Shyam era de Kerala.

Ocasião

Acontece quando uma mudança de estado pode ser inferida a partir da afirmação de S0, estado final do qual pode ser inferido de S1e vice versa. Por exemplo, as duas declarações mostram a ocasião da relação: Ram pegou o livro. Ele deu a Shyam.

Construindo Estrutura Hierárquica do Discurso

A coerência de todo o discurso também pode ser considerada pela estrutura hierárquica entre as relações de coerência. Por exemplo, a seguinte passagem pode ser representada como estrutura hierárquica -

  • S1 - Ram foi ao banco para depositar dinheiro.

  • S2 - Ele então pegou um trem para a loja de roupas de Shyam.

  • S3 - Ele queria comprar algumas roupas.

  • S4 - Ele não tem roupa nova para festa.

  • S5 - Ele também queria falar com Shyam sobre sua saúde

Resolução de Referência

A interpretação das frases de qualquer discurso é outra tarefa importante e, para isso, precisamos saber de quem ou de que entidade está se falando. Aqui, a referência de interpretação é o elemento chave.Referencepode ser definida como a expressão linguística para denotar uma entidade ou indivíduo. Por exemplo, na passagem, Ram , o gerente do banco ABC , viu seu amigo Shyam em uma loja. Ele foi ao seu encontro, as expressões linguísticas como Ram, His, He são referência.

Na mesma nota, reference resolution pode ser definida como a tarefa de determinar quais entidades são referidas por qual expressão linguística.

Terminologia usada na resolução de referência

Usamos as seguintes terminologias na resolução de referência -

  • Referring expression- A expressão de linguagem natural usada para fazer referência é chamada de expressão de referência. Por exemplo, a passagem usada acima é uma expressão de referência.

  • Referent- É a entidade que se refere. Por exemplo, no último exemplo dado Ram é um referente.

  • Corefer- Quando duas expressões são usadas para se referir à mesma entidade, elas são chamadas de correferências. Por exemplo,Ram e he são corefers.

  • Antecedent- O termo tem licença para usar outro termo. Por exemplo,Ram é o antecedente da referência he.

  • Anaphora & Anaphoric- Pode ser definida como a referência a uma entidade previamente inserida na frase. E, a expressão de referência é chamada de anafórica.

  • Discourse model - O modelo que contém as representações das entidades que foram referidas no discurso e a relação que mantêm.

Tipos de expressões de referência

Vamos agora ver os diferentes tipos de expressões de referência. Os cinco tipos de expressões de referência são descritos abaixo -

Frases substantivas indefinidas

Esse tipo de referência representa as entidades que são novas para o ouvinte no contexto do discurso. Por exemplo - na frase que Ram saiu por aí um dia para levar comida para ele - alguma é uma referência indefinida.

Frases substantivas definidas

Ao contrário do anterior, esse tipo de referência representa as entidades que não são novas ou identificáveis ​​para o ouvinte no contexto do discurso. Por exemplo, na frase - Eu costumava ler The Times of India - The Times of India é uma referência definitiva.

Pronomes

É uma forma de referência definitiva. Por exemplo, Ram riu o mais alto que pôde. A palavrahe representa a expressão referente ao pronome.

Demonstrativos

Eles demonstram e se comportam de maneira diferente dos pronomes definidos simples. Por exemplo, este e aquele são pronomes demonstrativos.

Nomes

É o tipo mais simples de expressão de referência. Pode ser o nome de uma pessoa, organização e local também. Por exemplo, nos exemplos acima, Ram é a expressão que faz referência a nomes.

Tarefas de resolução de referência

As duas tarefas de resolução de referência são descritas abaixo.

Resolução de correferência

É a tarefa de encontrar expressões referenciais em um texto que se refiram à mesma entidade. Em palavras simples, é a tarefa de encontrar as expressões do corefer. Um conjunto de expressões de co-referência é chamado de cadeia de co-referência. Por exemplo - He, Chief Manager e His - são expressões de referência na primeira passagem dada como exemplo.

Restrição na resolução de correferência

Em inglês, o principal problema para a resolução de correferência é o pronome it. A razão por trás disso é que o pronome tem muitos usos. Por exemplo, pode se referir a ele e ela. O pronome também se refere às coisas que não se referem a coisas específicas. Por exemplo, está chovendo. É realmente bom.

Resolução da Anáfora Pronominal

Ao contrário da resolução de correferência, a resolução da anáfora pronominal pode ser definida como a tarefa de encontrar o antecedente para um único pronome. Por exemplo, o pronome é dele e a tarefa da resolução da anáfora pronominal é encontrar a palavra Ram porque Ram é o antecedente.

A marcação é um tipo de classificação que pode ser definida como a atribuição automática de descrição aos tokens. Aqui, o descritor é chamado de tag, que pode representar uma das classes gramaticais, informações semânticas e assim por diante.

Agora, se falamos sobre etiquetagem de classes gramaticais (PoS), então ela pode ser definida como o processo de atribuição de uma das classes gramaticais à palavra dada. Geralmente é chamado de marcação de POS. Em palavras simples, podemos dizer que a marcação do POS é uma tarefa de rotular cada palavra em uma frase com sua parte gramatical apropriada. Já sabemos que partes do discurso incluem substantivos, verbo, advérbios, adjetivos, pronomes, conjunção e suas subcategorias.

A maior parte da marcação de POS se enquadra na marcação de POS de base de regra, marcação de POS estocástico e marcação com base em transformação.

Tagging POS com base em regras

Uma das técnicas mais antigas de marcação é a marcação POS baseada em regras. Os etiquetadores baseados em regras usam dicionário ou léxico para obter possíveis marcas para etiquetar cada palavra. Se a palavra tiver mais de uma tag possível, os taggers baseados em regras usam regras escritas à mão para identificar a tag correta. A desambiguação também pode ser realizada na marcação baseada em regras, analisando as características linguísticas de uma palavra junto com suas palavras precedentes e seguintes. Por exemplo, suponha que se a palavra anterior de uma palavra for um artigo, a palavra deve ser um substantivo.

Como o nome sugere, todo esse tipo de informação na marcação de POS com base em regras é codificado na forma de regras. Essas regras podem ser:

  • Regras de padrão de contexto

  • Ou, como Expressão regular compilada em autômatos de estado finito, interseccionada com representação de sentença ambígua lexicamente.

Também podemos entender a marcação de PDV baseada em regras por sua arquitetura de dois estágios -

  • First stage - No primeiro estágio, ele usa um dicionário para atribuir a cada palavra uma lista de classes gramaticais potenciais.

  • Second stage - No segundo estágio, ele usa grandes listas de regras de desambiguação escritas à mão para classificar a lista em uma classe gramatical para cada palavra.

Propriedades da marcação de PDV baseada em regras

Taggers POS baseados em regras possuem as seguintes propriedades -

  • Esses etiquetadores são etiquetadores orientados pelo conhecimento.

  • As regras na marcação de POS com base em regras são criadas manualmente.

  • As informações são codificadas na forma de regras.

  • Temos um número limitado de regras em torno de 1000.

  • A suavização e a modelagem de linguagem são definidas explicitamente em identificadores baseados em regras.

Tag estocástica de PDV

Outra técnica de marcação é a marcação estocástica de PDV. Agora, a questão que se coloca aqui é qual modelo pode ser estocástico. O modelo que inclui frequência ou probabilidade (estatísticas) pode ser denominado estocástico. Qualquer número de abordagens diferentes para o problema de etiquetagem de classes gramaticais pode ser referido como etiquetador estocástico.

O etiquetador estocástico mais simples aplica as seguintes abordagens para etiquetagem POS -

Abordagem de frequência de palavras

Nesta abordagem, os etiquetadores estocásticos eliminam a ambigüidade das palavras com base na probabilidade de uma palavra ocorrer com uma marca específica. Também podemos dizer que a tag encontrada com mais frequência com a palavra no conjunto de treinamento é aquela atribuída a uma instância ambígua dessa palavra. O principal problema com esta abordagem é que ela pode gerar uma sequência inadmissível de tags.

Probabilidades de sequência de tag

É outra abordagem de etiquetagem estocástica, em que o etiquetador calcula a probabilidade de uma dada sequência de etiquetas ocorrer. É também chamada de abordagem de n-gram. É assim chamado porque a melhor tag para uma determinada palavra é determinada pela probabilidade de ocorrer com as n tags anteriores.

Propriedades da marcação estocástica do POST

Os etiquetadores estocásticos de POS possuem as seguintes propriedades -

  • Esta marcação de POS é baseada na probabilidade de ocorrência de marcação.

  • Requer corpus de treinamento

  • Não haveria probabilidade para as palavras que não existem no corpus.

  • Ele usa diferentes corpus de teste (além do corpus de treinamento).

  • É a marcação de POS mais simples porque escolhe as marcações mais frequentes associadas a uma palavra no corpus de treinamento.

Tagging baseado em transformação

A marcação com base na transformação também é chamada de marcação Brill. É uma instância do aprendizado baseado em transformação (TBL), que é um algoritmo baseado em regras para marcação automática de PDV em um determinado texto. TBL, nos permite ter conhecimento linguístico de uma forma legível, transforma um estado em outro usando regras de transformação.

Ele tira a inspiração de ambos os taggers explicados anteriormente - baseados em regras e estocásticos. Se observarmos semelhança entre tagger baseado em regras e tagger de transformação, então, como baseado em regras, também é baseado nas regras que especificam quais tags precisam ser atribuídas a quais palavras. Por outro lado, se vemos similaridade entre o estocástico e o tagger de transformação, então como o estocástico, é uma técnica de aprendizado de máquina em que as regras são induzidas automaticamente a partir dos dados.

Trabalho de Aprendizagem Baseada na Transformação (TBL)

Para entender o funcionamento e o conceito de taggers baseados em transformação, precisamos entender o funcionamento do aprendizado baseado em transformação. Considere as seguintes etapas para entender o funcionamento do TBL -

  • Start with the solution - O TBL geralmente começa com alguma solução para o problema e funciona em ciclos.

  • Most beneficial transformation chosen - Em cada ciclo, o TBL escolherá a transformação mais benéfica.

  • Apply to the problem - A transformação escolhida na última etapa será aplicada ao problema.

O algoritmo irá parar quando a transformação selecionada na etapa 2 não adicionar mais valor ou não houver mais transformações a serem selecionadas. Esse tipo de aprendizado é mais adequado para tarefas de classificação.

Vantagens da aprendizagem baseada na transformação (TBL)

As vantagens do TBL são as seguintes -

  • Aprendemos um pequeno conjunto de regras simples e essas regras são suficientes para marcação.

  • O desenvolvimento, bem como a depuração, são muito fáceis na TBL porque as regras aprendidas são fáceis de entender.

  • A complexidade na marcação é reduzida porque na TBL há entrelaçamento de regras aprendidas pela máquina e geradas por humanos.

  • O tagger baseado em transformação é muito mais rápido do que o tagger do modelo Markov.

Desvantagens da aprendizagem baseada na transformação (TBL)

As desvantagens do TBL são as seguintes -

  • O aprendizado baseado em transformação (TBL) não fornece probabilidades de marcação.

  • Na TBL, o tempo de treinamento é muito longo, principalmente em grandes corpora.

Marcação de POS de modelo oculto de Markov (HMM)

Antes de nos aprofundarmos na marcação de HMM POS, devemos entender o conceito de Hidden Markov Model (HMM).

Modelo de Markov Oculto

Um modelo HMM pode ser definido como o modelo estocástico duplamente embutido, onde o processo estocástico subjacente está oculto. Esse processo estocástico oculto só pode ser observado por meio de outro conjunto de processos estocásticos que produzem a sequência de observações.

Exemplo

Por exemplo, uma sequência de experimentos de lançamento de moeda oculta é feita e vemos apenas a sequência de observação que consiste em cara e coroa. Os detalhes reais do processo - quantas moedas usadas, a ordem em que são selecionadas - são ocultados de nós. Ao observar essa sequência de cara e coroa, podemos construir vários HMMs para explicar a sequência. A seguir está uma forma de Modelo de Markov Oculto para este problema -

Assumimos que existem dois estados no HMM e cada um dos estados corresponde à seleção de diferentes moedas tendenciosas. A matriz a seguir fornece as probabilidades de transição de estado -

$$A = \begin{bmatrix}a11 & a12 \\a21 & a22 \end{bmatrix}$$

Aqui,

  • aij = probabilidade de transição de um estado para outro de i para j.

  • a11 + a12= 1 e a 21 + a 22 = 1

  • P1 = probabilidade de cara da primeira moeda, ou seja, o viés da primeira moeda.

  • P2 = probabilidade de cara da segunda moeda, ou seja, a tendência da segunda moeda.

Também podemos criar um modelo HMM assumindo que existem 3 moedas ou mais.

Desta forma, podemos caracterizar o HMM pelos seguintes elementos -

  • N, o número de estados no modelo (no exemplo acima N = 2, apenas dois estados).

  • M, o número de observações distintas que podem aparecer com cada estado no exemplo acima M = 2, ou seja, H ou T).

  • A, a distribuição de probabilidade de transição de estado - a matriz A no exemplo acima.

  • P, a distribuição de probabilidade dos símbolos observáveis ​​em cada estado (em nosso exemplo P1 e P2).

  • I, a distribuição inicial do estado.

Uso de HMM para marcação de PDV

O processo de marcação de POS é o processo de encontrar a sequência de tags que provavelmente gerou uma determinada sequência de palavras. Podemos modelar esse processo de POS usando um Hidden Markov Model (HMM), ondetags são as hidden states que produziu o observable output, ou seja, o words.

Matematicamente, na marcação de POS, estamos sempre interessados ​​em encontrar uma sequência de tags (C) que maximize -

P (C|W)

Onde,

C = C 1 , C 2 , C 3 ... C T

W = W 1 , W 2 , W 3 , W T

Por outro lado, o fato é que precisamos de muitos dados estatísticos para estimar razoavelmente esse tipo de sequência. No entanto, para simplificar o problema, podemos aplicar algumas transformações matemáticas junto com algumas suposições.

O uso de HMM para fazer uma marcação de POS é um caso especial de interferência Bayesiana. Portanto, começaremos reafirmando o problema usando a regra de Bayes, que diz que a probabilidade condicional acima mencionada é igual a -

(PROB (C1,..., CT) * PROB (W1,..., WT | C1,..., CT)) / PROB (W1,..., WT)

Podemos eliminar o denominador em todos esses casos porque estamos interessados ​​em encontrar a sequência C que maximize o valor acima. Isso não afetará nossa resposta. Agora, nosso problema se reduz a encontrar a sequência C que maximiza -

PROB (C1,..., CT) * PROB (W1,..., WT | C1,..., CT) (1)

Mesmo depois de reduzir o problema na expressão acima, seria necessária uma grande quantidade de dados. Podemos fazer suposições de independência razoáveis ​​sobre as duas probabilidades na expressão acima para superar o problema.

Primeira Suposição

A probabilidade de uma marca depende da anterior (modelo de bigrama) ou das duas anteriores (modelo de trigrama) ou das n marcas anteriores (modelo de n-grama) que, matematicamente, podem ser explicadas da seguinte forma -

PROB (C1,..., CT) = Πi=1..T PROB (Ci|Ci-n+1…Ci-1) (n-gram model)

PROB (C1,..., CT) = Πi=1..T PROB (Ci|Ci-1) (bigram model)

O início de uma frase pode ser contabilizado assumindo uma probabilidade inicial para cada etiqueta.

PROB (C1|C0) = PROB initial (C1)

Segunda suposição

A segunda probabilidade na equação (1) acima pode ser aproximada assumindo que uma palavra aparece em uma categoria independente das palavras nas categorias anteriores ou posteriores, que podem ser explicadas matematicamente como segue -

PROB (W1,..., WT | C1,..., CT) = Πi=1..T PROB (Wi|Ci)

Agora, com base nas duas hipóteses acima, nosso objetivo se reduz a encontrar uma sequência C que maximize

Πi=1...T PROB(Ci|Ci-1) * PROB(Wi|Ci)

Agora, a questão que se coloca aqui é se converter o problema para a forma acima realmente nos ajudou. A resposta é - sim, foi. Se tivermos um grande corpus marcado, as duas probabilidades na fórmula acima podem ser calculadas como -

PROB (Ci=VERB|Ci-1=NOUN) = (# of instances where Verb follows Noun) / (# of instances where Noun appears) (2)

PROB (Wi|Ci) = (# of instances where Wi appears in Ci) /(# of instances where Ci appears) (3)

Neste capítulo, discutiremos o início da linguagem natural no Processamento de Linguagem Natural. Para começar, vamos primeiro entender o que é Gramática da Linguagem Natural.

Gramática da linguagem natural

Para a linguística, a linguagem é um grupo de signos vocais arbitrários. Podemos dizer que a linguagem é criativa, governada por regras, inata e universal ao mesmo tempo. Por outro lado, é também humanamente. A natureza da linguagem é diferente para pessoas diferentes. Existem muitos conceitos errados sobre a natureza da linguagem. É por isso que é muito importante entender o significado do termo ambíguo‘grammar’. Em linguística, o termo gramática pode ser definido como as regras ou princípios com a ajuda dos quais a linguagem funciona. Em sentido amplo, podemos dividir a gramática em duas categorias -

Gramática Descritiva

O conjunto de regras, onde linguísticos e gramáticos formulam a gramática do falante, é denominado gramática descritiva.

Gramática de perspectiva

É um sentido gramatical muito diferente, que tenta manter um padrão de correção na linguagem. Essa categoria tem pouco a ver com o funcionamento real da linguagem.

Componentes da linguagem

A linguagem de estudo é dividida em componentes inter-relacionados, que são divisões convencionais e também arbitrárias de investigação linguística. A explicação desses componentes é a seguinte -

Fonologia

O primeiro componente da linguagem é a fonologia. É o estudo dos sons da fala de um determinado idioma. A origem da palavra pode ser atribuída ao idioma grego, onde 'telefone' significa som ou voz. Fonética, uma subdivisão da fonologia, é o estudo dos sons da fala da linguagem humana sob a perspectiva de sua produção, percepção ou de suas propriedades físicas. IPA (Alfabeto Fonético Internacional) é uma ferramenta que representa os sons humanos de forma regular durante o estudo da fonologia. No IPA, cada símbolo escrito representa um e apenas um som de fala e vice-versa.

Fonemas

Pode ser definido como uma das unidades de som que diferencia uma palavra de outra em um idioma. Na linguística, os fonemas são escritos entre barras. Por exemplo, fonema/k/ ocorre em palavras como kit, esquete.

Morfologia

É o segundo componente da linguagem. É o estudo da estrutura e classificação das palavras em um determinado idioma. A origem da palavra é do idioma grego, onde a palavra 'morphe' significa 'forma'. A morfologia considera os princípios de formação de palavras em uma língua. Em outras palavras, como os sons se combinam em unidades significativas como prefixos, sufixos e raízes. Também considera como as palavras podem ser agrupadas em classes gramaticais.

Lexeme

Em linguística, a unidade abstrata de análise morfológica que corresponde a um conjunto de formas assumidas por uma única palavra é chamada de lexema. A maneira como um lexema é usado em uma frase é determinada por sua categoria gramatical. Lexeme pode ser uma palavra individual ou várias palavras. Por exemplo, a palavra falar é um exemplo de lexema de uma palavra individual, que pode ter muitas variantes gramaticais, como falar, falar e falar. O lexema de várias palavras pode ser composto por mais de uma palavra ortográfica. Por exemplo, speak up, pull through, etc. são exemplos de lexemas com várias palavras.

Sintaxe

É o terceiro componente da linguagem. É o estudo da ordem e disposição das palavras em unidades maiores. A palavra pode ser atribuída à língua grega, onde a palavra suntassein significa 'colocar em ordem'. Estuda o tipo de sentenças e sua estrutura, de orações, de frases.

Semântica

É o quarto componente da linguagem. É o estudo de como o significado é transmitido. O significado pode estar relacionado ao mundo exterior ou pode estar relacionado à gramática da frase. A palavra pode ser rastreada até o idioma grego, onde a palavra semainein significa 'significar', 'mostrar', 'sinalizar'.

Pragmáticos

É o quinto componente da linguagem. É o estudo das funções da linguagem e seu uso no contexto. A origem da palavra pode ser rastreada até a língua grega, onde a palavra 'pragma' significa 'ato', 'caso'.

Categorias gramaticais

Uma categoria gramatical pode ser definida como uma classe de unidades ou características da gramática de um idioma. Essas unidades são os blocos de construção da linguagem e compartilham um conjunto comum de características. As categorias gramaticais também são chamadas de características gramaticais.

O inventário de categorias gramaticais é descrito abaixo -

Número

É a categoria gramatical mais simples. Temos dois termos relacionados a esta categoria - singular e plural. Singular é o conceito de 'um', enquanto que plural é o conceito de 'mais de um'. Por exemplo, cão / cães, este / estes.

Gênero

O gênero gramatical é expresso pela variação dos pronomes pessoais e da 3ª pessoa. Exemplos de gêneros gramaticais são singulares - ele, ela, isso; as formas de primeira e segunda pessoa - eu, nós e você; a 3ª pessoa do plural eles, é gênero comum ou gênero neutro.

Pessoa

Outra categoria gramatical simples é pessoa. De acordo com isso, os três termos a seguir são reconhecidos -

  • 1st person - A pessoa que está falando é reconhecida como 1ª pessoa.

  • 2nd person - A pessoa que é o ouvinte ou a pessoa com quem se fala é reconhecida como 2ª pessoa.

  • 3rd person - A pessoa ou coisa sobre a qual estamos falando é reconhecida como 3ª pessoa.

Caso

É uma das categorias gramaticais mais difíceis. Pode ser definido como uma indicação da função de um sintagma nominal (NP) ou a relação de um sintagma nominal com um verbo ou com os outros sintagmas nominais na frase. Temos os seguintes três casos expressos em pronomes pessoais e interrogativos -

  • Nominative case- É função de sujeito. Por exemplo, eu, nós, você, ele, ela, isso, eles e quem são nominativos.

  • Genitive case- É função de possuidor. Por exemplo, meu / meu, nosso / nosso, dele, dela / dela, seu, deles / delas, cujos são genitivos.

  • Objective case- É a função do objeto. Por exemplo, eu, nós, você, ele, ela, eles, que são objetivos.

Grau

Esta categoria gramatical está relacionada a adjetivos e advérbios. Tem os três termos a seguir -

  • Positive degree- Expressa uma qualidade. Por exemplo, grande, rápido e bonito são graus positivos.

  • Comparative degree- Expressa maior grau ou intensidade da qualidade em um de dois itens. Por exemplo, maior, mais rápido e mais bonito são os graus comparativos.

  • Superlative degree- Expressa o maior grau ou intensidade da qualidade em um de três ou mais itens. Por exemplo, o maior, o mais rápido e o mais bonito são graus superlativos.

Definitividade e Indefinição

Ambos os conceitos são muito simples. A definição, como sabemos, representa um referente, que é conhecido, familiar ou identificável pelo falante ou ouvinte. Por outro lado, indefinição representa um referente que não é conhecido ou não é familiar. O conceito pode ser entendido na co-ocorrência de um artigo com um substantivo -

  • definite article- o

  • indefinite article- um / uma

Tenso

Essa categoria gramatical está relacionada ao verbo e pode ser definida como a indicação linguística do tempo de uma ação. Um tempo verbal estabelece uma relação porque indica o tempo de um evento em relação ao momento da fala. Em termos gerais, é dos três tipos a seguir -

  • Present tense- Representa a ocorrência de uma ação no momento presente. Por exemplo, Ram trabalha muito.

  • Past tense- Representa a ocorrência de uma ação antes do momento presente. Por exemplo, choveu.

  • Future tense- Representa a ocorrência de uma ação após o momento presente. Por exemplo, vai chover.

Aspecto

Esta categoria gramatical pode ser definida como a visão obtida de um evento. Pode ser dos seguintes tipos -

  • Perfective aspect- A visão é tomada como um todo e completa no aspecto. Por exemplo, o pretérito simples comoyesterday I met my friend, em inglês é de aspecto perfeito, visto que vê o evento como completo e completo.

  • Imperfective aspect- A visão é tida como contínua e incompleta no aspecto. Por exemplo, o particípio presente comoI am working on this problem, em inglês é imperfeito em aspecto, visto que vê o evento como incompleto e contínuo.

Humor

Esta categoria gramatical é um pouco difícil de definir, mas pode ser simplesmente expressa como uma indicação da atitude do falante em relação ao que está falando. É também a característica gramatical dos verbos. É diferente dos tempos gramaticais e do aspecto gramatical. Os exemplos de humores são indicativos, interrogativos, imperativos, injuntivos, subjuntivos, potenciais, optativos, gerúndios e particípios.

Acordo

Também é chamado de concórdia. Acontece quando uma palavra muda de acordo com as outras palavras às quais se relaciona. Em outras palavras, envolve fazer o valor de alguma categoria gramatical concordar entre diferentes palavras ou classes gramaticais. A seguir estão os acordos com base em outras categorias gramaticais -

  • Agreement based on Person- É a concordância entre sujeito e verbo. Por exemplo, sempre usamos “Eu sou” e “Ele é”, mas nunca “Ele é” e “Eu sou”.

  • Agreement based on Number- Essa concordância é entre o sujeito e o verbo. Nesse caso, existem formas verbais específicas para primeira pessoa do singular, segunda pessoa do plural e assim por diante. Por exemplo, 1ª pessoa do singular: eu realmente sou, 2ª pessoa do plural: realmente somos, 3ª pessoa do singular: O menino canta, 3ª pessoa do plural: Os meninos cantam.

  • Agreement based on Gender- Em inglês, há concordância de gênero entre pronomes e antecedentes. Por exemplo, Ele alcançou seu destino. O navio chegou ao seu destino.

  • Agreement based on Case- Este tipo de acordo não é uma característica significativa do inglês. Por exemplo, quem veio primeiro - ele ou sua irmã?

Sintaxe da linguagem falada

O inglês escrito e a gramática falada têm muitas características em comum, mas, junto com isso, também diferem em vários aspectos. Os seguintes recursos distinguem entre a gramática falada e escrita do inglês -

Disfluências e Reparo

Esta característica marcante torna a gramática falada e escrita do inglês diferente uma da outra. É individualmente conhecido como fenômeno de disfluências e coletivamente como fenômeno de reparo. Disfluências incluem o uso do seguinte -

  • Fillers words- Às vezes, no meio da frase, usamos algumas palavras de preenchimento. Eles são chamados de preenchimentos de pausa de preenchimento. Exemplos dessas palavras são uh e um.

  • Reparandum and repair- O segmento repetido de palavras entre a frase é chamado reparandum. No mesmo segmento, a palavra alterada é chamada de reparo. Considere o seguinte exemplo para entender isso -

Does ABC airlines offer any one-way flights uh one-way fares for 5000 rupees?

Na frase acima, o voo de ida é uma reparação e os voos de ida são um reparo.

Reinicia

Após a pausa de preenchimento, o reinício ocorre. Por exemplo, na frase acima, os reinícios ocorrem quando o locutor começa a perguntar sobre voos de ida e depois para, corrige-se com uma pausa de preenchimento e, em seguida, reinicie perguntando sobre tarifas de ida.

Fragmentos de Palavras

Às vezes, falamos as frases com fragmentos menores de palavras. Por exemplo,wwha-what is the time? Aqui as palavras w-wha são fragmentos de palavras.

A recuperação de informação (IR) pode ser definida como um programa de software que lida com a organização, armazenamento, recuperação e avaliação de informações de repositórios de documentos, particularmente informações textuais. O sistema ajuda os usuários a encontrar as informações de que precisam, mas não retorna explicitamente as respostas das perguntas. Informa a existência e localização dos documentos que podem conter as informações necessárias. Os documentos que atendem aos requisitos do usuário são chamados de documentos relevantes. Um sistema de IR perfeito recuperará apenas documentos relevantes.

Com a ajuda do diagrama a seguir, podemos entender o processo de recuperação de informação (IR) -

Fica claro pelo diagrama acima que um usuário que precisa de informações terá que formular uma solicitação na forma de consulta em linguagem natural. Em seguida, o sistema de RI responderá recuperando a saída relevante, na forma de documentos, sobre as informações necessárias.

Problema Clássico em Sistema de Recuperação de Informação (IR)

O principal objetivo da pesquisa em RI é desenvolver um modelo de recuperação de informações de repositórios de documentos. Aqui, vamos discutir um problema clássico, chamadoad-hoc retrieval problem, relacionado ao sistema IR.

Na recuperação ad-hoc, o usuário deve inserir uma consulta em linguagem natural que descreva as informações necessárias. Em seguida, o sistema de RI retornará os documentos necessários relacionados às informações desejadas. Por exemplo, suponha que estejamos pesquisando algo na Internet e isso forneça algumas páginas exatas que são relevantes de acordo com nossos requisitos, mas pode haver algumas páginas não relevantes também. Isso se deve ao problema de recuperação ad-hoc.

Aspectos da recuperação ad-hoc

A seguir estão alguns aspectos da recuperação ad-hoc que são abordados na pesquisa de RI -

  • Como os usuários, com a ajuda de feedback de relevância, podem melhorar a formulação original de uma consulta?

  • Como implementar a mesclagem de banco de dados, ou seja, como resultados de diferentes bancos de dados de texto podem ser mesclados em um conjunto de resultados?

  • Como lidar com dados parcialmente corrompidos? Quais modelos são adequados para o mesmo?

Modelo de recuperação de informação (IR)

Matematicamente, os modelos são usados ​​em diversas áreas científicas com o objetivo de compreender alguns fenômenos do mundo real. Um modelo de recuperação de informações prevê e explica o que um usuário encontrará em relevância para a consulta fornecida. O modelo IR é basicamente um padrão que define os aspectos acima mencionados do procedimento de recuperação e consiste no seguinte -

  • Um modelo para documentos.

  • Um modelo para consultas.

  • Uma função de correspondência que compara consultas a documentos.

Matematicamente, um modelo de recuperação consiste em -

D - Representação para documentos.

R - Representação para consultas.

F - A estrutura de modelagem para D, Q junto com a relação entre eles.

R (q,di)- Uma função de similaridade que ordena os documentos em relação à consulta. Também é chamado de classificação.

Tipos de modelo de recuperação de informação (IR)

Um modelo de modelo de informação (IR) pode ser classificado nos seguintes três modelos -

Modelo Clássico de IR

É o modelo IR mais simples e fácil de implementar. Este modelo é baseado em conhecimentos matemáticos facilmente reconhecidos e compreendidos. Boolean, Vector e Probabilistic são os três modelos clássicos de IR.

Modelo de IR não clássico

É completamente oposto ao modelo IR clássico. Esses tipos de modelos de IR são baseados em princípios diferentes de similaridade, probabilidade e operações booleanas. O modelo lógico da informação, o modelo da teoria da situação e os modelos de interação são exemplos do modelo IR não clássico.

Modelo IR Alternativo

É o aprimoramento do modelo de IR clássico fazendo uso de algumas técnicas específicas de alguns outros campos. O modelo de cluster, o modelo fuzzy e os modelos de indexação semântica latente (LSI) são exemplos de modelos de IR alternativos.

Características de design de sistemas de recuperação de informação (IR)

Vamos agora aprender sobre os recursos de design dos sistemas IR -

Índice Invertido

A estrutura de dados primária da maioria dos sistemas IR está na forma de índice invertido. Podemos definir um índice invertido como uma estrutura de dados que lista, para cada palavra, todos os documentos que o contêm e a frequência das ocorrências no documento. Torna mais fácil pesquisar por 'resultados' de uma palavra de consulta.

Pare a eliminação de palavras

Palavras irrelevantes são aquelas palavras de alta frequência consideradas improváveis ​​de serem úteis para pesquisa. Eles têm menos pesos semânticos. Todos esses tipos de palavras estão em uma lista chamada lista de parada. Por exemplo, os artigos “um”, “uma”, “o” e preposições como “em”, “de”, “para”, “em” etc. são exemplos de palavras irrelevantes. O tamanho do índice invertido pode ser reduzido significativamente pela lista de parada. De acordo com a lei de Zipf, uma lista de parada que cobre algumas dezenas de palavras reduz o tamanho do índice invertido quase pela metade. Por outro lado, às vezes a eliminação da palavra de parada pode causar a eliminação do termo que é útil para a pesquisa. Por exemplo, se eliminarmos o alfabeto “A” da “Vitamina A”, ele não terá significado.

Stemming

Stemming, a forma simplificada de análise morfológica, é o processo heurístico de extrair a forma básica das palavras cortando as pontas das palavras. Por exemplo, as palavras rir, rir, rir seriam derivadas da palavra raiz rir.

Em nossas seções subsequentes, discutiremos sobre alguns modelos de IR importantes e úteis.

O Modelo Booleano

É o modelo de recuperação de informação (IR) mais antigo. O modelo é baseado na teoria dos conjuntos e na álgebra booleana, onde os documentos são conjuntos de termos e as consultas são expressões booleanas sobre termos. O modelo booleano pode ser definido como -

  • D- Um conjunto de palavras, ou seja, os termos de indexação presentes em um documento. Aqui, cada termo está presente (1) ou ausente (0).

  • Q - Uma expressão booleana, onde os termos são os termos do índice e os operadores são produtos lógicos - E, soma lógica - OU e diferença lógica - NÃO

  • F - Álgebra booleana sobre conjuntos de termos, bem como sobre conjuntos de documentos

    Se falarmos sobre o feedback de relevância, então, no modelo Boolean IR, a previsão de relevância pode ser definida como segue -

  • R - Um documento é considerado relevante para a expressão de consulta se e somente se satisfizer a expressão de consulta como -

((˅) ˄ ˄ ˜ ℎ)

Podemos explicar esse modelo por um termo de consulta como uma definição inequívoca de um conjunto de documentos.

Por exemplo, o termo de consulta “economic” define o conjunto de documentos indexados com o termo “economic”.

Agora, qual seria o resultado após combinar os termos com o operador AND booleano? Ele definirá um conjunto de documentos menor ou igual aos conjuntos de documentos de qualquer um dos termos individuais. Por exemplo, a consulta com termos“social” e “economic”irá produzir o conjunto de documentos indexados com ambos os termos. Em outras palavras, conjunto de documentos com a interseção de ambos os conjuntos.

Agora, qual seria o resultado após combinar os termos com o operador booleano OR? Ele definirá um conjunto de documentos que é maior ou igual aos conjuntos de documentos de qualquer um dos termos individuais. Por exemplo, a consulta com termos“social” ou “economic” irá produzir o conjunto de documentos de documentos indexados com o termo “social” ou “economic”. Em outras palavras, conjunto de documentos com a união de ambos os conjuntos.

Vantagens do modo booleano

As vantagens do modelo booleano são as seguintes -

  • O modelo mais simples, baseado em conjuntos.

  • Fácil de entender e implementar.

  • Ele apenas recupera correspondências exatas

  • Dá ao usuário uma sensação de controle sobre o sistema.

Desvantagens do modelo booleano

As desvantagens do modelo booleano são as seguintes -

  • A função de similaridade do modelo é booleana. Portanto, não haveria correspondências parciais. Isso pode ser irritante para os usuários.

  • Neste modelo, o uso do operador booleano tem muito mais influência do que uma palavra crítica.

  • A linguagem de consulta é expressiva, mas também é complicada.

  • Sem classificação para documentos recuperados.

Modelo de Espaço Vetorial

Devido às desvantagens acima do modelo booleano, Gerard Salton e seus colegas sugeriram um modelo, que é baseado no critério de similaridade de Luhn. O critério de similaridade formulado por Luhn afirma: “quanto mais duas representações concordarem em determinados elementos e sua distribuição, maior será a probabilidade de representarem informações semelhantes”.

Considere os seguintes pontos importantes para entender mais sobre o Modelo de Espaço Vetorial -

  • As representações de índice (documentos) e as consultas são consideradas como vetores embutidos em um espaço euclidiano de alta dimensão.

  • A medida de similaridade de um vetor de documento com um vetor de consulta geralmente é o cosseno do ângulo entre eles.

Fórmula de medida de similaridade de cosseno

O cosseno é um produto escalar normalizado, que pode ser calculado com a ajuda da seguinte fórmula -

$$Score \lgroup \vec{d} \vec{q} \rgroup= \frac{\sum_{k=1}^m d_{k}\:.q_{k}}{\sqrt{\sum_{k=1}^m\lgroup d_{k}\rgroup^2}\:.\sqrt{\sum_{k=1}^m}m\lgroup q_{k}\rgroup^2 }$$

$$Score \lgroup \vec{d} \vec{q}\rgroup =1\:when\:d =q $$

$$Score \lgroup \vec{d} \vec{q}\rgroup =0\:when\:d\:and\:q\:share\:no\:items$$

Representação do Espaço Vector com Consulta e Documento

A consulta e os documentos são representados por um espaço vetorial bidimensional. Os termos sãocar e insurance. Há uma consulta e três documentos no espaço vetorial.

O documento com melhor classificação em resposta aos termos carro e seguro será o documento d2 porque o ângulo entre q e d2é o menor. A razão por trás disso é que ambos os conceitos de carro e seguro são salientes em d 2 e, portanto, têm pesos elevados. Por outro lado,d1 e d3 também mencione ambos os termos, mas em cada caso, um deles não é um termo de importância central no documento.

Ponderação de termos

Ponderação de termos significa os pesos nos termos no espaço vetorial. Quanto maior o peso do termo, maior será o impacto do termo no cosseno. Mais pesos devem ser atribuídos aos termos mais importantes no modelo. Agora, a questão que surge aqui é como podemos modelar isso.

Uma maneira de fazer isso é contar as palavras em um documento como seu peso de termo. Porém, você acha que seria um método eficaz?

Outro método, que é mais eficaz, é usar term frequency (tfij), document frequency (dfi) e collection frequency (cfi).

Frequência do termo (tf ij )

Pode ser definido como o número de ocorrências de wi dentro dj. A informação que é capturada pela frequência do termo é o quão saliente uma palavra é dentro de um determinado documento ou em outras palavras, podemos dizer que quanto maior a frequência do termo, mais essa palavra é uma boa descrição do conteúdo daquele documento.

Frequência do documento (df i )

Pode ser definido como o número total de documentos na colecção em que w i ocorre. É um indicador de informatividade. Palavras com foco semântico ocorrerão várias vezes no documento, ao contrário das palavras sem foco semântico.

Frequência de coleta (cf i )

Pode ser definido como o número total de ocorrências de wi na coleção.

Matematicamente, $df_{i}\leq cf_{i}\:and\:\sum_{j}tf_{ij} = cf_{i}$

Formas de ponderação de frequência de documentos

Vamos agora aprender sobre as diferentes formas de ponderação de frequência de documentos. Os formulários são descritos abaixo -

Fator de frequência do termo

Isso também é classificado como o fator de frequência de termo, o que significa que se um termo t aparece frequentemente em um documento, em seguida, uma consulta contendo tdeve recuperar esse documento. Podemos combinar palavrasterm frequency (tfij) e document frequency (dfi) em um único peso da seguinte forma -

$$weight \left ( i,j \right ) =\begin{cases}(1+log(tf_{ij}))log\frac{N}{df_{i}}\:if\:tf_{i,j}\:\geq1\\0 \:\:\:\:\:\:\:\:\:\:\:\:\:\:\:\:\:\:\:\:\:\:\:\:\:\:\:\:\:\:\:\:\:\:\:\:\: if\:tf_{i,j}\:=0\end{cases}$$

Aqui, N é o número total de documentos.

Frequência inversa do documento (idf)

Esta é outra forma de ponderação de frequência de documento e geralmente chamada de ponderação idf ou ponderação de frequência inversa de documento. O ponto importante da ponderação idf é que a escassez do termo na coleção é uma medida de sua importância e a importância é inversamente proporcional à frequência de ocorrência.

Matematicamente,

$$idf_{t} = log\left(1+\frac{N}{n_{t}}\right)$$

$$idf_{t} = log\left(\frac{N-n_{t}}{n_{t}}\right)$$

Aqui,

N = documentos na coleção

n t = documentos contendo o termo t

Melhoria de consulta do usuário

O objetivo principal de qualquer sistema de recuperação de informações deve ser a precisão - produzir documentos relevantes de acordo com a necessidade do usuário. No entanto, a questão que surge aqui é como podemos melhorar a saída melhorando o estilo de formação de consulta do usuário. Certamente, a saída de qualquer sistema IR depende da consulta do usuário e uma consulta bem formatada produzirá resultados mais precisos. O usuário pode melhorar sua consulta com a ajuda derelevance feedback, um aspecto importante de qualquer modelo de IR.

Feedback de Relevância

O feedback de relevância obtém a saída que é inicialmente retornada da consulta fornecida. Essa saída inicial pode ser usada para reunir informações do usuário e saber se essa saída é relevante para realizar uma nova consulta ou não. Os feedbacks podem ser classificados como segue -

Feedback explícito

Pode ser definido como o feedback obtido dos avaliadores de relevância. Esses avaliadores também indicarão a relevância de um documento recuperado da consulta. Para melhorar o desempenho da recuperação da consulta, as informações de feedback de relevância precisam ser interpoladas com a consulta original.

Os avaliadores ou outros usuários do sistema podem indicar a relevância explicitamente usando os seguintes sistemas de relevância -

  • Binary relevance system - Este sistema de feedback de relevância indica que um documento é relevante (1) ou irrelevante (0) para uma determinada consulta.

  • Graded relevance system- O sistema de feedback de relevância graduada indica a relevância de um documento, para uma determinada consulta, com base na avaliação por meio de números, letras ou descrições. A descrição pode ser “não relevante”, “pouco relevante”, “muito relevante” ou “relevante”.

Feedback implícito

É o feedback que é inferido do comportamento do usuário. O comportamento inclui a duração de tempo que o usuário gastou visualizando um documento, qual documento está selecionado para visualização e qual não está, navegação na página e ações de rolagem, etc. Um dos melhores exemplos de feedback implícito édwell time, que é uma medida de quanto tempo um usuário gasta visualizando a página vinculada em um resultado de pesquisa.

Pseudo Feedback

Também é chamado de feedback cego. Ele fornece um método para análise local automática. A parte manual do feedback de relevância é automatizada com a ajuda do feedback de pseudo-relevância para que o usuário obtenha um desempenho de recuperação aprimorado sem uma interação estendida. A principal vantagem deste sistema de feedback é que ele não requer avaliadores como no sistema de feedback de relevância explícito.

Considere as seguintes etapas para implementar este feedback -

  • Step 1- Em primeiro lugar, o resultado retornado pela consulta inicial deve ser considerado como resultado relevante. O intervalo de resultados relevantes deve estar entre os 10-50 primeiros resultados.

  • Step 2 - Agora, selecione os 20-30 termos principais dos documentos usando, por exemplo, frequência de termo (tf) - peso de frequência de documento inverso (idf).

  • Step 3- Adicione esses termos à consulta e corresponda aos documentos retornados. Em seguida, devolva os documentos mais relevantes.

O Processamento de Linguagem Natural (PNL) é uma tecnologia emergente que deriva várias formas de IA que vemos nos tempos atuais e seu uso para criar uma interface interativa e contínua entre humanos e máquinas continuará a ser uma prioridade para hoje e amanhã aplicações cada vez mais cognitivas. Aqui, vamos discutir sobre algumas das aplicações muito úteis da PNL.

Maquina de tradução

A tradução automática (MT), processo de tradução de um idioma ou texto de origem para outro idioma, é uma das aplicações mais importantes da PNL. Podemos entender o processo de tradução automática com a ajuda do seguinte fluxograma -

Tipos de sistemas de tradução automática

Existem diferentes tipos de sistemas de tradução automática. Vamos ver quais são os diferentes tipos.

Sistema MT Bilingue

Os sistemas de TA bilíngüe produzem traduções entre dois idiomas específicos.

Sistema MT Multilíngue

Os sistemas multilingues de TA produzem traduções entre qualquer par de línguas. Eles podem ser unidirecionais ou bidirecionais por natureza.

Abordagens para tradução automática (MT)

Vamos agora aprender sobre as abordagens importantes da tradução automática. As abordagens para MT são as seguintes -

Abordagem MT direta

É menos popular, mas é a abordagem mais antiga da MT. Os sistemas que usam essa abordagem são capazes de traduzir SL (idioma de origem) diretamente para TL (idioma de destino). Esses sistemas são bilíngües e unidirecionais por natureza.

Abordagem Interlingua

Os sistemas que usam a abordagem Interlíngua traduzem SL para uma linguagem intermediária chamada Interlíngua (IL) e então traduzem IL para TL. A abordagem da Interlíngua pode ser entendida com a ajuda da seguinte pirâmide MT -

Abordagem de transferência

Três estágios estão envolvidos nesta abordagem.

  • No primeiro estágio, os textos da linguagem fonte (SL) são convertidos em representações abstratas orientadas ao SL.

  • No segundo estágio, as representações orientadas para SL são convertidas em representações orientadas para a linguagem de destino equivalente (TL).

  • Na terceira etapa, é gerado o texto final.

Abordagem de MT empírica

Esta é uma abordagem emergente para MT. Basicamente, ele usa grande quantidade de dados brutos na forma de corpora paralelos. Os dados brutos consistem no texto e suas traduções. Técnicas de tradução automática baseadas em analogia, em exemplos e em memória usam a abordagem empírica da MT.

Luta contra o spam

Um dos problemas mais comuns atualmente são os e-mails indesejados. Isso torna os filtros de spam ainda mais importantes porque são a primeira linha de defesa contra esse problema.

O sistema de filtragem de spam pode ser desenvolvido usando a funcionalidade de PNL, considerando os principais problemas de falso-positivo e falso-negativo.

Modelos existentes de NLP para filtragem de spam

A seguir estão alguns modelos de PNL existentes para filtragem de spam -

Modelagem N-gram

Um modelo N-Gram é uma fatia de N caracteres de uma string mais longa. Neste modelo, N-gramas de vários comprimentos diferentes são usados ​​simultaneamente no processamento e detecção de emails de spam.

Word Stemming

Spammers, geradores de e-mails de spam, geralmente alteram um ou mais caracteres de palavras de ataque em seus spams para que possam violar filtros de spam baseados em conteúdo. É por isso que podemos dizer que os filtros baseados em conteúdo não são úteis se eles não conseguem entender o significado das palavras ou frases no e-mail. A fim de eliminar esses problemas na filtragem de spam, foi desenvolvida uma técnica de lematização de palavras baseada em regras, que pode combinar palavras que parecem e soam semelhantes.

Classificação Bayesiana

Isso agora se tornou uma tecnologia amplamente usada para filtragem de spam. A incidência das palavras em um e-mail é medida em relação à sua ocorrência típica em um banco de dados de mensagens de e-mail não solicitadas (spam) e legítimas (spam) em uma técnica estatística.

Resumo Automático

Nesta era digital, o mais valioso são os dados, ou você pode dizer informações. No entanto, nós realmente nos tornamos úteis, bem como a quantidade necessária de informações? A resposta é 'NÃO' porque a informação está sobrecarregada e nosso acesso ao conhecimento e à informação excede em muito a nossa capacidade de compreendê-las. Temos uma necessidade séria de resumos de texto e informações automáticos, porque a inundação de informações pela Internet não vai parar.

O resumo de texto pode ser definido como a técnica para criar resumos curtos e precisos de documentos de texto mais longos. O resumo automático de texto nos ajudará com informações relevantes em menos tempo. O processamento de linguagem natural (PNL) desempenha um papel importante no desenvolvimento de um resumo automático de texto.

Responder perguntas

Outra aplicação principal do processamento de linguagem natural (PNL) é responder a perguntas. Os motores de busca colocam as informações do mundo ao nosso alcance, mas ainda faltam quando se trata de responder às questões colocadas pelo ser humano na sua língua natural. Temos grandes empresas de tecnologia como o Google também trabalhando nessa direção.

O atendimento de perguntas é uma disciplina da Ciência da Computação nas áreas de IA e PNL. Ele se concentra na construção de sistemas que respondem automaticamente às perguntas postadas por seres humanos em sua linguagem natural. Um sistema de computador que entende a linguagem natural tem a capacidade de um sistema de programa de traduzir as sentenças escritas por humanos em uma representação interna para que as respostas válidas possam ser geradas pelo sistema. As respostas exatas podem ser geradas fazendo análise de sintaxe e semântica das perguntas. Lacuna lexical, ambigüidade e multilinguismo são alguns dos desafios para a PNL na construção de um bom sistema de resposta a perguntas.

Análise de sentimentos

Outra aplicação importante do processamento de linguagem natural (PNL) é a análise de sentimento. Como o nome sugere, a análise de sentimento é usada para identificar os sentimentos entre vários posts. Também é usado para identificar o sentimento em que as emoções não são expressas explicitamente. As empresas estão usando a análise de sentimento, um aplicativo de processamento de linguagem natural (PNL) para identificar a opinião e o sentimento de seus clientes online. Isso ajudará as empresas a entender o que seus clientes pensam sobre os produtos e serviços. As empresas podem julgar sua reputação geral a partir de postagens de clientes com a ajuda da análise de sentimento. Dessa forma, podemos dizer que além de determinar a polaridade simples, a análise de sentimento entende os sentimentos em contexto para nos ajudar a entender melhor o que está por trás da opinião expressa.

Neste capítulo, aprenderemos sobre o processamento de linguagem usando Python.

Os seguintes recursos tornam o Python diferente de outras linguagens -

  • Python is interpreted - Não precisamos compilar nosso programa Python antes de executá-lo porque o interpretador processa Python em tempo de execução.

  • Interactive - Podemos interagir diretamente com o interpretador para escrever nossos programas Python.

  • Object-oriented - Python é orientado a objetos por natureza e torna esta linguagem mais fácil de escrever programas porque com a ajuda desta técnica de programação encapsula código dentro de objetos.

  • Beginner can easily learn - Python também é chamada de linguagem de iniciante porque é muito fácil de entender e suporta o desenvolvimento de uma ampla gama de aplicações.

Pré-requisitos

A versão mais recente do Python 3 lançado é o Python 3.7.1 está disponível para Windows, Mac OS e a maioria dos tipos de Linux OS.

  • Para Windows, podemos acessar o link www.python.org/downloads/windows/ para baixar e instalar o Python.

  • Para o MAC OS, podemos usar o link www.python.org/downloads/mac-osx/ .

  • No caso do Linux, diferentes sabores de Linux usam gerenciadores de pacotes diferentes para a instalação de novos pacotes.

    • Por exemplo, para instalar o Python 3 no Ubuntu Linux, podemos usar o seguinte comando do terminal -

$sudo apt-get install python3-minimal

Para estudar mais sobre a programação Python, leia o tutorial básico do Python 3 - Python 3

Primeiros passos com NLTK

Estaremos usando a biblioteca Python NLTK (Natural Language Toolkit) para fazer análise de texto na língua inglesa. O kit de ferramentas de linguagem natural (NLTK) é uma coleção de bibliotecas Python projetadas especialmente para identificar e marcar partes do discurso encontradas no texto de linguagem natural como o inglês.

Instalando NLTK

Antes de começar a usar o NLTK, precisamos instalá-lo. Com a ajuda do seguinte comando, podemos instalá-lo em nosso ambiente Python -

pip install nltk

Se estivermos usando o Anaconda, então um pacote Conda para NLTK pode ser construído usando o seguinte comando -

conda install -c anaconda nltk

Baixando dados do NLTK

Depois de instalar o NLTK, outra tarefa importante é fazer o download de seus repositórios de texto predefinidos para que possam ser usados ​​facilmente. No entanto, antes disso, precisamos importar NLTK da mesma forma que importamos qualquer outro módulo Python. O comando a seguir nos ajudará a importar NLTK -

import nltk

Agora, baixe os dados NLTK com a ajuda do seguinte comando -

nltk.download()

Levará algum tempo para instalar todos os pacotes disponíveis do NLTK.

Outros Pacotes Necessários

Alguns outros pacotes Python, como gensim e patterntambém são muito necessários para análise de texto, bem como para construir aplicativos de processamento de linguagem natural usando NLTK. os pacotes podem ser instalados como mostrado abaixo -

gensim

gensim é uma biblioteca de modelagem semântica robusta que pode ser usada para muitos aplicativos. Podemos instalá-lo seguindo o comando -

pip install gensim

padronizar

Pode ser usado para fazer gensimpacote funcionar corretamente. O seguinte comando ajuda na instalação do padrão -

pip install pattern

Tokenização

A tokenização pode ser definida como o processo de quebrar o texto fornecido em unidades menores chamadas de tokens. Palavras, números ou sinais de pontuação podem ser tokens. Também pode ser chamado de segmentação de palavras.

Exemplo

Input - Cama e cadeira são tipos de móveis.

Temos diferentes pacotes de tokenização fornecidos pela NLTK. Podemos usar esses pacotes com base em nossos requisitos. Os pacotes e os detalhes de sua instalação são os seguintes -

pacote sent_tokenize

Este pacote pode ser usado para dividir o texto de entrada em sentenças. Podemos importá-lo usando o seguinte comando -

from nltk.tokenize import sent_tokenize

pacote word_tokenize

Este pacote pode ser usado para dividir o texto de entrada em palavras. Podemos importá-lo usando o seguinte comando -

from nltk.tokenize import word_tokenize

Pacote WordPunctTokenizer

Este pacote pode ser usado para dividir o texto de entrada em palavras e sinais de pontuação. Podemos importá-lo usando o seguinte comando -

from nltk.tokenize import WordPuncttokenizer

Stemming

Por razões gramaticais, a linguagem inclui muitas variações. Variações no sentido de que a língua, o inglês e também outras línguas, têm diferentes formas de palavra. Por exemplo, as palavras comodemocracy, democratic, e democratization. Para projetos de aprendizado de máquina, é muito importante que as máquinas entendam que essas palavras diferentes, como acima, têm a mesma forma básica. Por isso é muito útil extrair as formas básicas das palavras durante a análise do texto.

Stemming é um processo heurístico que ajuda a extrair as formas básicas das palavras cortando suas pontas.

Os diferentes pacotes de lematização fornecidos pelo módulo NLTK são os seguintes -

Pacote PorterStemmer

O algoritmo de Porter é usado por este pacote de lematização para extrair a forma básica das palavras. Com a ajuda do seguinte comando, podemos importar este pacote -

from nltk.stem.porter import PorterStemmer

Por exemplo, ‘write’ seria a saída da palavra ‘writing’ fornecido como entrada para este lematizador.

Pacote LancasterStemmer

O algoritmo de Lancaster é usado por este pacote de lematização para extrair a forma básica das palavras. Com a ajuda do seguinte comando, podemos importar este pacote -

from nltk.stem.lancaster import LancasterStemmer

Por exemplo, ‘writ’ seria a saída da palavra ‘writing’ fornecido como entrada para este lematizador.

Pacote SnowballStemmer

O algoritmo de Snowball é usado por este pacote de lematização para extrair a forma básica das palavras. Com a ajuda do seguinte comando, podemos importar este pacote -

from nltk.stem.snowball import SnowballStemmer

Por exemplo, ‘write’ seria a saída da palavra ‘writing’ fornecido como entrada para este lematizador.

Lemmatização

É outra forma de extrair a forma base das palavras, normalmente com o objetivo de remover terminações flexionais usando vocabulário e análise morfológica. Após a lematização, a forma básica de qualquer palavra é chamada de lema.

O módulo NLTK fornece o seguinte pacote para lematização -

Pacote WordNetLemmatizer

Este pacote extrairá a forma básica da palavra, dependendo se ela é usada como substantivo ou verbo. O seguinte comando pode ser usado para importar este pacote -

from nltk.stem import WordNetLemmatizer

Contando tags de PDV - Chunking

A identificação de classes gramaticais (POS) e frases curtas pode ser feita com o auxílio de chunking. É um dos processos importantes no processamento de linguagem natural. Como estamos cientes do processo de tokenização para a criação de tokens, a fragmentação, na verdade, é fazer a rotulação desses tokens. Em outras palavras, podemos dizer que podemos obter a estrutura da frase com a ajuda do processo de chunking.

Exemplo

No exemplo a seguir, implementaremos o chunking de frase substantiva, uma categoria de chunking que encontrará os chunks de frase substantiva na frase, usando o módulo NLTK Python.

Considere as seguintes etapas para implementar chunking substantivo-frase -

Step 1: Chunk grammar definition

Nesta etapa, precisamos definir a gramática para chunking. Consistiria nas regras que devemos seguir.

Step 2: Chunk parser creation

Em seguida, precisamos criar um analisador de chunk. Ele analisaria a gramática e forneceria a saída.

Step 3: The Output

Nesta etapa, obteremos a saída em formato de árvore.

Executando o Script de PNL

Comece importando o pacote NLTK -

import nltk

Agora, precisamos definir a frase.

Aqui,

  • DT é o determinante

  • VBP é o verbo

  • JJ é o adjetivo

  • IN é a preposição

  • NN é o substantivo

sentence = [("a", "DT"),("clever","JJ"),("fox","NN"),("was","VBP"),
   ("jumping","VBP"),("over","IN"),("the","DT"),("wall","NN")]

Em seguida, a gramática deve ser fornecida na forma de expressão regular.

grammar = "NP:{<DT>?<JJ>*<NN>}"

Agora, precisamos definir um analisador para analisar a gramática.

parser_chunking = nltk.RegexpParser(grammar)

Agora, o analisador analisará a frase da seguinte maneira -

parser_chunking.parse(sentence)

Em seguida, a saída estará na variável da seguinte maneira: -

Output = parser_chunking.parse(sentence)

Agora, o código a seguir o ajudará a desenhar sua saída na forma de uma árvore.

output.draw()