Forum
>>
Principianti
>>
analizzare un testo
Pagina: 1
Esegui il login per scrivere una risposta.
Pagina: 1
Scritto da Giuliasche |
2016-01-09 01:35:21 - analizzare un testo
|
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 |
|
Scritto da Daniele aka Palmux |
2016-01-09 01:53:59 - Re: analizzare un testo
|
Ciao e benvenuta.
Hai dato un po' poche informazioni, come ad esempio su che piattaforma ti trovi e che versione del linguaggi usi. Comunque sia, senza capire esattamente quale sia il problema, dai un'occhiata qui per iniziare. Cya |
|
Scritto da Giuliasche |
2016-01-09 02:11:56 - Re: analizzare un testo
|
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) |
|
Scritto da Daniele aka Palmux |
2016-01-09 02:20:09 - Re: analizzare un testo
|
In Python la formattazione del codice è parte integrante del codice stesso. Per questo, anche e soprattutto se il file non è di poche righe, va formattato correttamente per far capire qualcosa a chi legge.
Per questo puoi usare il pulsante che formatta il codice (quello prima della tavolozza dei colori) o usare una piattaforma come Pastebin postando poi l'url. Cosa intendi per avevi un riscontro ed ora non lo hai? Partiamo dalla cosa più banale, esiste il file Morning has broken.txt (Cat Stevens?) dove esegui lo script e contiene al suo interno qualcosa? Cya |
|
Scritto da Giuliasche |
2016-01-09 09:50:40 - Re: analizzare un testo
|
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
|
Pagina: 1
Esegui il login per scrivere una risposta.