Crea una cuenta o inicia sesión

¡Continúa aprendiendo sin ningún costo! Únete y comienza a potenciar tu carrera

No se trata de lo que quieres comprar, sino de quién quieres ser. Invierte en tu educación con el precio especial

Antes: $249

Currency
$209

Paga en 4 cuotas sin intereses

Paga en 4 cuotas sin intereses
Suscríbete

Termina en:

12 Días
5 Hrs
9 Min
0 Seg

Configurar ambiente de trabajo

4/24
Recursos

Aportes 23

Preguntas 9

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad?

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 “palabra” 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: “jóvenes”, “nivel” o “superior”,
  • Un número, como: “1”, “0”, o “10”,
  • Un solo caracter, como: “j”, “ó” o “v”,
  • Un símbolo, como “¿”, “?” o “#”,
  • Un conjunto de caracteres, como “nivel superior” o “escuela 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:

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

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

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

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)
<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])

Excelente muy didáctico y clara la explicación

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.

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 👀.

La flatten se puede optimizar un poco con:

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

Una alternativa en NumPy para FLATTEN

Corpus = np.array(corpus)
Flatten = Corpus.flatten()
**Crear el Entorno Virtual** Perfeccionar ![](https://static.platzi.com/media/user_upload/image-51e16cd0-656e-45ad-a279-c5ad11fa7154.jpg)
Estos cursos los deberían hacer con Anaconta, Colab es muy academico y no se utiliza a nivel laboral.

En Numpy tenemos las funciones Ravel y Flatten para convertir un ndarray en un array de una sola dimensión. Al usar Ravel su resultado es una vista o referencia del array que esta aplanando o convirtiendo, pero si este cambia, al ser una referencia, el también se ve afectado y actualiza su contenido a diferncia de Flatten. Además es más rápido que Flatten.

https://frankgalandev.com/diferencias-entre-flatten-y-ravel-en-python/

muy buena clase, bien explicada"!

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(‘cess_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])

[‘El’, ‘grupo’, ‘estatal’, ‘Electricité_de_France’, ‘-Fpa-’, ‘EDF’, ‘-Fpt-’, ‘anunció’, ‘hoy’, ‘,’]

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…?

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