示例#1
0
# 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
示例#2
0
# -*- 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")
示例#3
0
#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'.
示例#4
0
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())
示例#5
0
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")
示例#6
0
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))
示例#7
0
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 "
示例#8
0
# -*- 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