Crea una cuenta o inicia sesi贸n

隆Contin煤a aprendiendo sin ning煤n costo! 脷nete y comienza a potenciar tu carrera

Aprende todo un fin de semana sin pagar una suscripci贸n 馃敟

Aprende todo un fin de semana sin pagar una suscripci贸n 馃敟

Reg铆strate

Comienza en:

1D
5H
59M
36S

Configurar ambiente de trabajo

4/24
Recursos

Aportes 20

Preguntas 9

Ordenar por:

驴Quieres ver m谩s aportes, preguntas y respuestas de la comunidad?

o inicia sesi贸n.

Glosario:

Corpus ling眉铆stico
Un corpus ling眉铆stico es un conjunto amplio y estructurado de ejemplos reales de uso de la lengua. Estos ejemplos pueden ser textos, o muestras orales.鈥 Un corpus ling眉铆stico es un conjunto de textos relativamente grande, creado independientemente de sus posibles formas o usos.

Token
Un token es un conjunto de caracteres que representan texto. Tambi茅n podemos decir que el token es la unidad an谩lisis de texto, as铆 como un n煤mero es la unidad del an谩lisis matem谩tico. Es f谩cil para nosotros pensar que un token es igual a una palabra, sin embargo esto no es correcto, puesto que la 鈥減alabra鈥 es un elemento del lenguaje que posee significado por s铆 misma, mientras que el token se supone es un elemento abstracto. Dependiendo de la tarea que estemos afrontando, el token puede ser alguna de las siguientes:

  • Una sola palabra, como: 鈥渏贸venes鈥, 鈥渘ivel鈥 o 鈥渟uperior鈥,
  • Un n煤mero, como: 鈥1鈥, 鈥0鈥, o 鈥10鈥,
  • Un solo caracter, como: 鈥渏鈥, 鈥溍斥 o 鈥渧鈥,
  • Un s铆mbolo, como 鈥溌库, 鈥?鈥 o 鈥#鈥,
  • Un conjunto de caracteres, como 鈥渘ivel superior鈥 o 鈥渆scuela t茅cnica鈥

Tokenizaci贸n
La tokenizaci贸n es un paso que divide cadenas de texto m谩s largas en piezas m谩s peque帽as o tokens. Los trozos de texto m谩s grandes pueden ser convertidos en oraciones, las oraciones pueden ser tokenizadas en palabras, etc. El procesamiento adicional generalmente se realiza despu茅s de que una pieza de texto ha sido apropiadamente concatenada. La tokenizaci贸n tambi茅n se conoce como segmentaci贸n de texto o an谩lisis l茅xico. A veces la segmentaci贸n se usa para referirse al desglose de un gran trozo de texto en partes m谩s grandes que las palabras (por ejemplo, p谩rrafos u oraciones), mientras que la tokenizaci贸n se reserva para el proceso de desglose que se produce exclusivamente en palabras.


Bibliograf铆a:

Cuando hace flatten[:20] tarda porque esta volviendo a ejecutar el ciclo for, para que no gasten recurso de mas pueden hacerlo en una celda aparte

Para trabajar con tus textos propios puedes usar

path = 'direcci贸n/de/tu/archivo.txt'

f = open(path, 'r')
raw = f.read() # Es el archivo en texto puro. No es usable por nltk a煤n
tokens = nltk.word_tokenize(raw) # Primero se extraen los tokens
text = nltk.Text(tokens) # Se genera el texto a partir de los tokens

Justamente me quede revisando la data disponible de NLTK. Incluso tiene modelos de entrenamiento. http://www.nltk.org/nltk_data/

<h1>C贸mo usar NLKT en Google Colab</h1>
# Importamos la biblioteca
import nltk
# Descargamos nuestra base de datos de textos
nltk.download('cess_esp')

Expresiones Regulares

  • Constituyen un lenguaje estandalizado para definir cadenas de b煤squeda de texto.
  • Biblioteca de operaciones con expresiones regulares de Python re.
  • Reglas para escribir expresiones regulares.
# Importamos una biblioteca para expresiones regulares. 
import re
# Definimos un corpus en Python 
corpus = nltk.corpus.cess_esp.sents()
# Vemos de que trata este contenido
print(corpus)
# Vemos el tama帽o del nuestro corpus. 
print(len(corpus))

''' Aqu铆 vamos a concatener todas esas sublistas en una lista grande, de modo de que ya no tendremos una lista de listas, si no una sola lista donde est谩n 
todos los titulares seguidos uno tras otro '''  
flatten = [w for l in corpus for w in l]

# Imprimimos una parte de la estructura interna 
print(flatten[:100])

Con NumPy es m谩s f谩cil aplanar una lista sin importar la dimension de la matriz.

import numpy as np
lista = [[1,2,3],[4,5,6]]
np.concatenate(lista)

Excelente muy did谩ctico y clara la explicaci贸n

Una alternativa en NumPy para FLATTEN

Corpus = np.array(corpus)
Flatten = Corpus.flatten()

muy buena clase, bien explicada"!

Por el momento nada nuevo, la potencia de las list comprehension.
Y con split se tokeniza texto.
Sigo bien con el IDLE nativo de python y mi ambiente virtual.

Alternativa del doble loop

Vengo del futuro 馃懡. Si no quieren usar el doble loop y que corra m谩s r谩pido pueden usar usar ravel() de numpy:

flatten = np.concatenate(np_corpus).ravel().tolist()

import nltk #tiene gran cantidad de textos, los descargamos, TITULARES DE NOTICIAS
nltk.download(鈥榗ess_esp鈥)
import re
corpus = nltk.corpus.cess_esp.sents()
print(corpus)
print(len(corpus)) #6030 palabras

#aplanar la lista (flatten) y dejar los caracteres en una lista normal, no lista de listas
flatten = [w for l in corpus for w in l]
print(len(flatten)) #192,685

print(flatten[:10])

[鈥楨l鈥, 鈥榞rupo鈥, 鈥榚statal鈥, 鈥楨lectricit茅_de_France鈥, 鈥-Fpa-鈥, 鈥楨DF鈥, 鈥-Fpt-鈥, 鈥榓nunci贸鈥, 鈥榟oy鈥, 鈥,鈥橾

Configurara ambiente de trabajo

  • nltk ya tiene varios corpus y corpora para trabajar 馃槃. Para usar una, debemos descargarla. Usaremos un corpus en espa帽ol nltk.download("cess_esp"). Este corpus consiste de titulares de noticas en espa帽ol.

  • Se recomienda tomar el curso de expresiones regulares 馃憖. Python tiene una librer铆a de expresiones regulares llamada re. Las expresiones regulares son un lenguaje estandarizado para definir cadenas de b煤squeda de texto.

    re - Regular expression operations - Python 3.9.7 documentation

  • Hay una operaci贸n llamada flatten, donde aplanamos una lista, de tal manera que no tenemos una lista de listas, si no una sola lista con una secuencia de tokens larga 馃憖.

For linux users:

mport nltk
import ssl

try:
    _create_unverified_https_context = ssl._create_unverified_context
except AttributeError:
    pass
else:
    ssl._create_default_https_context = _create_unverified_https_context

Hola, sera que me podr铆an hacer el favor de ayudar? tengo varias dudas.

  1. No me queda aun muy claro la diferencia de corpus y corpora, corpora es un conjunto de textos, entonces podriamos decir que un libro podria ser una copora cierto? por ejemplo el libro de harry potter
  2. Una lista de listas visualmente es una matriz cierto?

no entendi bien que significa corpus

Muy clara la explicaci贸n

hola chicos tengo un preguta:
entre un peque帽o modelo usando Spacy 鈥 el modelo lo tengo en mi laptop pero ya lo subi a la carpeta donde se guardan los notebooks de google colab 鈥 pero no puedo cargarlo para trabajar 鈥 alguien sabe como hacerlo鈥?

La flatten se puede optimizar un poco con:

import functools
import operator
flatten = functools.reduce(operator.iconcat, corpus, [])

El enlace:
https://platzi.com/clases/machine-learning/
No funciona, es el que explica m谩s en detalle, como usar colab de Google.