O processamento de linguagem natural é um aspecto do aprendizado de máquina que permite processar palavras escritas em uma linguagem amigável à máquina. Esses textos tornam-se então ajustáveis e você pode executar algoritmos computacionais neles como desejar.
A lógica por trás dessa tecnologia cativante parece complexa, mas não é. E mesmo agora, com um conhecimento sólido da programação Python básica, você pode criar um novo processador de texto DIY com o kit de ferramentas de linguagem natural (NLTK).
Veja como começar a usar o NLTK do Python.
O que é NLTK e como funciona?
Escrito em Python, o NLTK apresenta uma variedade de funcionalidades de manipulação de strings. É uma biblioteca versátil de linguagem natural com um vasto repositório de modelos para vários aplicativos de linguagem natural.
Com o NLTK, você pode processar textos brutos e extrair recursos significativos deles. Ele também oferece modelos de análise de texto, gramáticas baseadas em recursos e ricos recursos lexicais para a construção de um modelo de linguagem completo.
Como configurar o NLTK
Primeiro, crie uma pasta raiz do projeto em qualquer lugar do seu PC. Para começar a usar a biblioteca NLTK, abra seu terminal na pasta raiz que você criou anteriormente e criar um ambiente virtual.
Em seguida, instale o kit de ferramentas de linguagem natural neste ambiente usando pip:
pip install nltk
NLTK, no entanto, apresenta uma variedade de conjuntos de dados que servem como base para novos modelos de linguagem natural. Para acessá-los, você precisa ativar o downloader de dados embutido do NLTK.
Portanto, depois de instalar o NLTK com êxito, abra seu arquivo Python usando qualquer editor de código.
Em seguida, importe o nltk módulo e instanciar o downloader de dados usando o seguinte código:
pip install nltk
nltk.download ()
Executar o código acima através do terminal traz uma interface gráfica de usuário para selecionar e baixar pacotes de dados. Aqui, você precisará escolher um pacote e clicar no botão Download botão para obtê-lo.
Qualquer pacote de dados que você baixa vai para o diretório especificado escrito no Baixar diretório campo. Você pode mudar isso se quiser. Mas tente manter o local padrão neste nível.
Relacionado: Os melhores editores de código gratuitos para escrever seu primeiro aplicativo
Observação: Os pacotes de dados são anexados às variáveis do sistema por padrão. Portanto, você pode continuar a usá-los em projetos subsequentes, independentemente do ambiente Python que estiver usando.
Como usar tokenizadores NLTK
Em última análise, o NLTK oferece modelos de tokenização treinados para palavras e frases. Usando essas ferramentas, você pode gerar uma lista de palavras de uma frase. Ou transforme um parágrafo em uma matriz de frase sensata.
Aqui está um exemplo de como usar o NLTK word_tokenizer:
importar nltk
de nltk.tokenize import word_tokenize
word = "Este é um texto de exemplo"
tokenWord = word_tokenizer (word)
imprimir (tokenWord)
Saída:
['Este', 'é', 'um', 'exemplo', 'texto']
O NLTK também usa um tokenizador de frases pré-treinado chamado PunktSentenceTokenizer. Funciona dividindo um parágrafo em uma lista de frases.
Vamos ver como isso funciona com um parágrafo de duas frases:
importar nltk
de nltk.tokenize import word_tokenize, PunktSentenceTokenizer
frase = "Este é um texto de exemplo. Este é um tutorial para NLTK "
token = PunktSentenceTokenizer ()
tokenized_sentence = token.tokenize (frase)
imprimir (tokenized_sentence)
Saída:
['Este é um texto de exemplo.', 'Este é um tutorial para NLTK']
Você pode ainda tokenizar cada frase na matriz gerada a partir do código acima usando word_tokenizer e Python for loop.
Exemplos de como usar NLTK
Portanto, embora não possamos demonstrar todos os casos de uso possíveis de NLTK, aqui estão alguns exemplos de como você pode começar a usá-lo para resolver problemas da vida real.
Obtenha definições de palavras e suas partes do discurso
O NLTK apresenta modelos para determinar classes gramaticais, obter semântica detalhada e possível uso contextual de várias palavras.
Você pode usar o wordnet modelo para gerar variáveis para um texto. Em seguida, determine seu significado e parte do discurso.
Por exemplo, vamos verificar as variáveis possíveis para "Monkey:"
importar nltk
de nltk.corpus importar wordnet como wn
imprimir (wn.synsets ('macaco'))
Saída:
[Synset ('monkey.n.01'), Synset ('imp.n.02'), Synset ('tamper.v.01'), Synset ('putter.v.02')]
O código acima mostra possíveis alternativas de palavras ou sintaxes e classes gramaticais para "Macaco".
Agora verifique o significado de "Macaco" usando o definição método:
Monkey = wn.synset ('monkey.n.01'). Definição ()
Saída:
qualquer um dos vários primatas de cauda longa (excluindo os prosímios)
Você pode substituir a string entre parênteses por outras alternativas geradas para ver o que o NLTK produz.
o pos_tag modelo, no entanto, determina as classes gramaticais de uma palavra. Você pode usar isso com o word_tokenizer ou PunktSentenceTokenizer () se você estiver lidando com parágrafos mais longos.
É assim que funciona:
importar nltk
de nltk.tokenize import word_tokenize, PunktSentenceTokenizer
word = "Este é um texto de exemplo. Este é um tutorial sobre NLTK "
token = PunktSentenceTokenizer ()
tokenized_sentence = token.tokenize (palavra)
para i em tokenized_sentence:
tokenWordArray = word_tokenize (i)
partsOfSpeech = nltk.pos_tag (tokenWordArray)
imprimir (partsOfSpeech)
Saída:
[('Este', 'DT'), ('é', 'VBZ'), ('um', 'DT'), ('exemplo', 'NN'), ('texto', 'NN'), ('.', '.')]
[('This', 'DT'), ('is', 'VBZ'), ('a', 'DT'), ('tutorial', 'JJ'), ('on', 'IN'), ('NLTK', 'NNP')]
O código acima emparelha cada palavra tokenizada com sua tag de fala em uma tupla. Você pode verificar o significado dessas tags em Penn Treebank.
Para um resultado mais limpo, você pode remover os pontos na saída usando o substituir() método:
para i em tokenized_sentence:
tokenWordArray = word_tokenize (i.replace ('.', ''))
partsOfSpeech = nltk.pos_tag (tokenWordArray)
imprimir (partsOfSpeech)
Saída do limpador:
[('Este', 'DT'), ('é', 'VBZ'), ('um', 'DT'), ('exemplo', 'NN'), ('texto', 'NN') ]
[('This', 'DT'), ('is', 'VBZ'), ('a', 'DT'), ('tutorial', 'JJ'), ('on', 'IN'), ('NLTK', 'NNP')]
Visualizando tendências de recursos usando o gráfico NLTK
Extrair recursos de textos brutos costuma ser tedioso e demorado. Mas você pode visualizar os determinantes de recursos mais fortes em um texto usando o gráfico de tendência de distribuição de frequência NLTK.
NLTK, no entanto, sincroniza com matplotlib. Você pode aproveitar isso para visualizar uma tendência específica em seus dados.
O código abaixo, por exemplo, compara um conjunto de palavras positivas e negativas em um gráfico de distribuição usando seus dois últimos alfabetos:
importar nltk
from nltk import ConditionalFreqDist
Listas de palavras negativas e positivas:
negativos = [
'anormal', 'abolir', 'abominável',
'abominavelmente', 'abominável', 'abominação'
]
positivos = [
'abundância', 'abundância', 'abundância',
'abundante', 'acessível', 'acessível'
]
# Divida os itens em cada matriz em pares de tupple rotulados
# e combine as duas matrizes:
pos_negData = ([("negativo", neg) para negativo em negativos] + [("positivo", pos) para pos em positivos])
# Extraia os dois últimos alfabetos da matriz resultante:
f = ((pos, i [-2:],) for (pos, i) em pos_negData)
# Crie um gráfico de distribuição desses alfabetos
cfd = ConditionalFreqDist (f)
cfd.plot ()
O gráfico de distribuição do alfabeto é assim:
Olhando atentamente para o gráfico, palavras que terminam com ce, ds, le, WL, e nt têm maior probabilidade de serem textos positivos. Mas aqueles que terminam com al, mente, sobre, e te são palavras negativas mais prováveis.
Observação: Embora tenhamos usado dados autogerados aqui, você pode acessar alguns dos conjuntos de dados integrados do NLTK usando seu leitor Corpus, chamando-os do corpus classe de nltk. Você pode querer olhar para o documentação do pacote corpus para ver como você pode usá-lo.
Com o surgimento de tecnologias como Alexa, detecção de spam, chatbots, análise de sentimento e muito mais, o processamento de linguagem natural parece estar evoluindo para sua fase subumana. Embora tenhamos considerado apenas alguns exemplos do que o NLTK oferece neste artigo, a ferramenta tem aplicativos mais avançados, além do escopo deste tutorial.
Depois de ler este artigo, você deve ter uma boa idéia de como usar o NLTK em um nível básico. Tudo o que resta a você fazer agora é colocar esse conhecimento em prática você mesmo!
Interessado na área de Aprendizado de Máquina? Comece com essas bibliotecas.
Leia a seguir
- Programação
- Pitão
- Linguagens de programação
- Programação

Idowu é apaixonado por qualquer tecnologia inteligente e produtividade. Em seu tempo livre, ele brinca com codificação e muda para o tabuleiro de xadrez quando está entediado, mas também adora quebrar a rotina de vez em quando. Sua paixão por mostrar às pessoas o caminho da tecnologia moderna o motiva a escrever mais.
Assine a nossa newsletter
Junte-se ao nosso boletim informativo para dicas de tecnologia, análises, e-books grátis e ofertas exclusivas!
Clique aqui para se inscrever