[go: up one dir, main page]

0% encontró este documento útil (0 votos)
19 vistas74 páginas

1 PLN Python y Anaconda

Presentación del curso de IA, Análisis de Sentimientos y Emociones Anaconda, Python y Librerías. De los Doctores Pedro Salcedo y Gabriela Kotz, de la Universidad de Concepción, para el Doctorado en Psicología
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
19 vistas74 páginas

1 PLN Python y Anaconda

Presentación del curso de IA, Análisis de Sentimientos y Emociones Anaconda, Python y Librerías. De los Doctores Pedro Salcedo y Gabriela Kotz, de la Universidad de Concepción, para el Doctorado en Psicología
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
Está en la página 1/ 74

IA, Análisis de Sentimientos y Emociones

Anaconda, Python y Librerías


(Numpy, Matplotlib, Pandas, NLTK)

Dr. Pedro Salcedo L. & Dra. Gabriela Kotz G.


¿Qué es el NLP?
• Subárea de Inteligencia Artificial, Cs de la
Computación.
• Estudia métodos que permitan a las máquinas
interactuar con las personas mediante lenguaje
natural.
• Poder extraer significado, información,
manipular texto.
• Área interdisciplinaria: Lingüística + Psicología
+ Ciencias Computación + Estadística
Aplicaciones del NLP
• Traducción automática
– Systran, Google Translate
• Clasificación de texto:
– Spam filtering (spam/ham)
– Topic classification (política, negocios, tecnología,
deportes, ...)
– Sentiment analysis (pos/neg/neutral)
• Recuperación de Información
– Search engines: Google Search, Lucene
– Text databases: MongoDB, CouchDB
Aplicaciones del NLP (2)
• Extracción de Información
– Resúmenes automáticos, palabras clave, categoría,
entidades, fechas, direcciones, emails. Scraping
• Entendimiento / Generación de lenguaje natural:
– Question & Answering, Chatbots
• Corrección Automática
• Compiladores / Intérpretes
• Mucho más…
Historia
• 50’s - Alan Turing “Computing Machinery
and Intelligence” “Turing Test”
• 60’ – Noam Chomsky “Syntactic
Structures” Sistemas basados en reglas.
Traducción automática
• 70’s – Ontologías, Chatbots
• 80’s – Sistemas basados en Aprendizaje
Automático.
• 90’s – Mayor poder de cómputo. Teorías
Lingüísticas de Chomsky pierden fuerza.
Modelos estadísticos.
Algunas tareas del NLP
• Segmentación de Oraciones
– Un “.” puede ser decimal, suspensivos, abreviación, etc.
• Segmentación de Palabras (Tokenización)
– En algunos lenguajes no es simple
• Análisis Lexicográfico (segmentación de morfemas)
– Stemming / Lemmatizing: Obtener forma canónica,
lexema, raíz
– Ej: run, runs, ran, running -> run
– Afijos: prefijos, infijos, sufijos (modifican significado de la
palabra)
Algunas tareas del NLP (2)
• Etiquetado Gramatical (POS Tagging)
– Asignar una etiqueta gramatical a una palabra, ej:
sustantivo, adjetivo, verbo, etc.
– Ej: “La (art) pelota(sust) es(verbo) redonda(adj)”
• Reconocimiento de Entidades (NER)
– Identificar entidades: personas, organizaciones, lugares,
etc.
• Análisis Sintáctico (Parsing)
– Identificar estructuras gramaticales en una oración.
– Obtener árbol de parsing a partir de una gramática
formal.
• Análisis Semántico
Algunas dificultades en el NLP

• Ambigüedades léxicas ej:


– “banco” (financiero, plaza)
– “planta” (industrial, natural).
• Ambigüedades sintácticas ej.:
– “Vi un hombre con un telescopio”
• Múltiples idiomas, traducción
• Semántica, lógica, metáforas, ironías,
anáforas, etc.
Python
• Python es un lenguaje de programación de alto
nivel.
• Es multiplataforma.
• Sintaxis limpia, que favorece un codigo mas
legible.
• Es un lenguaje interpretado.
• ES Open Source.
• Numerosas librerías opensource de matemáticas,
estadísticas, machine learning y ciencias.
¿Por qué Python para el NLP?

• Python reúne las características


necesarias para NLP
• Buena documentación
• Robusto, eficiente, veloz, escalable
• Open source (éxito en el mundo
académico y por lo tanto en NLP)
• Librerías para NLP como NLTK,
gensim y spaCy
¿Por qué NLTK?

• Es una plataforma líder para crear


programas Python que funcionen con
datos del lenguaje humano
• Proporciona interfaces fáciles de usar
para más de 50 corporas y recursos
léxicos como WordNet
Herramientas NLTK
• Tokenizador de palabras
• Tokenizador de oraciones
• Etiquetador gramatical
• Chunkers
• Reconocedor de entidades
• Expresiones regulares
• Gramáticas
• Parsers
• Stemmers/Lemmatizers
• Wordnet
• Algoritmos de Aprendizaje Automático
• Corpus, grandes colecciones de texto
• Más…
Tokenización
• Importo NLTK

• Abro un archivo de texto

• Tokenizar en oraciones
Tokenización (2)
• Tokenizar en palabras

• Etiquetado gramatical

• Chunking, extracción de entidades


Wordnet
• Importo wordnet

• Obtengo synset

• Obtengo lemas de sinónimos

• Obtengo hiperónimos

• Obtengo hipónimos
Clasificación: nombres (fem / mas)
• Defino set de atributos

• Obtengo ejemplos

• Genero conjuntos de entrenamiento y testeo

• Entreno un clasificador

• Utilizo el clasificador
Anaconda
• Distribución de
• Anaconda® es un administrador de paquetes, un
administrador de entornos, una distribución de
Python y una colección de más de 1,000 paquetes
de código abierto.
• Es de código abierto y fácil de instalar, y ofrece
soporte gratuito a través de su comunidad.
• Sino se desea una gran cantidad de paquetes se
puede usar Miniconda, que es un instalador de
Conda ligero que solo incluye Python (enversiones
2.7 o 3.x)
• Después de instalar Anaconda o Miniconda, si
prefiere una Interfaz Gráfica de Usuario (GUI) de
escritorio, utilice Navigator. Si prefiere usar el
prompt de Anaconda (o Terminal en Linux o
macOS), entonces use Conda.
• Conda es un gestor de paquetes que te permite
manejar los entornos que quieras de manera muy
fácil.
• Puede instalar, eliminar o actualizar cualquier
paquete Anaconda con unos pocos clics en
Navigator, o con un solo comando Conda en
Anaconda Prompt (Terminal en Linux o mac OS).
Instalación de Anaconda
Anaconda Navigator
Home de Anaconda
Entorno de Anaconda
Escuela de Anaconda
Entorno Jupyter para programar
Entorno Jupyter para programar
¿ Programar ?

Para programar se requiere dar


solución a un problema a través
de un algoritmo
Introducción.
• Un algoritmo es una sucesión finita de pasos no
ambiguos que se pueden ejecutar en un tiempo
finito, cuya razón de ser es la de resolver problema;
por tanto “problema” para nosotros, serán
aquellas cuestiones, conceptuales o prácticas, cuya
solución es expresable mediante un algoritmo.
Introducción

• Afortunadamente, son muchos los problemas cuya


solución puede describirse por medio de un
algoritmo y ésta es una de las razones subyacentes
a la necesidad de que aprendamos a programar y a
manejar un computador
Introducción

• El matemático G. Poyla propuso, a finales de 1940,


una metodología general para la resolución de
problemas matemáticos, que ha sido adaptada para el
caso en que se cuente con un computador como
recurso. Esta sistemática, de forma muy
esquematizada, se muestra en la siguiente figura >>
Introducción
Introducción
Algoritmos

1 2 3
Introducción

• El período que existe entre el análisis de un


problema y el diseño de su solución recibe
Algoritmos.

el nombre de período de incubación,


y el proceso mental que se da durante el
mismo sigue siendo tema de investigación
para los sicólogos.
Introducción
Algoritmos.

• Estamos por lo tanto en el terreno de


la inspiración y la madurez
mental.
Lenguajes de programación

• Un lenguaje de programación es un
lenguaje formal diseñado para expresar
procesos que pueden ser llevados a cabo por
máquinas como las computadoras.
• Pueden usarse para crear programas que
controlen el comportamiento físico y lógico
de una máquina, para expresar algoritmos
con precisión, o como modo de
comunicación humana.
Lenguajes de Programación
Variables
• Las variables se definen de manera dinámica. Lo
que quiere decir que no se tiene que especificar
cual es su tipo de dato(Int, String, etc).
• La variable puede tomar distintos valores en otro
momento.
• Con el símbolo = se le asigna un valor a una
variable.

Ejemplo
edad = 20
edad = “veinte”
Variables en Jupyter
Variables en Python.

En resumen (tipos de datos).


• Números
– Enteros
– Reales
– Complejos
• Cadenas
• Booleanos
Operadores Matemáticos.
• Suma +
• Resta -
• Multiplicación *
• Exponente **
• División tenemos 3 operadores
– División reales /
– Enteros //
– Resto %
Operaciones aritméticas
Estructuras de Control
• Secuenciales
• Selectivas
• Repetitivas
Secuenciales
Selectiva
Selectiva
Inic
io
Leer
N = int(input("Ingrese N: “))
N
Repetitiva

while N>2:
N No
>2 N=N-2
Si
if N==2:
N=N-2
print (“es par”)
Escribe Si N else:
es par =2 print (“es impar”)
No
Escribe
Fin
es impar
Tipos de Bucles
while
for
Listas

• La lista es una colección de datos ordenada,


alguna equivalencia con otros lenguajes seria
los arrays o vectores.

• La lista puede contener cualquier tipo de


dato (enteros, cadenas y otras listas )
Listas

lista = [ ''hola'', 2 , '’Mariana'', [1,2,3] ]

print (lista)
Listas
• Si queremos acceder a uno de los elementos
de la lista lo hacemos utilizando el nombre
que hacemos referencia a la lista en este caso
lo llame lista puede ser cualquiera y entre
corchete indicamos un índice, dicho índice
va de 0 a n-1

lista = [ ''hola'', 2 , ''luis'', [1,2,3] ]


print (lista[0])
print (lista[1])
print (lista[2])
print (lista[3])
Ejemplo
Funciones

def mi_funcion(param1, param2):


print (param1)
print (param2)

mi_funcion("hola", "luis")
Funciones
def suma( a, b):
resultado = a + b
return resultado

def resta( a, b):


resultado = a - b
return resultado

print (suma(10,2))
print (resta(10,2))
Funciones
def suma( valor1, valor2):
resultado = valor1+ valor2
return resultado

a=int(input("Ingrese a: "))
b=int(input("Ingrese b: "))

print("La suma es:" + str(suma(a,b)))


Funciones
def funcion(x, y):
return x * 2, y * 2

a, b = funcion(1, 2)

print(a)
print(b)
LIBRERIAS
NUMPY
MATPLOT
PANDAS
NLTK
NUMPY

• Librería enfocada al cálculo numérico

Problema sin NUMPY → solución Numpy Array


NUMPY
Array 2D
Librería Pandas
Librería Pandas
Librería Pandas
Librería Matplotlib
Librería Matplotlib
Librería Matplotlib
Gracias !!

También podría gustarte