2017-03-05 1 views
0

Ich möchte die Liste der Wörter und ihre Tags sortieren, von demjenigen, der die größte Anzahl von Tags zu den niedrigsten hat.Wie kann ich Wörter im Korpus basierend auf mehreren Tags sortieren? Python, nltk

Bisher habe ich dies:

from collections import defaultdict 

tagged = defaultdict(set) 
for w in brown: 
    tagged[w[0]].add(w[1]) 

for word in tagged: 
    if len(tagged[word])>1: 
     print (word, tagged[word]) 

Es druckt eine Liste aller Wörter, die mehr als 1 Tag haben. Wie sortiere ich es, damit die Bestellung abläuft?

Antwort

1

Try this:

items = sorted(tagged.items(), key=lambda item: len(item[1]), reverse=True) 
for word, tags in items: 
    if len(tags) <= 1: 
     break 
    print(word, tags) 

Es werden alle Einträge von der Länge des Werts sortiert werden, in absteigender Reihenfolge. Die Schleife stoppt, bevor die Einträge der Länge 1 gedruckt werden.

+0

Danke für Hilfe @lenz :) – Ewa

Verwandte Themen