Skip to content

Fatihparm/afyar_process_data_api

Repository files navigation

AFYAR Data Processing API

AFYAR (Afet Yardım Platformu) için geliştirilmiş sosyal medya verilerini işleyen ve doğal afet durumlarını analiz eden Python uygulamasıdır. Bu sistem, sosyal medya platformlarından gelen ham verileri analiz ederek afet durumlarını tespit eder ve adres bilgilerini doğrulayarak haritaya işler.

Özellikler

Veri Analizi

  • Sosyal Medya İçerik Analizi: Tweet'leri ve sosyal medya gönderilerini Google Gemini AI ile analiz eder
  • Afet Tespiti: İçeriğin doğal afet (deprem, yangın, sel, çökme) ile ilgili olup olmadığını belirler
  • Adres Çıkarımı: Metinlerden adres bilgilerini (il, ilçe, mahalle, cadde, sokak, numara) strukturlu şekilde çıkarır

Görsel İşleme

  • OCR Teknolojisi: Tesseract ile görsellerdeki metinleri okur
  • Görsel-Metin Birleştirme: Görsel içeriği metinle birleştirerek daha kapsamlı analiz yapar

Coğrafi Doğrulama

  • Google Maps API: Çıkarılan adresleri Google Maps API ile doğrular
  • Koordinat Belirleme: Geçerli adresler için enlem/boylam koordinatları elde eder
  • Harita Bağlantısı: Her geçerli adres için Google Maps bağlantısı oluşturur

Otomatik İşleme

  • Periyodik Çalışma: Belirlenen aralıklarla otomatik olarak yeni verileri işler
  • Toplu İşleme: Mevcut tüm verileri tek seferde işleme kapasitesi
  • Rate Limiting: API limitlerini aşmamak için batch processing

Teknoloji Stack

  • Python 3.x
  • Google Gemini AI - Metin analizi ve NLP
  • Google Maps Geocoding API - Adres doğrulama
  • Tesseract OCR - Görsel metin okuma
  • PIL (Pillow) - Görsel işleme
  • Requests - HTTP API iletişimi
  • Schedule - Periyodik görev yönetimi

Kurulum

Gereksinimler

pip install requests google-generativeai pillow pytesseract python-dotenv schedule

Tesseract OCR Kurulumu

Windows:

# Tesseract OCR'ı indirin ve kurun
# https://github.com/UB-Mannheim/tesseract/wiki

Linux/Mac:

sudo apt-get install tesseract-ocr
# veya
brew install tesseract

Çevre Değişkenleri

.env dosyası oluşturun:

GENAI_API_KEY=your_gemini_api_key
GOOGLE_API_KEY=your_google_maps_api_key
AUTH_TOKEN=your_auth_token
SCRAPED_DATA_API=https://api.afyar.com/scraped-datas
FILTERED_DATA_API=https://api.afyar.com/filtered-datas
MARK_USED_API=https://api.afyar.com/mark-used

Kullanım

Tek Seferlik Tam İşleme

python social_media_analyzer.py

Periyodik İşleme

# Kodda interval_minutes parametresini ayarlayın
run_periodically(interval_minutes=5)  # 5 dakikada bir

Veri Akışı

Ham Sosyal Medya Verisi → AI Analizi → Adres Doğrulama → Filtrelenmiş Veri → Harita İşleme

1. Veri Çekme

  • /scraped-datas endpoint'inden ham tweet verileri çekilir
  • Her veri için text, image_url ve scrapedDataId bilgileri alınır

2. İçerik Analizi

  • Gemini AI ile metin analiz edilir
  • Afet durumu tespit edilir
  • Adres bilgileri JSON formatında çıkarılır

3. Görsel İşleme (Opsiyonel)

  • Eğer tweet'te görsel varsa OCR ile metin çıkarılır
  • Görsel metni ana metinle birleştirilir

4. Adres Doğrulama

  • Google Maps API ile adres geçerliliği kontrol edilir
  • Koordinat bilgileri alınır
  • Google Maps bağlantısı oluşturulur

5. Veri Kaydetme

  • Geçerli veriler /filtered-datas endpoint'ine POST edilir
  • İşlenen veriler /mark-used endpoint'i ile işaretlenir

Çıktı Formatı

Başarılı Analiz Örneği

{
  "is_valid": true,
  "reason": "geçerli afet verisi",
  "address": {
    "il": "İstanbul",
    "ilce": "Kadıköy",
    "mahalle": "Hasanpaşa Mahallesi",
    "cadde": "Uzunçayır Caddesi",
    "sokak": null,
    "no": "No:2"
  },
  "summary_note": "Deprem sonrası yıkım raporu",
  "address_link": "https://www.google.com/maps/search/?api=1&query=41.0082,28.9784",
  "coordinates": [41.0082, 28.9784]
}

Analiz Kriterleri

Afet Tespiti

  • Deprem
  • Yangın
  • Sel/Su baskını
  • Yapı çökmesi
  • Acil durum çağrıları

Adres Doğrulama

  • Minimum sokak ve numara bilgisi gerekli
  • Google Maps'te doğrulanabilir olmalı
  • Çok genel adresler (sadece il/ilçe) reddedilir

Performans Özellikleri

  • Batch Processing: Her 5 tweet işlendikten sonra 60 saniye bekleme
  • Error Handling: Kapsamlı hata yönetimi ve loglama
  • Rate Limiting: API limitlerini koruma
  • UTF-8 Support: Türkçe karakter desteği

Katkıda Bulunma

Bu proje AFYAR afet yardım platformunun bir parçasıdır. Geliştirme ve iyileştirme önerileri için lütfen iletişime geçin.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published