Entender como máquinas de ler
Reconhecendo texto é uma parte importante do aprendizado de máquina. Para que um computador pode fazer qualquer coisa com o texto, ele deve ser capaz de ler o texto de alguma maneira. Os dados categóricos é um tipo de texto curto que você representa utilizando variáveis binárias, ou seja, variáveis codificadas utilizando um ou zero valores consoante um certo valor está presente na variável categórica. Não surpreendentemente, você pode representar textos complexos usando a mesma lógica.
Conteúdo
Video: 192 - ELETRICIDADE - Como ler os diagramas elétricos dos quadros de comando
Portanto, assim como você transforma uma variável cor categórica, ter valores como o vermelho, verde e azul, em três variáveis binárias, cada um representando uma das três cores, para que você pode transformar uma frase como “A raposa marrom ataca o cão preguiçoso”usando nove variáveis binárias, uma para cada palavra que aparece no texto (‘a’é considerado distinto de‘o’por causa de sua letra inicial maiúscula). Isto é o Bag of Words (Curva) forma de representação.
Na sua forma mais simples, a curva mostra se uma determinada palavra está presente no texto sinalizando uma característica específica no conjunto de dados. Dê uma olhada em um exemplo usando Python e seu pacote scikit-learn.
Os dados de entrada é três frases, text_1
, text_2
, e text_3
, colocado numa lista, corpus
. UMA corpus é um conjunto de documentos homogêneos juntos para análise PNL:
text_1 = `A ligeira raposa marrom ataca o cão preguiçoso.`
text_2 = `Meu cão é rápida e pode pular cercas.
text_3 = `O seu cão é tão preguiçoso que dorme o dia todo.`
corpus = [texto_1, text_2, text_3]
Quando você precisa para analisar texto usando um computador, você carregar os documentos a partir do disco ou raspar-los da web e colocar cada um deles em uma variável de cadeia. Se você tiver vários documentos, você armazená-los todos em uma lista, a corpus. Quando você tem um único documento, você pode dividi-lo usando capítulos, parágrafos ou simplesmente o fim de cada linha. Depois de dividir o documento, coloque todas as suas partes em uma lista e aplicar a análise como se a lista fosse um corpus de documentos.
Agora que você tem um corpo, você usa uma classe do feature_extraction
módulo em scikit-learn, CountVectorizer
, que facilmente se transforma textos em arco como este:
a partir de texto de importação sklearn.feature_extraction
vectorizer = text.CountVectorizer (binário = True) .fit (corpus)
vectorized_text = vectorizer.transform (corpus)
print (vectorized_text.todense ())
[[0 0 1 0 0 1 0 1 0 0 0 1 1 0 1 1 0 0 0 1 0]
[0 1 0 1 0 1 1 0 1 0 1 0 0 1 1 1 0 0 0 0 0]
Video: PROFESSOR ONLINE - COMO LER E INTERPRETAR DIAGRAMAS ELÉTRICOS
[0 0 0 1 1 1 0 0 1 1 0 0 1 0 0 0 1 1 1 1 1]]
o CountVectorizer
classe aprende o conteúdo corpus usando o em forma
método e, em seguida, vira-o (usando o transformar
método) em uma lista de listas. A lista de listas é nada mais do que uma matriz disfarçado, de modo que a classe retorna é na verdade uma matriz feita de três linhas (as três documentos, na mesma ordem que o corpus) e 21 colunas que representam o conteúdo.
A representação arco transforma palavras sobre as características das colunas de uma matriz documento, e esses recursos têm um valor diferente de zero quando presente no texto processado. Por exemplo, considere a palavra cachorro. O código a seguir mostra a sua representação na proa:
print (vectorizer.vocabulary_)
Video: Tudo sobre pentes da máquina de cortar cabelo
{ `Dia`: 4, `salta`: 11, `que`: 18, `o`: 19, `é`: 8,
`cercas`: 6, `preguiçosos`: 12, `e`: 1, `rápidas`: 15, `meu`: 13,
`Can`: 3, `é: 9, `so`: 17, `todos`: 0, `Brown`: 2,
Video: Como Ler de 3 a 6X Mais Rápido e Entender - Estudo e Memorização de Textos
`Cão`: 5, `salto`: 10, `over`: 14, `dorme`: 16,
`Seu`: 20, `fox`: 7}
pedindo a CountVectorizer
para imprimir o vocabulário aprendido com texto relata que ele associa cachorro com o número de cinco, o que significa que cachorro é o quinto elemento nas representações arco. Na verdade, na proa obtido, o quinto elemento de cada lista de documentos sempre tem um valor de 1 porque cachorro é a única palavra presente em todos os documentos de árvores.
Armazenamento de documentos em forma de matriz documento pode ser intensivo de memória, porque você tem de representar cada documento como um vetor do mesmo comprimento que o dicionário que o criou. O dicionário neste exemplo é bastante limitado, mas quando você usa um corpus maior, você descobre que um dicionário do idioma Inglês contém mais de um milhão termos. A solução é para usar matrizes esparsas. A matriz esparsa é uma maneira de armazenar uma matriz na memória do seu computador sem ter valores zero ocupando espaço na memória.