Eine Streamlit-App zur Berechnung von Wort-Analogien in Deutsch und Englisch. Die App nutzt Word Embeddings (FastText für Deutsch, GloVe für Englisch), um semantische Beziehungen zwischen Wörtern zu analysieren.
- Berechnung von Wort-Analogien (z.B. "Deutschland : Berlin = Frankreich : Paris")
- Unterstützung für deutsche und englische Sprache
- Ähnliche Wörter finden
- Interaktive Visualisierung der Ergebnisse
- Python 3.9+
- Poetry für Dependency Management
- Repository klonen:
git clone [repository-url]
cd analogierechner
- Dependencies installieren:
poetry install
- Modell-Dateien herunterladen:
- FastText Deutsch: https://dl.fbaipublicfiles.com/fasttext/vectors-crawl/cc.de.300.bin.gz
- GloVe English: https://www.kaggle.com/datasets/rtatman/glove-global-vectors-for-word-representation?resource=download
- Modell-Dateien entpacken und in
data/
Verzeichnis platzieren:
data/
├── cc.de.300.bin
└── glove.6B.100d.txt
- App starten:
poetry run streamlit run streamlit_app.py
- Google Cloud Account
- Google Cloud CLI installiert
- Billing aktiviert
- Google Cloud CLI installieren & einrichten:
# Für Mac
brew install google-cloud-sdk
gcloud auth login
- Projekt erstellen/auswählen:
gcloud projects create [PROJECT-ID] # Optional, falls noch kein Projekt existiert
gcloud config set project [PROJECT-ID]
- APIs aktivieren:
gcloud services enable \
artifactregistry.googleapis.com \
cloudbuild.googleapis.com \
run.googleapis.com \
storage.googleapis.com
- Service Account einrichten:
# Service Account erstellen
gcloud iam service-accounts create cloudbuild-deployer \
--description="Cloud Build Deployer" \
--display-name="Cloud Build Deployer"
# Rollen zuweisen
export PROJECT_ID=[PROJECT-ID]
gcloud projects add-iam-policy-binding $PROJECT_ID \
--member="serviceAccount:cloudbuild-deployer@${PROJECT_ID}.iam.gserviceaccount.com" \
--role="roles/cloudbuild.builds.builder"
gcloud projects add-iam-policy-binding $PROJECT_ID \
--member="serviceAccount:cloudbuild-deployer@${PROJECT_ID}.iam.gserviceaccount.com" \
--role="roles/storage.objectViewer"
gcloud projects add-iam-policy-binding $PROJECT_ID \
--member="serviceAccount:cloudbuild-deployer@${PROJECT_ID}.iam.gserviceaccount.com" \
--role="roles/run.admin"
- Storage Bucket für Modelle erstellen & Dateien hochladen:
# Bucket erstellen
gsutil mb -l europe-west3 gs://${PROJECT_ID}_models
# Modell-Dateien hochladen
gsutil cp data/cc.de.300.bin gs://${PROJECT_ID}_models/data/
gsutil cp data/glove.6B.100d.txt gs://${PROJECT_ID}_models/data/
gsutil cp data/de_50k_most_frequent.txt gs://${PROJECT_ID}_models/data/
gsutil cp data/en_50k_most_frequent.txt gs://${PROJECT_ID}_models/data/
- App und API deployen
gcloud auth login
gcloud run deploy analogierechner \
--source . \
--platform managed \
--region europe-west3 \
--allow-unauthenticated \
--service-account="cloudbuild-deployer@${PROJECT_ID}.iam.gserviceaccount.com"
## Entwicklung mit Logs
docker-compose up --build
## Entwicklung im Hintergrund
docker-compose up -d --build
=> danach: http://localhost:8080
## um den memory usage zu sehen:
docker stats
## Logs anschauen
docker-compose logs -f
## Container stoppen
docker-compose down
-
Billing Alarm einrichten:
- Google Cloud Console → Billing → Budgets & Alerts
- "CREATE BUDGET" wählen
- Budget und Alarmschwellen festlegen
-
Typische Kosten:
- Cloud Run: Free Tier mit 2 Millionen Requests/Monat
- Storage: Free Tier mit 5GB/Monat
- Geschätzte Kosten bei mittlerer Nutzung: $5-15/Monat
analogierechner/
├── data/ # Modell-Dateien
├── logs/
├── src/
│ ├── core/ # Core Funktionalität
│ │ └── embedding_handler.py
├── streamlit_app.py # Hauptanwendung
├── Dockerfile
├── pyproject.toml
└── README.md
- Streamlit für das Frontend
- FastText & GloVe für Word Embeddings
- Poetry für Dependency Management
- Google Cloud Storage für Modell-Speicherung
- Google Cloud Deploy für Deployment
- Google Cloud Run für Hosting
https://github.com/hermitdave/FrequencyWords/blob/master/content/2018/de/de_50k.txt
https://github.com/hermitdave/FrequencyWords/blob/master/content/2018/en/en_50k.txt