Processamento de linguagem natural - Ideias para projetos para iniciantes [fechado]

StackOverflow https://stackoverflow.com/questions/2572301

  •  24-09-2019
  •  | 
  •  

Pergunta

Sou iniciante em PNL e NLTK.Estou muito interessado em PNL e, portanto, juntei -me a um curso de fim de semana sobre IA em alguma instituição local, o que exige que eu faça um projeto para a conclusão do curso, e decidi fazê -lo na PNL.O problema é que o instrutor não é nada bom para este curso (Segundo mim ela é apenas um charlatão) (ou pode não estar muito interessado em ensinar como Esse é o último lote dela aqui que o instituto vai enviar ela fora).Então, estou preso em uma situação em que consegui terminar este projeto em um período de um mês a um mês e meio, mas como um ingênuo Estou sentindo muita dificuldade para entender o coisas necessárias para decidir sobre o projeto.(Além disso, como estou trabalhando plenamente tempo, não estou encontrando tempo suficiente para me dedicar a isso).

Considerei usar o kit de ferramentas NLTK em python para o projeto pelos seguintes motivos.(1) Python é famoso pela facilidade de uso, prototipagem rápida e comunidade muito ativa (considerando o curto espaço de tempo que tenho e como sou programador C de profissão, preciso de uma linguagem que possa aprender rápido e que seja simples de usar). usar).

(2) O NLTk tem uma boa revisão, extensa documentação e uma comunidade muito ativa.

Então o problema é qual projeto devo realizar, para poder aprender alguma coisa e poder terminar o projeto a tempo.(Não sei quase nada de PNL, nem sei exatamente o que são corpora...:( )

Então, por favor, sugira-me alguns tópicos que devo considerar para o projeto.

Cumprimentos,

MicroKernel :)

Foi útil?

Solução

A maioria dos projetos "iniciantes" visam reimplementar algoritmos conhecidos, para que o iniciante possa aprender verificando seus resultados contra soluções conhecidas. Para isso, eu recomendaria algo simples, como um filtro de spam de e -mail. Você começaria criando um arquivo de treinamento, ou seja, copiar o texto de vários real E -mails em um arquivo CSV e os rotule manualmente spam ou não spam, como:

text|is_spam
hi bob! how are you?|0
what time are you coming over|0
how to buy viagra now!|1

Em seguida, você criaria um arquivo de teste, no formato idêntico ao arquivo de treinamento, mas obviamente com exemplos diferentes.

Em seguida, você criaria seu classificador/filtro de spam. Existem muitas maneiras diferentes de implementar um filtro de spam, mas a mais básica é simplesmente contar a frequência com que uma palavra aparece com is_spam = 0 e is_spam = 1. Por exemplo, com base no arquivo de treinamento acima, a palavra "viagra" está associada a 1 classificação de spam, mas 0 classificações não spam, portanto, é provável que os e-mails futuros contendo a palavra "viagra" também sejam classificados como spam. Da mesma forma, a palavra "como" aparece em 1 spam e 1 email não spam, por isso é menos provável que indique uma classificação definitiva.

Você então treinaria seu classificador no arquivo de treinamento e calcularia sua precisão executando -o no arquivo de teste.

Se o método acima for muito simples, você pode aumentar sua complexidade contando n-gramas (grupos de palavras) ou até uma estrutura gramatical, primeiro marcando a parte de fala (por exemplo, muito spam é geralmente lixo aleatório preenchido com palavras-chave, onde não spam geralmente faz algum sentido). Você poderia implementar vários classificadores diferentes e comparar sua precisão.

É verdade que há um pouco mais do que isso, mas esses métodos estão bem documentados na Internet, e é o seu projeto, por isso cabe a você pesquisá -lo ainda mais. Boa sorte.

Outras dicas

Algumas ideias:

  • Um programa que adivinha o idioma em que um arquivo de entrada está escrito.Você precisaria de alguns exemplos de idiomas diferentes;A Wikipedia é uma excelente fonte.

  • Programa que, a partir de um corpus de texto, constrói palavras ou frases semelhantes às do corpus.

  • Encontre algo interessante para fazer com o Manuscrito Voynich.Você pode encontrar transcrições aqui.

(A propósito, “corpus” é apenas uma palavra chique para “grupo de texto”.De Wikipédia:"um conjunto grande e estruturado de textos (agora geralmente armazenados e processados eletronicamente)." A palavra geralmente se refere aos textos que você usa para treinar e testar seu algoritmo, em oposição aos textos desconhecidos que ele encontrará no campo.)

Tente trabalhar em desafios publicados em sites como Kaggle. Eles têm desafios interessantes, como Detectando insultos em comentários sociais para os quais os dados estão disponíveis gratuitamente.

Você pode usar o PNL para gravar algumas partes de uma chamada de suporte ao cliente em um telefone VoIP. As outras opções de entrada do usuário podem ser retiradas do teclado. Com esse sistema em vigor, você pode eliminar a necessidade de um pessoal de suporte. Por exemplo, redefinir a senha para um ID de email em uma organização com autorização baseada em voz.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top