La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Computación con el lenguaje 4 Día 25, 17 mar 14 Cultura computacional en español SPAN 4350 Harry Howard Tulane University.

Presentaciones similares


Presentación del tema: "Computación con el lenguaje 4 Día 25, 17 mar 14 Cultura computacional en español SPAN 4350 Harry Howard Tulane University."— Transcripción de la presentación:

1 Computación con el lenguaje 4 Día 25, 17 mar 14 Cultura computacional en español SPAN 4350 Harry Howard Tulane University

2 Organización del curso Las grabaciones y las presentaciones están disponibles en:http://www.tulane.edu/~howard/SPAN- NLP/http://www.tulane.edu/~howard/SPAN- NLP/ La versión en inglés del tema es http://www.tulane.edu/~howard/CompCult ES/control.html http://www.tulane.edu/~howard/CompCult ES/control.html Las notas están en el Gradebook de Blackboard. 19-mar-14SPAN 4350 - Harry Howard - Tulane University2

3 REPASO 19-mar-14SPAN 4350 - Harry Howard - Tulane University3

4 Convertir texto en Text >>> import funciones >>> texto = funciones.cargaTexto() >>> len(texto) 14879 >>> import nltk >>> from nltk.text import Text >>> T = Text(texto) >>> len(T) 14879 >>> 19-mar-14SPAN 4350 - Harry Howard - Tulane University4

5 19-mar-14SPAN 4350 - Harry Howard - Tulane University5 Funciones para las distribuciones de frecuencia de NLTK df = FreqDist(muestras)crear una distribución de frecuencias con 'muestras' df.inc(muestra)incrementar el recuento de 'muestra' (ver siguiente) df['amor']mostrar el número de veces que ocurre 'amor' df.freq('amor')la frecuencia de 'amor' df.keys()ordenar las muestras en orden decreciente for muestra in df:iterar sobre las muestras en orden decreciente df.N()el número total de muestras df.max()la muestra con el mayor recuento df.tabulate(n,m)tabular la distribución de frecuencias df.plot()cuadro de la distribución de frecuencias df.plot(cumulative=True)cuadro acumulativa de la distribución de frecuencias df1 < df2 ocurren las muestras en df1 con menos frecuencia que en df2?

6 La computación con el lenguaje: La estadística http://nltk.org/book/ch01.htmlhttp://nltk.org/book/ch01.html, NLPP 1.3 19-mar-14SPAN 4350 - Harry Howard - Tulane University6

7 Palabras vacías (stopwords) Las palabras cortas suelen esconder la frecuencia de las palabras que nos interesan de un texto. NLTK dispone de listas de estas palabras en varios idiomas. Están en la carpeta 'stopwords' en la carpeta 'corpora'. 19-mar-14SPAN 4350 - Harry Howard - Tulane University7

8 Hay dos formas de acceder a ellas >>> import nltk # La forma directa >>> temp = nltk.corpus.stopwords.words('spanish') # La forma indirecta >>> from nltk.corpus import stopwords >>> temp = stopwords.words('spanish') # El resultado es el mismo para las dos: >>> vacias[:50] ['de', 'la', 'que', 'el', 'en', 'y', 'a', 'los', 'del', 'se', 'las', 'por', 'un', 'para', 'con', 'no', 'una', 'su', 'al', 'lo', 'como', 'm\xc3\xa1s', 'pero', 'sus', 'le', 'ya', 'o', 'este', 's\xc3\xad', 'porque', 'esta', 'entre', 'cuando', 'muy', 'sin', 'sobre', 'tambi\xc3\xa9n', 'me', 'hasta', 'hay', 'donde', 'quien', 'desde', 'todo', 'nos', 'durante', 'todos', 'uno', 'les', 'ni'] >>> len(temp) 313 # Convertir a Unicode >>> vacias = [p.decode('utf8') for p in temp] >>> vacias[:50] [u'de', u'la', u'que', u'el', u'en', u'y', u'a', u'los', u'del', u'se', u'las', u'por', u'un', u'para', u'con', u'no', u'una', u'su', u'al', u'lo', u'como', u'm\xe1s', u'pero', u'sus', u'le', u'ya', u'o', u'este', u's\xed', u'porque', u'esta', u'entre', u'cuando', u'muy', u'sin', u'sobre', u'tambi\xe9n', u'me', u'hasta', u'hay', u'donde', u'quien', u'desde', u'todo', u'nos', u'durante', u'todos', u'uno', u'les', u'ni'] 19-mar-14SPAN 4350 - Harry Howard - Tulane University8

9 Distribución de frecuencia condicionada NLPP 2.2 19-mar-14SPAN 4350 - Harry Howard - Tulane University9

10 19-mar-14SPAN 4350 - Harry Howard - Tulane University10 Distribución de frecuencia condicionada Una distribución de frecuencia condicionada es una colección de distribuciones de frecuencia, cada una para una condición diferente. La condición suele ser la categoría del texto. La Figura 2.4 muestra un fragmento de una distribución de frecuencia condicionada que tiene sólo dos condiciones, una para un texto de prensa y otra para un texto de novela románica.

11 19-mar-14SPAN 4350 - Harry Howard - Tulane University11 Figura 2.4 Contar palabras que aparecen en una colección de textos (una distribución de frecuencia condicionada).

12 19-mar-14SPAN 4350 - Harry Howard - Tulane University12 Emparejamiento de evento (muestra) y condición Una distribución de frecuencia cuenta eventos observables  Para nosotros, un evento es la aparición de una palabra en un texto.  O sea, vamos a tomar una muestra (sample) de un texto. Una distribución de frecuencia condicionada empareja un evento con una condición.  O sea, una muestra con una condición. En lugar de procesar una secuencia de palabras, lo que se procesa es una secuencia de pares de palabra (muestra) y condición.

13 19-mar-14SPAN 4350 - Harry Howard - Tulane University13 Un corpus con categorías El Corpus de Brown tiene 15 categorías: >>> from nltk.corpus import brown >>> brown.categories() ['adventure', 'belles_lettres', 'editorial', 'fiction', 'government', 'hobbies','humor', 'learned', 'lore', 'mystery', 'news', 'religion', 'reviews', 'romance','science_fiction'] >>> brown.words(categories='news') ['The', 'Fulton', 'County', 'Grand', 'Jury', 'said',...]

14 19-mar-14SPAN 4350 - Harry Howard - Tulane University14 Muestra de emparejamiento Los tokens de cada categoría están emparejados con la categoría, de esta forma: [( 'news', 'The' ), ('news', 'Fulton' ), ('news', 'County' ),...] O sea, cada par tiene la forma (condición, muestra). Si procesáramos el Corpus de Brown por género, habría 15 condiciones (una por género) y 1.161.192 muestras (una por palabra).

15 19-mar-14SPAN 4350 - Harry Howard - Tulane University15 Como procesar por condición #Se crea una lista de dos géneros, para simplificar: >>> gen = ['news', 'romance'] #Se crea una lista de pares (género, palabra): >>> genero_palabra = [(g, p) #… revisando cada género: for g in gen #… revisando cada palabra del género: for p in brown.words(categories=g)] #Se crea la distribución: >>> from nltk.probability import ConditionalFreqDist >>> dfc = nltk.ConditionalFreqDist(genero_palabra)

16 19-mar-14SPAN 4350 - Harry Howard - Tulane University16 Lo anterior sin comentarios >>> gen = ['news', 'romance'] >>> genero_palabra = [(g, p) for g in gen for p in brown.words(categories=g)] >>> from nltk.probability import ConditionalFreqDist >>> dfc = nltk.ConditionalFreqDist(genero_palabra)

17 19-mar-14SPAN 4350 - Harry Howard - Tulane University17 Comprobar el resultado >>> len(genero_palabra) 170576 >>> genero_palabra[:4] [('news', 'The'), ('news', 'Fulton'), ('news', 'County'), ('news', 'Grand')] >>> genero_palabra[-4:] [('romance', 'afraid'), ('romance', 'not'), ('romance', "''"), ('romance', '.')] >>> dfc >>> dfc.conditions() ['news', 'romance'] >>> dfc['news'] >>> dfc['romance'] >>> dfc['romance']['could'] 193 >>> list(dfc['romance']) [',', '.', 'the', 'and', 'to', 'a', 'of', '``', "''", 'was', 'with', 'you', 'for', 'at', 'He', 'on', 'him','said', '!' 'I', 'in', 'he', 'had','?', 'her', 'that', 'it', 'his', 'she',...]

18 El próximo día Tráete el portátil a clase. P6 Análisis de textos con NLTK 19-mar-14SPAN 4350 - Harry Howard - Tulane University18


Descargar ppt "Computación con el lenguaje 4 Día 25, 17 mar 14 Cultura computacional en español SPAN 4350 Harry Howard Tulane University."

Presentaciones similares


Anuncios Google