Profilo di Giuliasche

Nome Giuliasche
Indirizzo email n/a
Messaggi3
  • 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 ;(
  • 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.. :embarrassed:




    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)

  • 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