Ako na to word count v Kspread

0

Otázka

Môže mi niekto odporučiť nejaký spôsob, ako môžem urobiť Python kód ako Kspread dotaz?

import pandas as pd 
data = pd.read_csv("elonmusk.csv") 
from collections import Counter
Counter(" ".join(data["tweet"]).split()).most_common(100)

Hľadám pomoc, ak chcete napísať Kspread dotaz, ktorý môžete vytvoriť podobný výstup ako Python kód zobrazená tu.

Analyzovať text z jedného poľa a vrátenie najčastejšie slová.

enter image description here

Verím, že Kspread slovo cloud link tu má podobné riešenie https://docs.mongodb.com/charts/saas/chart-type-reference/word-cloud/ Avšak musím napísať kód v Kspread shell.

Nebol som si istý, ako sa vzťahujú nasledujúce Stackoverflow riešenie v tento odkaz Najčastejšie slovo v Kspread zber

Vďaka vopred za akúkoľvek radu.

mongodb
2021-11-24 00:08:23
1

Najlepšiu odpoveď

1

Dotaz

  • dotaz predpokladá sa, že text je na tweet oblasti
  • zápas sa nájsť slová, regulárny výraz (slovo obsahuje iba alfanumerické znaky tu)
  • odpočinúť si
  • skupina a počet
  • $set opraviť štruktúra (môžete použiť projektu je aj jeho rovnaký)
  • zoradiť podľa word count
  • limit udržať len 100 najobľúbenejších slov

Kód skúšky tu

aggregate(
[{"$match": {"$expr": {"$eq": [{"$type": "$tweet"}, "string"]}}},
 {"$set": 
    {"matches": {"$regexFindAll": {"input": "$tweet", "regex": "\\w+"}}}},
 {"$project": {"tokens": "$matches.match"}},
 {"$unwind": {"path": "$tokens"}},
 {"$group": {"_id": "$tokens", "count": {"$sum": 1}}},
 {"$set": {"word": "$_id", "_id": "$$REMOVE"}},
 {"$sort": {"count": -1}},
 {"$limit": 100}])
2021-12-12 14:34:04

Ahoj Takis_ som naozaj rád, že vaše riešenie. Mal som niekoľko problémov, snaží sa ho spustiť. Najprv som dostal chyba ..... agregát nie je definovaný, tak som pridal do zbierky meno pred váš kód. db.Tweetov.agregát( Teraz som si to chyba .... $regexFindAll potreby "vstupu" byť typu string" mal som skôr, nastavenie pípanie oblasti na text index, ale som klesol index a ja som stále zobrazuje chybové hlásenie $regexFindAll potreby "vstupu" byť typu string" Tak som si skontrolovať, aký typ oblasti je: typeof db.Tweet.findone().tweet vráti reťazec nejaké návrhy?
Christopher

niektoré dokument(y) nemá string tweet, to nie je problém, $match môže udržať iba dokumenty, ktoré majú tweet ako string. Aktualizoval som odpoveď.
Takis _

Funguje perfektne Takis, len som musel urobiť jeden malý upraviť, aby sa do práce v škrupine a že bol volací kód s db. a názov zbierky Tweetov.
Christopher

db.Tweetov.agregát( [{"$zápas": {"$expr": {"$eq": [{"$type": "$tweet"}, "string"]}}}, {"$set": {"zápasy": {"$regexFindAll": {"input": "$tweet", "regulárny výraz": "\\w+"}}}}, {"$projekt": {"tokeny": "$zápasov.zápas"}}, {"$odpočinúť": {"cestu": "$tokeny"}}, {"$skupiny": {"_id": "$tokeny", "počítať": {"$súčet": 1}}}, {"$nastavte": {"slovo": "$_id", "_id": "$$ODSTRÁNIŤ"}}, {"$zoradiť": {"počítať": -1}}, {"$limit": 100}])
Christopher

V iných jazykoch

Táto stránka je v iných jazykoch

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................