Instalando o NLTK no Linux
Para instalar o NLTK no Ubuntu, execute o comando abaixo:
$ sudo apt install python3-nltk
Os pacotes NLTK estão disponíveis em todas as principais distribuições Linux. Pesquise a palavra -chave "NLTK" no gerenciador de pacotes para instalar os pacotes. Se, por algum motivo, o NLTK não estiver disponível nos repositórios de sua distribuição, você poderá instalá -lo no gerenciador de pacotes PIP executando o comando abaixo:
$ pip install --user -u nltk
Observe que você precisará primeiro instalar o PIP no seu gerenciador de pacotes para o comando acima para funcionar. Em algumas distribuições, pode ser chamado de PIP3. Você também pode seguir instruções detalhadas de instalação disponíveis no site oficial do NLTK.
Extraindo frases de um parágrafo usando NLTK
Para parágrafos sem pontuações e espaçamentos complexos, você pode usar o tokenizador de frases NLTK embutido, chamado "Punkt Thokenizer", que vem com um modelo pré-treinado. Você também pode usar seus próprios modelos de dados treinados para tokenizar o texto em frases. Modelos de dados treinados por personagens estão fora do escopo deste artigo, portanto o código abaixo usará o tokenizador de inglês punk embutido. Para baixar o arquivo Punkt Resource, execute os três comandos a seguir em sucessão e aguarde o download para terminar:
$ python3
$ import nltk
$ nltk.Download ('Punkt')
Um parágrafo de “Alice's Adventures in Wonderland” será usado no exemplo de código abaixo:
importar nltkA execução do código acima fornecerá a seguinte saída:
O tokenizador de frases punkt embutido funciona bem se você quiser tokenizar parágrafos simples. Depois de importar o módulo NLTK, tudo o que você precisa fazer é usar o método "Sent_tokenize ()" em um grande corpus de texto. No entanto, o tokenizador de sentenças Punkt pode não detectar corretamente frases quando houver um parágrafo complexo que contém muitos marcos de pontuação, marcas de exclamação, abreviações ou símbolos repetitivos. Não é possível definir uma maneira padrão de superar esses problemas. Você precisará escrever código personalizado para abordar esses problemas usando o regex, manipulação de string ou treinando seu próprio modelo de dados em vez de usar o modelo de dados punkt embutido.
Você também pode tentar ajustar o modelo punkt existente para corrigir a tokenização incorreta usando alguns parâmetros adicionais. Para fazer isso, siga a documentação oficial de tokenização do punkt disponível aqui. Para usar seus próprios ajustes personalizados, é necessária uma ligeira alteração no código:
de nltk.tokenize.Importar punkt punktsentencetekenizer, punktparametersO código acima faz o mesmo trabalho que o método "Sent_Tokenize ()". No entanto, agora você pode definir suas próprias regras usando métodos internos e passar como argumentos, conforme descrito na documentação. Por exemplo, algumas abreviações foram adicionadas ao código acima. Se essas abreviações forem seguidas de pontuação, elas não serão divididas em uma nova frase. O comportamento normal é usar um ponto ou período como uma indicação do fim de uma frase.
Conclusão
O NLTK e seus métodos de tokenização são bastante eficientes em tokenize e processamento de dados de texto. No entanto, os modelos pré-treinados podem não funcionar 100% com diferentes tipos de textos. Pode ser necessário melhorar os modelos existentes, treinar e fornecer o seu próprio ou escrever seu próprio código para corrigir anomalias.