Dies sollte im Grunde das gleiche wie das Zählen alles anderen in Python aussehen. Mit spaCy können Sie einfach über das Dokument iterieren, und Sie erhalten eine Folge von Token-Objekten zurück. Diese können verwendet werden, um auf die Anmerkungen zuzugreifen.
from __future__ import print_function, unicode_literals
import spacy
from collections import defaultdict, Counter
nlp = spacy.load('en')
pos_counts = defaultdict(Counter)
doc = nlp(u'My text here.')
for token in doc:
pos_counts[token.pos][token.orth] += 1
for pos_id, counts in sorted(pos_counts.items()):
pos = doc.vocab.strings[pos_id]
for orth_id, count in counts.most_common():
print(pos, count, doc.vocab.strings[orth_id])
Beachten Sie, dass die Attribute .orth und .pos Ganzzahlen sind. Sie können die Zeichenfolgen, denen sie zugeordnet sind, über die Attribute .orth_ und .pos_ abrufen. Das .orth-Attribut ist die nicht normalisierte Ansicht des Tokens, es gibt auch die Zeichnungsansicht .lower, .lemma usw. Möglicherweise möchten Sie eine .norm-Funktion binden, um Ihre eigene String-Normalisierung durchzuführen. Weitere Informationen finden Sie in den Dokumenten.
Die ganzen Zahlen sind nützlich für Ihre Zählungen, da Sie Ihr Zählprogramm viel effizienter machen können, wenn Sie über einen großen Korpus zählen. Sie können die häufigen Zählungen auch in einer Reihe speichern, um die Geschwindigkeit und Effizienz zu erhöhen. Wenn Sie sich nicht damit befassen möchten, können Sie das Attribut .orth_ direkt verwenden oder dessen Alias .text verwenden.
Beachten Sie, dass das Attribut .pos im obigen Snippet einen grobkörnigen Satz von Wortarten-Tags enthält. Die umfangreicheren TreeBank-Tags sind im Attribut .tag verfügbar.