Wie andere bereits erwähnt, nltk
Verwendung wäre die beste Wahl, wenn Sie etwas stabiler wollen, und skalierbar. Es ist in hohem Maße konfigurierbar.
Allerdings hat es den Nachteil einer ziemlich steilen Lernkurve, wenn Sie die Standardeinstellungen optimieren möchten.
Ich bin einmal auf eine Situation gestoßen, wo ich eine Tüte mit Worten haben wollte. Das Problem war, es betroffene Artikel über Technologien mit exotischen Namen voller -
, _
, etc. wie vue-router
oder _.js
usw.
Die Standardkonfiguration von nltk des word_tokenize
ist vue-router
in zwei separaten vue
und router
zur Trennung von Worten, zum Beispiel . Ich spreche nicht einmal über _.js
.
Also für das, was es wert ist, schrieb ich diese kleine Routine, um alle Wörter in eine list
, basierend auf meinen eigenen Satzzeichen Tokenized zu bekommen.
import re
punctuation_pattern = ' |\.$|\. |, |\/|\(|\)|\'|\"|\!|\?|\+'
text = "This article is talking about vue-router. And also _.js."
ltext = text.lower()
wtext = [w for w in re.split(punctuation_pattern, ltext) if w]
print(wtext)
# ['this', 'article', 'is', 'talking', 'about', 'vue-router', 'and', 'also', '_.js']
Diese Routine kann leicht mit Patty3118 beantworten über collections.Counter
, kombiniert werden, der Sie führen könnte zu wissen, welche Anzahl von Malen _.js
in dem Artikel erwähnt wurde, zum Beispiel.
Ich bin nicht den verknüpften Artikel folgen. (Ich verstehe nicht, wie sie von einem Diktat zu den zwei "Vektoren" gehen, die sie haben). In jedem Fall werden Sie wahrscheinlich am Ende einen 'collections.Counter' verwenden - obwohl Sie vielleicht auch erklären möchten, was ein' tf-idf' ist ... – mgilson