Kafayı yiyecektim! Bir veri seti üzerinde çalışıyordum, kullanıcı yorumları berbat bir haldeydi. HTML tag'leri, fazla boşluklar, garip karakterler... Hemen bir Python scripti yazayım, re modülüyle her şeyi temizleyeyim dedim. Meğerse kendi beynimi de temizleyecekmişim.
Beynim Artık Regex Motoru Gibi Çalışıyor
Şaka gibi ama, markette reyon etiketlerine bakarken içimden "\s{2,}'yi replace etmeliyim" diye geçiriyorum. Bir arkadaşım mesaj atıyor, "N'aber?" diye. Ben ilk bakışta "N'aber\?" diye okuyorum, çünkü soru işaretini escape karakter olarak algılamaya başladım. Telefon numarası görünce aklıma hemen "(\d{3})[-.]?(\d{3})[-.]?(\d{4})" geliyor. Bu ne lan?
Mükemmeliyetçilik Tuzağı
Asıl sorun şurada başladı: Temizleme işini o kadar abarttım ki, regex pattern'lerim insani tüm tutarsızlıkları yok etmek üzere evrildi. "Yaaa" yazısını "Ya" yapmak için "(a)\1+" kullandım. "Çok çok çok teşekkürler"i "Çok teşekkürler"e çevirdim. Şimdi doğal sohbetlerde birisi aynı harfi iki kere üst üste yazsa, içimde bir alarm çalıyor: "Bu redundant, optimize edilmeli!"
Geri Dönüş Yok Mu?
StackOverflow'da bile bulamadım bu durumun çaresini. Artık bir metne baktığımda, anlamından önce token'larını, delimiter'larını ve potansiyel capture group'larını görüyorum. Düzenli ifadeler, gerçekten de "bir kez öğrenince, artık hiçbir şeyi normal görememe" lanetine dönüştü.
Siz de böyle bir saçmalık yaşadınız mı? Bir teknolojiye/tool'a o kadar daldınız mı ki, gerçek dünya onun lensinden görünür oldu? Bu beyin yazılımını nasıl downgrade ederiz? Yoksa regex ile görünen dünya daha mı güzel? Yorumlara bekliyorum, belki bir support group kurarız!
Şaka gibi ama, markette reyon etiketlerine bakarken içimden "\s{2,}'yi replace etmeliyim" diye geçiriyorum. Bir arkadaşım mesaj atıyor, "N'aber?" diye. Ben ilk bakışta "N'aber\?" diye okuyorum, çünkü soru işaretini escape karakter olarak algılamaya başladım. Telefon numarası görünce aklıma hemen "(\d{3})[-.]?(\d{3})[-.]?(\d{4})" geliyor. Bu ne lan?
Python:
import re
# Her şey böyle masum başladı...
temiz_metin = re.sub(r'<[^>]+>', '', kirli_metin)
Asıl sorun şurada başladı: Temizleme işini o kadar abarttım ki, regex pattern'lerim insani tüm tutarsızlıkları yok etmek üzere evrildi. "Yaaa" yazısını "Ya" yapmak için "(a)\1+" kullandım. "Çok çok çok teşekkürler"i "Çok teşekkürler"e çevirdim. Şimdi doğal sohbetlerde birisi aynı harfi iki kere üst üste yazsa, içimde bir alarm çalıyor: "Bu redundant, optimize edilmeli!"
StackOverflow'da bile bulamadım bu durumun çaresini. Artık bir metne baktığımda, anlamından önce token'larını, delimiter'larını ve potansiyel capture group'larını görüyorum. Düzenli ifadeler, gerçekten de "bir kez öğrenince, artık hiçbir şeyi normal görememe" lanetine dönüştü.
Siz de böyle bir saçmalık yaşadınız mı? Bir teknolojiye/tool'a o kadar daldınız mı ki, gerçek dünya onun lensinden görünür oldu? Bu beyin yazılımını nasıl downgrade ederiz? Yoksa regex ile görünen dünya daha mı güzel? Yorumlara bekliyorum, belki bir support group kurarız!