Giuliasche
Profilo di
Nome | Giuliasche |
---|---|
Indirizzo email | n/a |
Messaggi | 3 |
-
- 2016-01-09 09:50:40
- Re: analizzare un testo
- Forum >> Principianti
- Si il file esiste e si chiama "morning has broken.txt". Praticamente quando faccio "run module" e inizio a digitare, esempio "def conta():" e invio mi manda alla riga successiva senza problemi ma non mi fa vedere il "risultato". ho cambiato il testo dopo aver finito il codice perché non mi convinceva e allora ho sostituito a f=open ('...', 'r') il file "morning has beoken.txt", forse è stato quello il problema..aiutoo
-
- 2016-01-09 02:11:56
- Re: analizzare un testo
- Forum >> Principianti
- Ops è vero. La versione è la 2.7 per mac.
Il codice è questo ma non mi da gli output delle funzioni, mentre una volta me li dava.
Non so spiegarmi meglio di così purtroppo..
import nltk
import pprint
import re
import random
global f,testo,tokens, lun
from nltk.collocations import *
f= open ('Morning has broken.txt', 'r') # apre il file in lettura
testo = f.read() # salva il file in una variabile
tokens= nltk.word_tokenize (testo) #divide il testo in token
lun = len(tokens)
def fun(): # definisce una funzione che stampa i token
print (tokens)
def conc(): # definisce una funzione che trova le occorrenze di una parola nel testo
print ("Scegli una parola")
parola = raw_input() #prende l'input da tastiera
x = nltk.Text(tokens)
conc = x.concordance(parola)
print (conc)
def conta(): # definisce una funzione che conta le parole del testo
print (" La lunghezza del testo è di " + str(lun)+ " parole")
# frequenza parole
def altaf():
x=0
y=0
lista_parole = re.split('\s+', testo) # prende una stringa che contiene parole e spazi e la trasforma in una lista di parole in base agli spazi
# Crea dizionario di parole
freq_diz = {}
# costruisce il dizionario
for word in lista_parole:
# conta
try:
freq_dizword += 1
except:
freq_dizword = 1
# crea una lista di tuple: perola & valore frequenza
freq_lista = [(val, key) for key, val in freq_diz.items()]
# ordina per livello di frequenza
freq_lista.sort(reverse=True)
# risultati
for freq, word in freq_lista:
if (freq!=1):
x+=1
print ("Frequenza: " + word + "," + str(freq))
else:
y+=1
print ("Hapax: " + word + "," + str(freq))
print ("Il numero di parole ripetute è "+str(x))
print("Il numero di Hapax é " + str(y))
# ricchezza lessicale
a=x+y #numero di type
b= float(a)/float(lun)
print ("La ricchezza lessicale corrisponde a "+ str(b))
# trova le prime 10 collocazioni
def coll():
bigram_measures = nltk.collocations.BigramAssocMeasures()
finder = BigramCollocationFinder.from_words(tokens)# trova le parole nella lista dei tokens
scored = finder.score_ngrams(bigram_measures.raw_freq)
r= sorted(bigram for bigram, score in scored)[:10]
print(r)
# conta il numero di caratteri presenti nel testo
def conta_caratteri ():
conteggio = {}
for c in testo:
if c in conteggio:
conteggioc += 1
else:
conteggio c = 1
return conteggio
# fa l'analisi sintattica di una frase nominale
def chunk():
print ("Esempio albero sintattico di una frase nominale")
nominale = "NP: {<DT>?<JJ>*<NN>}"
frase = [("Il", "DT"), ("mio", "JJ"), ("migliore", "JJ"), ("amico", "NN"), ("vegetariano", "NN")]
cp = nltk.RegexpParser(nominale)
risultato = cp.parse(frase)
print (risultato)
# classificatore Naive-Bayes per individuare il genere di una parola
def finale(word):
return {'Ultima lettera': word-1}
def genere():
from nltk.corpus import names
names = ([(name, 'male') for name in names.words('male.txt')] + [(name, 'female') for name in names.words('female.txt')])
random.shuffle(names)
featuresets = [(finale(n), g) for (n,g) in names]
train_set, test_set = featuresets[500:], featuresets[:500]
classifier = nltk.NaiveBayesClassifier.train(train_set)
print ("Inserisci di nuovo il nome")
word= raw_input()
print (classifier.classify(finale(word)))
ac= nltk.classify.accuracy(classifier, test_set) #calcolo la percentuale di risposte corrette del classificatore
print ("L'accuratezza del risultato è " + str(ac))
classifier.show_most_informative_features(5)
-
- 2016-01-09 01:35:21
- analizzare un testo
- Forum >> Principianti
- Ciao a tutti, spero mi possiate aiutare!
Premetto che sono proprio impedita e sono alle prime armi.
Io devo lavorare ad un testo con Python, il testo l'ho copiato da internet. Il codice è già stato scritto, ma quando inizio a vedere se funziona non mi scrive l'output delle funzioni che definisco, ma non mi da nemmeno errore.
Vorrei capire se il testo lo devo salvare da qualche altra parte oppure c'è un altro tipo di problema..
Spero mi possiate aiutare! Grazie