2016-05-19 11 views
0

Ich finde Häufigkeitsverteilung für einige Wörter in verschiedenen Genres von Brown Corpus.Unterschied zwischen 'Beispiel' und 'Proben' Schlüsselwort in Python Nltk ConditionalFreqDist

Mein Code:

import nltk 
from nltk.corpus import brown 

cfd = nltk.ConditionalFreqDist(
     (genre, word) 
     for genre in brown.categories() 
     for word in brown.words(categories = genre)) 

genres = ['news', 'religion', 'hobbies', 'science_fiction', 'romance', 'humor'] 
modals = ['can', 'could', 'may', 'might', 'must', 'will'] 

cfd.tabulate(conditions = genres, samples = modals) 

Ausgang für oben Code:

    can could may might must will 
      news 93 86 66 38 50 389 
     religion 82 59 78 12 54  71 
     hobbies 268 58 131 22 83 264 
science_fiction 16 49 4 12 8  16 
     romance 74 193 11 51 45  43 
      humor 16 30 8 8 9  13 

Aber wenn ich ersetzen 'Proben' durch 'Probe' in der letzten Zeile des obigen Codes. Es gibt FreqDist für jedes Wort im Korpus.

Ich kenne den Unterschied zwischen "Probe" und "Proben" nicht?

Vielen Dank.

Antwort

0

cfd.tabulate() ignoriert einfach jedes Schlüsselwortargument, auf das in seiner Implementierung nicht verwiesen wird. Deshalb erzeugt sample=models immer noch eine vollständige Tabelle für die FreqDist. Wenn Sie es ganz weglassen, sollte der Effekt derselbe sein.

Dieses Verhalten ist nicht NLTK-spezifisch, sondern gilt für jede Python-Funktion/Methode, die beliebige Argumentlisten akzeptiert. Ich würde empfehlen, the Python Tutorial Abschnitt darüber zu lesen, finde ich es sehr klar.

+0

Danke llia für die Antwort – a0n1i2k3

+0

Mein Vergnügen, hoffe es hilft :) –

Verwandte Themen