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.
- 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
- 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
- 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
- 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
- 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
pip install requests google-generativeai pillow pytesseract python-dotenv scheduleWindows:
# Tesseract OCR'ı indirin ve kurun
# https://github.com/UB-Mannheim/tesseract/wikiLinux/Mac:
sudo apt-get install tesseract-ocr
# veya
brew install tesseract.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-usedpython social_media_analyzer.py# Kodda interval_minutes parametresini ayarlayın
run_periodically(interval_minutes=5) # 5 dakikada birHam Sosyal Medya Verisi → AI Analizi → Adres Doğrulama → Filtrelenmiş Veri → Harita İşleme
/scraped-datasendpoint'inden ham tweet verileri çekilir- Her veri için text, image_url ve scrapedDataId bilgileri alınır
- Gemini AI ile metin analiz edilir
- Afet durumu tespit edilir
- Adres bilgileri JSON formatında çıkarılır
- Eğer tweet'te görsel varsa OCR ile metin çıkarılır
- Görsel metni ana metinle birleştirilir
- Google Maps API ile adres geçerliliği kontrol edilir
- Koordinat bilgileri alınır
- Google Maps bağlantısı oluşturulur
- Geçerli veriler
/filtered-datasendpoint'ine POST edilir - İşlenen veriler
/mark-usedendpoint'i ile işaretlenir
{
"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]
}- Deprem
- Yangın
- Sel/Su baskını
- Yapı çökmesi
- Acil durum çağrıları
- Minimum sokak ve numara bilgisi gerekli
- Google Maps'te doğrulanabilir olmalı
- Çok genel adresler (sadece il/ilçe) reddedilir
- 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
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.