Python - NLTK Flashcards

1
Q

O que significa NLTK?

A

Natural Language Toolkit

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

O que é o NLTK?

A

É uma biblioteca Python para processamento de Linguagem Natural.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

O NLTK é bom para trabalhar com que tipo de dados?

A

Strings.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Como utilizar o NLTK?

A

É necessário instalar a biblioteca através do seguinte comando:

pip install nltk

Após isso, é necessário fazer o download de todos (“all”) pacotes:

import nltk
nltk.download(info_or_id=’all’)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

O que é Tokenização?

A

Separar as palavras de um texto.

Semelhante à função split().

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Como fazer uma Tokenização simples/básica de um texto com NLTK?

A

import nltk

nltk.word_tokenize(text) -> list

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Como fazer uma Tokenização de um texto por Regular Expression?

A

from nltk.tokenize import RegexpTokenizer

tokenizer = RegexpTokenizer(pattern)
tokens = tokenizer.tokenize(text) -> list
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Qual o componente do NLTK que permite verificar a Frequência/Contagem de palavras tokenizadas?

A

É a classe: FreqDist(token) -> class

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Qual o comando que permite ver as palavras tokenizadas e a quantidade de vezes que se repetem no texto?

A

import nltk

tokens = nltk.word_tokenize(text)
frequency = nltk.FreqDist(tokens)

frequency.most_common()

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Qual o comando que permite ver as N primeiras palavras tokenizadas e a quantidade de vezes que se repetem no texto?

Exemplo: as 15 primeiras palavras

A

import nltk

tokens = nltk.word_tokenize(text)
frequency = nltk.FreqDist(tokens)

frequency.most_common(15)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

O que são Stopwords?

A

São palavras palavras consideradas irrelevantes para a busca.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Como obter a lista de Stopwords da língua portguesa?

A

import nltk

nltk.corpus.stopwords.words(‘portuguese’) -> list

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

O que são N-gramas?

A

É tokenizar um determinado número de palavras como um grupo, invés de palavras isoladas.

Por exemplo: Nomes Completos

Leandro Mana
New York
New England Patriots

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Quantos tipos de agrupamento de palavras podemos tokenizar?

A

Podemos agrupar em:

▪ bi-gramas - grupos de 2 palavras
▪ tri-gramas - grupos de 3 palavras
▪ n-gramas - grupos de N (4 ou mais) palavras

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

O que é Stemming?

A

É a redução da palavra até o seu radical.

Por exemplo:

▪ amig → amigo, amiga
▪ gat → gato, gata
▪ prop → propõem, propondo

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

O que é Lematização?

A

É a redução da palavra à sua forma canônica.

Não funciona bem para Português. Para isso, a lib spaCy possui um Lematizador.

Por exemplo:

▪ propor → propõem, propondo
▪ estudar → estudando, estudei, estudioso

17
Q

Como fazer o Stemming de uma palavra?

A

import nltk

stemmer = nltk.RSLPSetmmer()

stemmer.stem(word)

18
Q

O que é Etiquetar para a PLN?

A

É dar a classe gramatical das palavras de um token.

19
Q

Como Etiquetar as palavras?

A
  1. Tokenizar as palavras.
  2. Treinar o Etiquetador com o mac_morpho.
  3. Etiquetar os tokens.

from nltk import word_tokenize
from nltk.corpus import mac_morpho
from nltk.tag import UnigramTagger

with open(file, 'r') as f:
text = f.read()
tokens = word_tokenize(text)

training_sentences = mac_morpho.tagged_sents()

tagger = UnigramTagger(training_sentences)
tagger = tagger.tag(tokens)

print(tagger)

20
Q

Como definir uma Tag padrão para os tokens?

A

from nltk import word_tokenize
from nltk.corpus import mac_morpho
from nltk.tag import UnigramTagger, DefaultTagger

with open(file, ‘r’) as f:

text = f.read()
tokens = word_tokenize(text)

training_sentences = mac_morpho.sent()

default_tagger = DefaultTagger('N')
tagger = UnigramTagger(training_sentences, backoff=default_tagger)
tagger = tagger.tag(tokens)

print(tagger)

21
Q

O que é Chunk?

A

Análise Sintática Superficial.

22
Q

O que é o spaCy?

A

É uma biblioteca Python para processamento de Linguagem Natural de grandes textos em produção.

23
Q

Quais são as principais características do spaCy?

A

▪ É utilizado para processamento de grandes textos em produção.
▪ Suporta mais de 61 linguagens.
▪ Possui o parse sintático mais rápido do mundo.

24
Q

Como utilizar o spaCy?

A

É necessário instalar o pacote principal:

pip install -U spacy

Em seguida é necessário instalar os pacotes adicionais:

pip install -U spacy-lookups-data

Para instalar o pacote em português:

python -m spacy download pt_core_news_sm
python -m spacy download pt_core_news_md
python -m spacy download pt_core_news_lg

25
Q

O que é um Doc?

A

É um objeto que retorna um conjunto de objetos Tokens.

Cada objeto Token representa uma palavra e possui diversos atributos relacionados à analises gramaticais e de sintaxe.

26
Q

Como fazer a Tokenização no spaCy?

A

import spacy

nlp = spacy.load('pt_core_news_lg')
doc = nlp(text)
tokens = [token for token in doc]