Baixe o app para aproveitar ainda mais
Prévia do material em texto
Processamento de Linguagem Natual + Aprendizagem de Maquina Estudo da Sub-área de PLN , a aprendizagem de linguagem natural (NLL) é a área de interesse. Os sistemas baseados em algoritmos de aprendizagem mecânica têm muitas vantagens em relação às regras produzidas manualmente: ● Os procedimentos de aprendizagem usados durante a aprendizagem da máquina focam-se automaticamente nos casos mais comuns, ao passo que quando se escrevem regras à mão, não é óbvio em que sentido o esforço deve ser dirigido. ● Os procedimentos de aprendizagem automática podem fazer uso de algoritmos de inferência estatística para produzir modelos que são robustos a entradas não familiares (por exemplo, contendo palavras ou estruturas que não foram vistas antes) e a entradas errôneas (por exemplo, com palavras ou palavras incorretamente omitidas). Geralmente, lidar com essas entradas de forma com regras manuscritas ou sistemas de regras manuscritas que tomam decisões suaves é extremamente trabalhoso, propenso a erros e demorado. ● Sistemas baseados em aprender automaticamente as regras podem ser mais precisos simplesmente fornecendo mais dados de entrada. No entanto, os sistemas baseados em regras escritas à mão só podem ser tornados mais precisos aumentando a complexidade das regras, o que é uma tarefa muito mais difícil. Em particular, há um limite para a complexidade de sistemas baseados em regras artesanais, para além dos quais os sistemas se tornam cada vez mais incontroláveis. No entanto, a criação de mais dados para entrada em sistemas de aprendizado de máquina requer simplesmente um aumento correspondente no número de horas trabalhadas por humanos, geralmente sem aumentos significativos na complexidade do processo de anotação. Exemplos: Sumarização automática Produz um resumo legível de uma parte do texto. Muitas vezes usado para fornecer resumos de texto de um tipo conhecido, como artigos na seção financeira de um jornal. Resolução de correferência Dada uma frase ou um pedaço maior de texto, determina quais palavras ("menções") se referem aos mesmos objetos ("entidades"). A resolução da anáfora é um exemplo específico dessa tarefa e está especificamente preocupada em combinar os pronomes com os substantivos ou nomes aos quais eles se referem. A tarefa mais geral da resolução de correferência também inclui a identificação dos chamados "relacionamentos de ponte" envolvendo expressões de referência. Por exemplo, numa frase como "Ele entrou na casa de João pela da porta da frente", "a porta da frente" é uma expressão de referência e a relação da ponte a ser identificada é o fato de que a porta a ser referida é a porta da frente de John's (ao invés de alguma outra estrutura que também pode ser referida). Análise do Discurso Esta rubrica inclui uma série de tarefas relacionadas. Uma tarefa é identificar a estrutura discursiva do texto conectado, isto é, a natureza das relações discursivas entre sentenças (por exemplo, elaboração, explicação, contraste). Outra possível tarefa é reconhecer e classificar os atos de fala em um pedaço de texto (por exemplo, pergunta sim-não, pergunta de conteúdo, frase, afirmação, etc). Maquina de tradução Traduzir automaticamente texto de uma linguagem humana para outra. Este é uma das tarefas mais difíceis e faz parte de um tipo de problemas conhecidos como "AI-complete", ou seja, exigindo todos os diferentes tipos de conhecimento que os humanos possuem (gramática, semântica, fatos sobre o mundo real, etc) para resolvê-lo adequadamente. Segmentação morfológica Separa palavras em morfemas individuais e identifica classes de morfemas. A dificuldade desta tarefa depende muito da complexidade da morfologia (isto é, da estrutura das palavras) da linguagem que está sendo considerada. O inglês possui uma morfologia bastante simples, especialmente a morfologia flexional , e portanto é possível ignorar esta tarefa inteiramente e simplesmente modelar todas as formas possíveis de uma palavra (por exemplo, "open, opens, opened, opening") como palavras separadas. Em línguas como o turco ou o Meitei, uma língua indiana fortemente aglutinada, no entanto, tal abordagem não é possível, uma vez que cada entrada do dicionário tem milhares de formas de palavras possíveis.[6] Reconhecimento de entidade nomeada (NER) Dado um fluxo de texto, determina quais são itens no mapa de texto para nomes próprios, como pessoas ou locais e qual é o tipo de cada nome (por exemplo, pessoa, local, organização). Embora a capitalização possa ajudar a reconhecer entidades nomeadas em idiomas como o inglês, essas informações podem não ajudar a determinar o tipo de entidade nomeada e, em alguns casos, sãos imprecisas ou insuficientes. Por exemplo, a primeira palavra de uma frase também é capitalizada e as entidades nomeadas muitas vezes abrangem várias palavras, com apenas algumas delas são capitalizadas. Além disso, muitas outras linguagens em scripts não-ocidentais (por exemplo, chinês ou árabe) não têm nenhuma capitalização e mesmo as línguas com maiúsculas podem não distinguir nomes. Por exemplo, o alemão capitaliza todos os substantivos, independentemente de se referirem a nomes, e o francês e o espanhol não capitalizam nomes que servem como adjetivos. Geração de linguagem natural Converte informações de bancos de dados de computador ou intenções semânticas em linguagem humana legível. Compreensão da linguagem natural Converte pedaços de texto em representações mais formais, como estruturas de lógica de primeira ordem, que são mais fáceis de manipular pelos programas de computador. A compreensão da linguagem natural envolve a identificação da semântica pretendida a partir da múltipla semântica possível que pode ser derivada de uma expressão de linguagem natural que geralmente toma a forma de notação organizada de conceitos de linguagens naturais. Entretanto, introdução e criação de linguagem metamodelo e ontologia são eficientes soluções empíricas. Uma formalização explícita da semântica de línguas naturais sem confusões com suposições implícitas como closed-world assumption (CWA) versus open-world assumption ou subjetiva Sim / Não versus objetivo Verdadeiro / Falso é esperada para a construção de uma base de formalização semântica [7]. Reconhecimento óptico de caracteres (OCR) Dada uma imagem que representa o texto impresso, determina o texto correspondente. Marcação de classe gramatical Dada uma sentença, determina a classe gramatical de cada palavra. Muitas palavras, especialmente as comuns, podem servir como múltiplas partes do discurso. Em inglês, por exemplo, "book" pode ser um substantivo ("the book on the table") ou verbo ("book a flight"); "Set" pode ser um substantivo, verbo ou adjetivo; E "out" pode ser qualquer um de pelo menos cinco diferentes partes da fala. Algumas línguas têm mais ambiguidade do que outras. As línguas com pouca morfologia flexional, como o inglês, são particularmente propensas a tal ambiguidade. O chinês é propenso a tal ambiguidade porque é uma língua tonal durante a verbalização. Tal inflexão não é facilmente transmitida através das entidades empregadas dentro da ortografia para transmitir o significado pretendido. Análise sintática (Parsing) Determina a árvore de análise (análise gramatical) de uma frase. A gramática para as linguagens naturais é ambígua e frases típicas têm múltiplas análises possíveis. Na verdade, surpreendentemente, para uma frase típica pode haver milhares de análises em potencial (a maioria dos quais parecerá completamente absurda para um ser humano). Respostas a perguntas Dada uma questão de linguagem humana, determina sua resposta. As perguntas típicas têm uma resposta correta específica (como "Qual é o capitaldo Canadá?"), mas às vezes perguntas abertas também são consideradas (como "Qual é o significado da vida?"). Trabalhos recentes têm analisado questões ainda mais complexas.[8] Extração de relacionamento Identifica as relações entre entidades nomeadas (por exemplo, quem é casado com quem) com base em textos. Quebra de frases (sentence boundary disambiguation) Encontra os limites da frase em um pedaço de texto. Os limites de frases são normalmente marcadas por pontos ou outros sinais de pontuação, mas esses mesmos caracteres podem servir outros propósitos. Análise de subjetividade (sentiment analysis ou opinion mining) Extrai informações subjetivas geralmente de um conjunto de documentos, muitas vezes usando revisões online para determinar a "polaridade" sobre objetos específicos. É especialmente útil para identificar tendências da opinião pública nas mídias sociais, para fins de marketing. Reconhecimento de fala Dado um clipe de som de uma pessoa ou pessoas falando, determina a representação textual do discurso. É o oposto da síntese de fala e é uma das áreas mais difíceis, conhecida como "AI-complete". Na fala natural quase não há pausas entre palavras sucessivas, por isso a segmentação de fala é uma subtarefa necessária de reconhecimento de fala. Nota-se também que, na maioria das linguagens faladas, os sons que representam letras sucessivas se misturam entre si em um processo denominado coarticulação, de modo que a conversão do sinal analógico em caracteres discretos pode ser um processo muito difícil de ser realizado. Segmentação de fala Dado um clipe de som de uma pessoa ou pessoas falando, separa-o em palavras. Uma subaplicação de reconhecimento de fala e normalmente agrupada com ele. Análise morfológica e reconhecimento de tópicos Dado um pedaço de texto, separa-o em segmentos cada um dos quais é dedicado a um tópico e identifica o tópico do segmento. Análise morfológica e segmentação de palavras Separa um pedaço de texto contínuo em palavras separadas. Para uma língua como o inglês, isso é bastante trivial, uma vez que as palavras são normalmente separadas por espaços. No entanto, algumas línguas escritas como chinês, japonês e tailandês não marcam limites de palavras de tal forma, e nessas línguas segmentação de texto é uma tarefa significativa que requer conhecimento do vocabulário e morfologia das palavras na língua. Desambiguação Muitas palavras têm mais de um significado, assim temos que selecionar o significado que faz mais sentido no contexto. Para este problema, em geral é dada uma lista de palavras e sentidos de palavras associadas de um dicionário ou recurso online, 4como o WordNet. Em alguns casos, conjuntos de tarefas relacionadas são agrupados em subcampos de PLN que são frequentemente considerados separadamente da PLN como um todo, como os exemplos à seguir: Recuperação de informação (IR) Trata-se de armazenar, pesquisar e recuperar informações. É um campo separado dentro da ciência da computação (mais perto de bancos de dados), mas a IR se baseia em alguns métodos PLN (por exemplo, stemming). Algumas pesquisas e aplicações atuais procuram preencher a lacuna entre IR e PLN. Extração de informação (IE) Trata-se, em geral, da extração de informação semântica a partir do texto. Abrange tarefas como reconhecimento de entidade mencionada, resolução de correferência e de relacionamento de extração, etc. Processamento de voz Abrange reconhecimento de fala, síntese de fala e tarefas relacionadas. Ferramenta para teste TensorFLOW: https://www.tensorflow.org/ Tensor Flow é uma biblioteca de código aberto, desenvolvido pela Google, destinada a inteligência artificial, todo o projeto correu através de estudos de redes neurais e é a base de serviços da gigante, tais como o Google Tradutor, Google Fotos e até seu buscador. A biblioteca utiliza o “machine learning”, permitindo que as máquinas aprendam com as ações e ampliem sua capacidade de decisões. Segundo a própria Google, tornar o TensorFlow uma biblioteca de código aberto, contribuirá para o desenvolvimento da tecnologia, pois apesar da área de inteligência artificial crescer rapidamente, ela carece de ferramentas padronizadas e a Google espera tornar o Tensor Flow um padrão aberto no ramo da inteligência artifical. Apesar de a Google utilizar o Tensor Flow para serviços voltados ao usuário, eles acreditam que a tecnologia pode ser usada nos mais diferentes ramos e estarão sempre contribuindo com seu desenvolvimento e trazendo publicações sobre o mesmo. O Tensor Flow está licenciado pela Apache 2.0 e disponível no GitHub, pode ser utilizado por qualquer pessoa, seja você um entusiasta, desenvolvedor, inventor e assim por diante. A Google incentiva que os interessados, criem forks de sua biblioteca, pois a mesma não é completa, estando atualmente disponível uma versão inicial do código fonte, que continuará a receber o desenvolvimento da Google, no entanto ampliações de suas funcionalidades, ficarão a encargo dos que queiram implementar. Inicialmente o Tensor Flow segue em Python e C++, linguagens de fácil utilização e excelente desempenho, mas a inteção da Google é que a tecnologia chegue a linguagens como JavaScript, Java, Lua, R e assim por diante.
Compartilhar