home

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

  1. Ingestion & Cleaning: CSV‑Datei mit URL, Titel, Body in Fenic‑DataFrame laden; body_clip für token‑freundliche Prompts extrahieren; Char‑ und Clip‑Länge berechnen.
  2. Feature Engineering (fenic‑only):
    • has_code Flag via Regex auf Code‑Indicators.
    • complexity_bucket (beginner, intermediate, advanced) basierend auf Länge und Code‑Präsenz.
  3. Embeddings & Clustering: semantic.embed auf Titel+Body; Clustering‑Hilfsfunktion zuweisen jedem Datensatz Cluster‑ID und Label; exemplarisches Article auswählen.
  4. Narrative Intent Labeling: Few‑Shot semantic.classify für Kategorien: news/announcement, tutorial/how-to, opinion/thinkpiece, research/explainer, case‑study/showcase; Kosten minimieren via Max‑Rows‑Limit.
  5. Cluster Report Generation: semantic.extract mit Pydantic‑Schema zur Erzeugung von 1–3‑Bullet‑Zusammenfassungen. Ausgabe: cluster_report.csv – Cluster‑ID, Label, Anzahl, exemplarisches Article, Summarien, optionale Schlüsselbegriffe.
  6. Final Feature Table: features.csv, features.parquet mit 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