# Exercise 1 # 1 from nltk.corpus import cess_esp # 2 print("2.", len(cess_esp.words())) # 3 print("3.", len(cess_esp.sents())) # 4 from nltk.probability import FreqDist first_file = cess_esp.fileids()[0] cess_freq0 = FreqDist(cess_esp.words(first_file)) print("4.", cess_freq0.most_common(20)) # 5 print("5.", [w for w, k in cess_freq0.most_common()]) # 6 print("6.", [w for w, k in cess_freq0.items() if len(w) > 7 and k > 2]) # 7 print("7.", [k for w, k in cess_freq0.most_common()]) print("7b. Freq de aparición de la preposición a", cess_freq0.get("a", 0)) # 8 print("8. No de palabras que aparecen una sola vez:", len([w for w, k in cess_freq0.items() if k == 1])) # 9 print("9. La palabra más frecuente es", cess_freq0.max()) # 10 from nltk.corpus import PlaintextCorpusReader mycorpus = PlaintextCorpusReader("../res/", ".*") # 11
# -*- coding: utf-8 -*- import nltk from nltk.corpus import cess_esp #Pregunta 1.a #forma larga print "pregunta 1a" etiquetado = cess_esp.tagged_words() etiquetas = set(tag for (word, tag) in etiquetado) print etiquetas #otra forma simplificada etiquetado = cess_esp.tagged_words(simplify_tags=True) etiquetas = set(tag for (word, tag) in etiquetado) print etiquetas #pregunta 1.b print "pregunta 1b" for field in cess_esp.fileids(): vocabulario = set([w.lower() for w in cess_esp.words(field)]) print vocabulario #Pregunta 1.c print "pregunta 1c" etiquetado = cess_esp.tagged_words() for i in etiquetado: print i[0], " ", i[1] #Pregunta 1.d print "pregunta 1d" t = cess_esp.parsed_sents()[0] print t #Pregunta 2 print "pregunta 2" from xml.dom import minidom dom = minidom.parse("/home/javier/ALC/python/frase_ancora.xml")
#Ejercicio 1 #1 Acceder al corpus en castellano cess_esp from nltk.corpus import cess_esp as corpus #2 Mostrar el número de palabras que contiene este corpus print(len(corpus.words())) #3 Mostrar el número de frases que contiene print(len(corpus.sents())) #4 Obtener las frecuencias de aparición de los ítems que componen el primer fichero del corpus #anterior. Un ítem es un par (key, value) donde key es la palabra y value es la frecuencia de #aparición de la palabra. Visualizar los 20 más frecuentes. text1 = corpus.words(corpus.fileids()[0]) fdist = FreqDist(text1) print(fdist.most_common(20)) #5 Obtener el vocabulario del primer fichero del corpus (ordenado por frecuencia) #vocxfrec= sorted([(b,a) for a,b in sorted([(y,x) for x,y in fdist.keys()])]) #vocxfrec = sorted([key for key in sorted([(value, key) for key,value in fdist.most_common()])]) vocxfrec = [key for (key, value) in fdist.most_common()] print(vocxfrec) #6 Obtener de forma ordenada las palabras del vocabulario de longitud mayor que 7 y que aparezcan más de 2 veces en el primer fichero del corpus. print([ key for key, value in fdist.most_common() if (len(key) > 7) and (value > 2) ]) #7 Obtener la frecuencia de aparición de las palabras en el primer fichero del corpus. Además, y para el mismo fichero obtener la frecuencia de la palabra 'a'.
from nltk.corpus import cess_esp from nltk.probability import FreqDist fdist = FreqDist(cess_esp.words(cess_esp.fileids()[0])) print("La palabra mas frecuente es ", fdist.max())
from nltk.corpus import PlaintextCorpusReader from nltk.probability import * import os import nltk dir_path = os.path.dirname(os.path.realpath(__file__)) corpus_root = dir_path.replace(".idea", "") nltk.data.path.append(dir_path + "\\NLTK") #EJERCICIO1 print("#act2") print(len(cess_esp.words())) print("#act3") print(len(cess_esp.sents())) print("#act4") text = cess_esp.words(cess_esp.fileids()[0]) fdist = FreqDist(text) print(fdist.most_common(20)) print("#act5") voc = [w for w, f in fdist.most_common()] print(voc) print("#act6") print(list(w for w in voc if len(w) > 7 and fdist[w] > 2)) print("#act7") print(sorted(fdist.values(), key=int, reverse=True)) print("Freq aparición de la preposición a " + str(fdist['a'])) print("#act8")
from nltk.corpus import cess_esp from nltk.probability import * firstfile = cess_esp.words(cess_esp.fileids()[0]) fdist = FreqDist(firstfile) print(fdist.most_common(20))
palabras = len(cess_esp.words()) print("1.1) Cargando Corpus cess_esp...") print( "\n--------------------------------------------------------------------------------\n " ) print("\n\n1.2) Numero de palabras que contiene el corpus: \n" + str(palabras)) #Obtener oraciones del corpus: frases = cess_esp.sents() numFrases = len(cess_esp.sents()) print( "\n--------------------------------------------------------------------------------\n " ) print("\n\n1.3) Numero de frases que contiene el corpus: \n" + str(numFrases)) nomFichero = cess_esp.fileids()[0] texto = cess_esp.words(nomFichero) fdist = FreqDist(texto) # Visualizar los pares (palabra, frecuencia) correspondientes a las 20 palabras más frecuentes: items = fdist.most_common(20) print( "\n--------------------------------------------------------------------------------\n " ) print("\n\n1.4) 20 items mas frecuentes: \n" + str(items)) #Obtener el vocabulario del primer fichero del corpus (ordenado por frecuencia) vocabulario = [ w for w, f in sorted(fdist.items(), key=itemgetter(1), reverse=True) ] print( "\n--------------------------------------------------------------------------------\n "
# -*- coding: utf-8 -*- import nltk from nltk.corpus import cess_esp #Pregunta 1.a #forma larga print "pregunta 1a" etiquetado=cess_esp.tagged_words() etiquetas=set(tag for (word,tag) in etiquetado) print etiquetas #otra forma simplificada etiquetado=cess_esp.tagged_words(simplify_tags=True) etiquetas=set(tag for (word,tag) in etiquetado) print etiquetas #pregunta 1.b print "pregunta 1b" for field in cess_esp.fileids(): vocabulario = set([w.lower() for w in cess_esp.words(field)]) print vocabulario #Pregunta 1.c print "pregunta 1c" etiquetado=cess_esp.tagged_words() for i in etiquetado: print i[0]," ",i[1] #Pregunta 1.d print "pregunta 1d" t=cess_esp.parsed_sents()[0] print t #Pregunta 2 print "pregunta 2" from xml.dom import minidom dom=minidom.parse("/home/javier/ALC/python/frase_ancora.xml")
def checkGrammar(grammar): #mostly for debugging for key in grammar: print key def normalize_clause(tag): """Normalize a single clause tag from the cess_esp tagset. """ newTag = tag if newTag[0] == 'S': newTag = 'S' newTag = newTag.partition('-')[ 0] #removes semantic annotation from clauses if '.fs' in newTag: newTag = newTag.partition('.fs')[0] if '.fp' in newTag: newTag = newTag.partition('.fp')[0] if '.ms' in newTag: newTag = newTag.partition('.ms')[0] if '.mp' in newTag: newTag = newTag.partition('.mp')[0] if newTag[-3:] == '.co': newTag = newTag[:-3] return newTag MakeSpanishGrammar(cess_esp.fileids()) #the grammar is very long. be careful. #['t5-9.tbf', u't6-0.tbf', u't6-1.tbf', u't6-2.tbf', u't6-3.tbf', u't6-4.tbf', u't6-5.tbf', u't6-6.tbf'] for testing