# aaktug/affa---sentiment-analysis architecture

> Architecture diagram of the GitHub repository aaktug/affa---sentiment-analysis, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-28). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/aaktug/affa---sentiment-analysis
- Repository: https://github.com/aaktug/affa---sentiment-analysis

## Overview

Depo, duygu analizi için veri temizleme, etiket tutarlılığı süzme, FastText vektörleme ve AFFA-LSTM modeliyle sınıflandırma aşamalarını içerir. Ana akış, ara dosyalar üzerinden ilerler; model betiği ayrıca değerlendirme metrikleri ve grafikler üretir. Kaynak örnekleri ön işleme ve vektörleme aktarımını destekliyor. Etiket süzme betiğinin sonunda tanımsız `df_clean` değişkeni kullanıldığı için bu aşamanın mevcut haliyle çıktı ürettiği doğrulanamıyor; bağlantı README’de belgelenen amaç olarak gösterilmiştir. Harici veri ve model dosyalarının konumları örneklerde yer tutucudur.

Main entry points: [`4 - LSTM3_Attention_AFFA.py`](https://github.com/aaktug/affa---sentiment-analysis/blob/main/4%20-%20LSTM3_Attention_AFFA.py) (Eğitim ve değerlendirme), [`3 - Vektor.py`](https://github.com/aaktug/affa---sentiment-analysis/blob/main/3%20-%20Vektor.py) (FastText vektörleme), [`2- Tutarsiz_Etiket_Belirleme.py`](https://github.com/aaktug/affa---sentiment-analysis/blob/main/2-%20Tutarsiz_Etiket_Belirleme.py) (Etiket tutarlılığı), [`1- Veri_on_isleme.py`](https://github.com/aaktug/affa---sentiment-analysis/blob/main/1-%20Veri_on_isleme.py) (Metin ön işleme)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_preparation["Veri hazırlama"]
  node_preprocess["Metin ön işleme"]
end

subgraph group_filtering["Etiket süzme"]
  node_label_filter["Etiket tutarlılığı"]
end

subgraph group_representation["Vektörleme"]
  node_vectorize["FastText vektörleme<br/>[3 - Vektor.py]"]
end

subgraph group_classification["Model ve değerlendirme"]
  node_model_script["Eğitim ve değerlendirme"]
  node_encoders["LSTM kodlayıcılar"]
  node_temporal_attention["Zamansal dikkat"]
  node_affa_fusion["AFFA füzyon"]
  node_classifier["Duygu sınıflandırıcı"]
  node_evaluation["Metrikler ve analizler"]
end

node_data_source(("Duygu verisi"))
node_clean_csv["Temiz veri CSV"]
node_roberta["CardiffNLP RoBERTa"]
node_filtered_csv["Etiketli veri CSV"]
node_fasttext[("FastText vektörleri")]
node_features["Dizi vektörleri X"]
node_labels["Etiket dizisi y"]
node_saved_model["Eğitilmiş model"]
node_predictions["Tahmin dizileri"]

node_data_source -->|"veri sağlar"| node_preprocess
node_preprocess -->|"CSV yazar"| node_clean_csv
node_clean_csv -->|"CSV okur"| node_label_filter
node_label_filter -->|"tahmin ister"| node_roberta
node_label_filter -.->|"eşleşenleri kaydetmesi amaçlanır"| node_filtered_csv
node_filtered_csv -->|"CSV okur"| node_vectorize
node_vectorize -->|"vektörleri yükler"| node_fasttext
node_vectorize -->|"X kaydeder"| node_features
node_vectorize -->|"y kaydeder"| node_labels
node_features -->|"X yükler"| node_model_script
node_labels -->|"y yükler"| node_model_script
node_model_script -->|"kodlayıcıları kurar"| node_encoders
node_model_script -->|"dikkat katmanı kurar"| node_temporal_attention
node_model_script -->|"füzyonu kurar"| node_affa_fusion
node_model_script -->|"sınıflandırıcıyı kurar"| node_classifier
node_encoders -->|"temsil sağlar"| node_affa_fusion
node_temporal_attention -->|"temsil sağlar"| node_affa_fusion
node_affa_fusion -->|"birleştirilmiş temsil verir"| node_classifier
node_model_script -->|"model kaydeder"| node_saved_model
node_model_script -->|"test verisini değerlendirir"| node_evaluation
node_model_script -->|"tahminleri kaydeder"| node_predictions

click node_preprocess "https://github.com/aaktug/affa---sentiment-analysis/blob/main/1-%20Veri_on_isleme.py"
click node_label_filter "https://github.com/aaktug/affa---sentiment-analysis/blob/main/2-%20Tutarsiz_Etiket_Belirleme.py"
click node_vectorize "https://github.com/aaktug/affa---sentiment-analysis/blob/main/3%20-%20Vektor.py"
click node_model_script "https://github.com/aaktug/affa---sentiment-analysis/blob/main/4%20-%20LSTM3_Attention_AFFA.py"
click node_encoders "https://github.com/aaktug/affa---sentiment-analysis/blob/main/4%20-%20LSTM3_Attention_AFFA.py"
click node_temporal_attention "https://github.com/aaktug/affa---sentiment-analysis/blob/main/4%20-%20LSTM3_Attention_AFFA.py"
click node_affa_fusion "https://github.com/aaktug/affa---sentiment-analysis/blob/main/4%20-%20LSTM3_Attention_AFFA.py"
click node_classifier "https://github.com/aaktug/affa---sentiment-analysis/blob/main/4%20-%20LSTM3_Attention_AFFA.py"
click node_evaluation "https://github.com/aaktug/affa---sentiment-analysis/blob/main/4%20-%20LSTM3_Attention_AFFA.py"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_preprocess toneBlue
class node_label_filter,node_fasttext toneAmber
class node_vectorize toneMint
class node_model_script,node_encoders,node_temporal_attention,node_affa_fusion,node_classifier,node_evaluation toneRose
class node_data_source,node_clean_csv,node_roberta,node_filtered_csv,node_features,node_labels,node_saved_model,node_predictions toneIndigo
```

## Components

### Veri hazırlama

- [Metin ön işleme](https://github.com/aaktug/affa---sentiment-analysis/blob/main/1-%20Veri_on_isleme.py): `1- Veri_on_isleme.py`

### Etiket süzme

- [Etiket tutarlılığı](https://github.com/aaktug/affa---sentiment-analysis/blob/main/2-%20Tutarsiz_Etiket_Belirleme.py): `2- Tutarsiz_Etiket_Belirleme.py`

### Vektörleme

- [FastText vektörleme](https://github.com/aaktug/affa---sentiment-analysis/blob/main/3%20-%20Vektor.py): `3 - Vektor.py`

### Model ve değerlendirme

- [Eğitim ve değerlendirme](https://github.com/aaktug/affa---sentiment-analysis/blob/main/4%20-%20LSTM3_Attention_AFFA.py): `4 - LSTM3_Attention_AFFA.py`
- [LSTM kodlayıcılar](https://github.com/aaktug/affa---sentiment-analysis/blob/main/4%20-%20LSTM3_Attention_AFFA.py): `4 - LSTM3_Attention_AFFA.py`
- [Zamansal dikkat](https://github.com/aaktug/affa---sentiment-analysis/blob/main/4%20-%20LSTM3_Attention_AFFA.py): `4 - LSTM3_Attention_AFFA.py`
- [AFFA füzyon](https://github.com/aaktug/affa---sentiment-analysis/blob/main/4%20-%20LSTM3_Attention_AFFA.py): `4 - LSTM3_Attention_AFFA.py`
- [Duygu sınıflandırıcı](https://github.com/aaktug/affa---sentiment-analysis/blob/main/4%20-%20LSTM3_Attention_AFFA.py): `4 - LSTM3_Attention_AFFA.py`
- [Metrikler ve analizler](https://github.com/aaktug/affa---sentiment-analysis/blob/main/4%20-%20LSTM3_Attention_AFFA.py): `4 - LSTM3_Attention_AFFA.py`

### Other components

- **Duygu verisi**
- **Temiz veri CSV**
- **CardiffNLP RoBERTa**
- **Etiketli veri CSV**
- **FastText vektörleri**
- **Dizi vektörleri X**
- **Etiket dizisi y**
- **Eğitilmiş model**
- **Tahmin dizileri**

## Connections

- Duygu verisi → Metin ön işleme: veri sağlar
- Metin ön işleme → Temiz veri CSV: CSV yazar
- Temiz veri CSV → Etiket tutarlılığı: CSV okur
- Etiket tutarlılığı → CardiffNLP RoBERTa: tahmin ister
- Etiket tutarlılığı → Etiketli veri CSV: eşleşenleri kaydetmesi amaçlanır
- Etiketli veri CSV → FastText vektörleme: CSV okur
- FastText vektörleme → FastText vektörleri: vektörleri yükler
- FastText vektörleme → Dizi vektörleri X: X kaydeder
- FastText vektörleme → Etiket dizisi y: y kaydeder
- Dizi vektörleri X → Eğitim ve değerlendirme: X yükler
- Etiket dizisi y → Eğitim ve değerlendirme: y yükler
- Eğitim ve değerlendirme → LSTM kodlayıcılar: kodlayıcıları kurar
- Eğitim ve değerlendirme → Zamansal dikkat: dikkat katmanı kurar
- Eğitim ve değerlendirme → AFFA füzyon: füzyonu kurar
- Eğitim ve değerlendirme → Duygu sınıflandırıcı: sınıflandırıcıyı kurar
- LSTM kodlayıcılar → AFFA füzyon: temsil sağlar
- Zamansal dikkat → AFFA füzyon: temsil sağlar
- AFFA füzyon → Duygu sınıflandırıcı: birleştirilmiş temsil verir
- Eğitim ve değerlendirme → Eğitilmiş model: model kaydeder
- Eğitim ve değerlendirme → Metrikler ve analizler: test verisini değerlendirir
- Eğitim ve değerlendirme → Tahmin dizileri: tahminleri kaydeder
