Fenic: Vollständiges, datensatzbasiertes Feature‑Engineering von Textartikeln
Fenic ermöglicht ein komplettes, datensatzbasiertes Feature‑Engineering von Textartikeln – von Ingestion bis zu semantischer Cluster‑ und Intent‑Labeling – komplett innerhalb eines DataFrame‑Frameworks, ohne externe Schleifen oder Pandas.
Key Takeaway
Fenic bietet ein End‑to‑End‑System zur Analyse von Textartikeln. Es unterstützt das Laden von CSV‑Dateien, das Berechnen von Features, Embedding‑ und Clustering‑Algorithmen sowie das Generieren von Narrative‑Intent‑Labels.
Projektziel
Demonstration, wie ein kleiner Artikel‑Korpus (z. B. Medium/TDS‑Posts) mithilfe von Fenic in einen semantischen Feature‑Table umgewandelt wird, inklusive Cluster, Narrative‑Intent‑Labels und Komplexitäts‑Buckets.
Demo‑Setup
Erreichbar via Google Colab; fenic, datasets, python-dotenv als Basis‑Pakete; optionale Installation von spezifischen Modellen wie OpenAI.
Modelle
Zwei Aliase in der Fenic‑Semantik‑Konfiguration – mini (LLM für Extract/Classify) und embed (Embedding‑Model).
Workflow‑Schritte
- Ingestion & Cleaning: CSV‑Datei mit URL, Titel, Body in Fenic‑DataFrame laden;
body_clipfür token‑freundliche Prompts extrahieren; Char‑ und Clip‑Länge berechnen. - Feature Engineering (fenic‑only):
has_codeFlag via Regex auf Code‑Indicators.complexity_bucket(beginner, intermediate, advanced) basierend auf Länge und Code‑Präsenz.
- Embeddings & Clustering:
semantic.embedauf Titel+Body; Clustering‑Hilfsfunktion zuweisen jedem Datensatz Cluster‑ID und Label; exemplarisches Article auswählen. - Narrative Intent Labeling: Few‑Shot
semantic.classifyfür Kategorien: news/announcement, tutorial/how-to, opinion/thinkpiece, research/explainer, case‑study/showcase; Kosten minimieren via Max‑Rows‑Limit. - Cluster Report Generation:
semantic.extractmit Pydantic‑Schema zur Erzeugung von 1–3‑Bullet‑Zusammenfassungen. Ausgabe:cluster_report.csv– Cluster‑ID, Label, Anzahl, exemplarisches Article, Summarien, optionale Schlüsselbegriffe. - Final Feature Table:
features.csv,features.parquetmit allen erstellten Features.
Artefakte
- Standard‑Ausgabe‑Verzeichnis:
/content/out/. - Dateien:
features.csv,features.parquet,cluster_report.csv. - Spaltendefinitionen für
features.csv(URL, Titel, body_clip, char_len, clip_len, has_code, complexity_bucket, intent, cluster, cluster_label).
Code‑Beispiele
df = df.with_columns(
fc.text.length("body_clip").alias("char_len"),
(fc.text.regexp_count("body_clip", r"```|(^|\s)def\s|(^|\s)class\s|::") > fc.lit(0)).alias("has_code")
)
df = df.with_columns(
fc.when((fc.col("char_len") < fc.lit(2500)) & (fc.col("has_code") == fc.lit(False)))
.then(fc.lit("beginner"))
.when((fc.col("char_len") < fc.lit(6000)) & (fc.col("has_code") == fc.lit(True)))
.then(fc.lit("intermediate"))
.otherwise(fc.lit("advanced"))
.alias("complexity_bucket")
)
Verwendete Bibliotheken
Fenic (PySpark‑inspiriert), OpenAI (optional), Python‑Dotenv für API‑Keys.
Anwendung
Ergebnisse können direkt in Dashboards, Agent‑Workflows oder Offline‑Analysen eingesetzt werden.
Related queries
Wie kann Fenic für die Analyse von Blog‑Posts eingesetzt werden?
Welche Vorteile bietet das clustering‑Feature von Fenic?
Wie werden Narrative‑Intent‑Labels mit Fenic generiert?
Quelle: https://github.com/typedef-ai/fenic-examples/tree/main/ai_feature_engineering
