Görsel: Shutterstock
PDF’ler gibi tonlarca metin belgesini elektronik tablolara dönüştürüyorum. Bu sıkıcı ve pahalı bir iş. Bu yüzden ne zaman yeni bir yapay zeka teknolojisi ortaya çıksa, bu teknolojinin pek çok insanın PDF’yi teslim etmek, hesap tablosu istemek ve bir tane geri almak için istediği şeyi yapıp yapamayacağını merak ediyorum. OpenAI’nin ChatGPT’sine birkaç programlama problemi attıktan ve uygulanabilir bir sonuç aldıktan sonra, sonunda oraya varıp varmadığımızı merak ettim.
OpenAI’nin GPT-3’ünün yeni moda olduğu zamanlarda Montrealli gazeteci Roberto Rocha’nın benzer bir test denediğini görmüştüm. Sonuçlar harektsizdi ancak OpenAI’nin en yeni modeli olan ChatGPT, tabloyu daha uygun hale getiren birkaç iyileştirmeye sahip: GPT-3’ten 10 kat daha büyük ve sonuç olarak genellikle daha tutarlı, talimatları açıkça takip etmek için eğitildi ve programlama dillerini anlıyor.
ChatGPT’nin PDF’lerden yapılandırılmış verileri ne kadar iyi çıkarabildiğini test etmek için, iki belge setini elektronik tablolara dönüştürmek için bir Python betiği yazdım (sonunda paylaşacağım!):
- New York veri ihlali bildirim formlarından oluşan 7.000 sayfalık bir PDF. Beş farklı form, kötü OCR ve araya karışmış bazı serbest biçimli mektuplar vardı.
- Polis iç soruşturmalarından 1.400 not. Bunlar tamamen yapılandırılmamıştı ve e-postalar ile belge taramalarını içeriyordu. Çok dağınık.
Genel stratejim şuydu:
- Mümkün olan en yüksek kaliteli araçları kullanarak OCR’yi yeniden yapın. Bu çok önemliydi çünkü ChatGPT kötü OCR edilmiş metinlerle çalışmayı reddediyordu.
- Verileri elimden geldiğince temizledim, fiziksel düzeni korudum ve çöp karakterleri ve şablon metinleri kaldırdım.
- Belgeleri tek tek kayıtlara ayırın.
- ChatGPT’den her kaydı JSON’a dönüştürmesini isteyin.
Her iki veri setini tanımak ve tüm bu ön işlemleri yapmak için yaklaşık bir hafta harcadım. Bir kez yapıldıktan sonra, ChatGPT’nin bir metin parçasını JSON’a dönüştürmesini sağlamak gerçekten çok kolay. Bir kaydı yapıştırabilir ve “bunun JSON temsilini döndür” diyebilirsiniz ve o da bunu yapacaktır. Ancak bunu birden fazla kayıt için yapmak kötü bir fikirdir çünkü ChatGPT metinden rastgele seçilen alan adlarını kullanarak kendi şemasını oluşturacaktır. Ayrıca değerleri ayrıştırmak için kendi yoluna karar verecektir. Örneğin adresler bazen bir dize, bazen de bir JSON nesnesi ya da bir dizi olarak ortaya çıkacak ve adresin bileşenleri bölünecektir.
İstem tasarımı, tutarlı sonuçlar elde etmede en önemli faktördür ve dil seçimleriniz büyük bir fark yaratır. Bir ipucu: ChatGPT’nin bir göreve atıfta bulunurken hangi ifadeyi kullandığını bulun ve bunu taklit edin. (Bilmiyorsanız, her zaman şunu sorabilirsiniz: “_______ adresini kullanarak _____ adresini nasıl kullanacağınızı açıklayın.”)
ChatGPT kodu anladığı için, istemimi belirli bir JSON şemasına uygun JSON istemek üzere tasarladım. Bu benim istemimdi:
Resim: Ekran Görüntüsü, OpenNews:Source
Her yanıttan bir JSON nesnesi çıkarmaya ve buna karşı bazı doğrulama kontrolleri yapmaya çalıştım. İki kontrol özellikle önemliydi: 1) JSON’un eksiksiz olduğundan, kesilmediğinden veya bozulmadığından emin olmak ve 2) anahtarların ve değerlerin şemayla eşleştiğinden emin olmak. Doğrulama kontrolü başarısız olursa tekrar deniyordum ve genellikle ikinci veya üçüncü denemede geçerli JSON geri alıyordum. Başarısız olmaya devam ederse, bunu not eder ve kaydı atlardım. Bazı kayıtlar ChatGPT’nin hoşuna gitmiyor.
Sonuçlar
Etkileyici bir şekilde, ChatGPT çoğunlukla kullanılabilir bir veri seti oluşturdu. İlk bakışta, mükemmel bir şekilde ayıklanmış bir veri setine sahip olduğumu bile düşündüm. Ancak sayfaları inceleyip değerleri karşılaştırdığımda hatalar fark etmeye başladım. Bazı isimler yanlış yazılmıştı. Bazıları tamamen eksikti. Bazı sayılar yanlıştı.
Hatalar, ince ve nispeten seyrek olsa da, çoğu veri gazetecisinin yapmak istediği temel analizleri yapmamı engellemeye yetti. Ortalamalar, histogramlar, minimumlar ve maksimumlar yoktu.
Ancak benim projelerim için hatalar tolere edilebilirdi. İhlal edilen veri tabanındaki büyük oyuncuları bulmak istiyordum, bu yüzden bazı isimlerin yanlış olması ya da bazı sayısal değerlerin bir sıfır eksik olması umurumda değildi. Polis verileri için temelde belirli olayları ve ilgili kişileri tanımlayacak bir özet arıyordum. Eğer bir şeyi gözden kaçırırsam, sorun olmazdı.
Genel olarak, bunlar ChatGPT’nin ortaya çıkardığı hata türleridir:
- ChatGPT verileri halüsinasyona uğrattı, yani bir şeyler uydurdu. İnce ve tespit edilmesi zor şekillerde genelde bu oldu. Örneğin, “2222 Colony Road, Moorcroft “u (“r “ye dikkat edin) “2222 Colony Road, Mooncroft “a dönüştürdü. “Mooncroft” (“n” ile) kelimesi metnin hiçbir yerinde geçmiyor. ChatGPT koloni ve ay kelimeleri arasında bir bağlantı kuruyor gibi görünüyordu. Ne kadar tuhaf.
- İnsanların isimlerine takıldı ve cinsiyetlerini tahmin etti. Bazı formlarda bir “selamlama” alanı vardı, bu da ChatGPT’nin uygun olmadığında selamlama (“Bayan”, “Bay”) eklemesine ve verildiğinde bile (“Dr” ve “Prof”) atlamasına neden oluyor gibi görünüyordu. Ayrıca, bir kayıtta birden fazla isim göründüğünde doğru ismi kullanamadı ve en son geleni tercih etti.
- ChatGPT önceki istemleri hatırlayarak karışıklıklara neden oldu. Bazen, mevcut kaydın metninde tamamen geçerli bir isim görünmesine rağmen, daha önceki bir kayıttaki bir ismi veya ticari varlığı kullanmıştır. Örneğin, bir kayıtta en son 150 ve 30 sayfa önce görülen bir avukatın ve hukuk firmasının isimlerini kullandı. Bu sorun beni isimlerin ve kuruluşların mevcut kayıtta gerçekten var olduğundan emin olmaya zorladı.
- Yazım hatası olduğunu düşündüğü kelimeler “düzeltildi”. Bu genellikle yardımcı oluyordu ancak bazen bir hataya yol açıyordu. Bu durum özellikle e-posta adreslerinde sorun yaratıyordu.
- Hatalar veride rastgele dağılmış gibi görünüyordu. Bazı sütunlar diğerlerinden daha fazla hata içerirken, tüm sütunlarda %1 ile %6 arasında değişen hata oranları vardı. Hatalar satırlar arasında da dağılmıştı. Tüm bunlar bir araya geldiğinde, tamamen geçerli bir veri seti elde etmek için her satırı her kayıtla karşılaştırmam gerektiği anlamına geliyordu ki bu da en başta kaçınmaya çalıştığım işin ta kendisiydi.
Büyük dil modelleriyle ilgili sorunlar şimdiye kadar çok iyi belgelenmiştir. ChatGPT’deki büyük ilerlemelere rağmen, bunlardan bazıları deneylerimde ortaya çıktı. Bu sorunları görmezden gelip ChatGPT’den türetilen çalışmaları doğrudan okuyuculara sunma girişimleri kaçınılmaz olarak feci başarısızlıklara yol açacaktır.
ChatGPT bazen bir belgeyle çalışmayı reddediyor ve basmakalıp bir yanıt veriyor. Her ikisi de kamuya açık belgeler olmasına rağmen, hem polis notlarında hem de New York veri ihlali veri kümelerinde “hassas bilgiler” ile ilgili endişelerle yanıt verdi.
Görüntü: Ekran görüntüsü, OpenNews Kaynağı
ChatGPT Veri Gazeteciliğinde Devrim Yaratacak mı?
Ben öyle düşünmüyorum, üç nedenden dolayı:
- Hayır, teknik nedenlerden dolayı: OpenAI’nin API’si aracılığıyla ChatGPT ile çalışmak acı verici derecede yavaş. Sadece veri ihlali PDF’sinden yaklaşık 2.500 kayıt çıkarmak yaklaşık üç hafta sürdü. Bu projeye ChatGPT yaygınlaşmadan önce başladığım ve hız sınırlaması getirilmeden önce iki hafta boyunca kullanabildiğim düşünüldüğünde bu daha da önemli. Ayrıca API güvenilir değil ve sık sık kesinti ve kesintiler yaşanıyor, ancak bu durum gelecekte düzelebilir.
- Hayır, ekonomik nedenlerden dolayı: ChatGPT ile bir tür el emeğini diğeriyle takas ettiğimize ikna oldum. Programlama ve transkripsiyonu temizlik, doğruluk kontrolü ve doğrulama ile takas ediyoruz. Herhangi bir satır potansiyel olarak yanlış olabileceğinden, güven oluşturmak için her alan kontrol edilmelidir. Sonuçta, çok fazla iş tasarrufu yaptığımıza ikna olmadım.
- Hayır, editoryal nedenlerden dolayı: Veri halüsinasyonu ve diğer karışıklıklarla ilgili sorunlar, bence bu yaklaşımı şirket içi veya gazetecilere yönelik kullanımlarla sınırlıyor. Bir hikaye oluşturucudan daha iyi bir ipucu oluşturucu. ChatGPT’yi gazetecilik iş akışının sonuna koymak, daha fazla hız ve miktarı daha az güvenilirlikle değiş tokuş etme riski taşıyor.
Bu sorunların toplamı, ChatGPT’nin çoğu kullanımını, özellikle geniş ölçekte, editoryal olarak kullanışsız hale getiriyor. Ama bence hala yeri var. Küçük bir PDF’i tabloya dönüştürmesi gereken, kaynakları yetersiz küçük haber odaları için bu uygulanabilir olabilir (Hey ChatGPT, bu metni bir dizi JSON nesnesine dönüştürebilir misin?).
Ayrıca bazı PDF’ler o kadar dağınık ve düzensizdir ki, ayıklama komut dosyası yazmak çok zaman alır. Bunun gibi sorunlar nedeniyle sayısız projem öldü. ChatGPT bu tür projelere hayat verme potansiyeli sunuyor.
ChatGPT , hataların ve eksik değerlerin tolere edilebilir olduğu kullanım durumlarında veya haftalarca gerçek bir temizlik ve analize girmeden önce verilerin durumuna bakmak istediğiniz spekülatif durumlarda bir keşif aracı veya potansiyel oluşturucu olarak da hizmet edebilir.
Kendiniz Deneyin!
ChatGPT eklentisi betiğimi GitHub’da kullanıma sundum. Belki sorunlu bir veri projeniz vardır ve bunu kendiniz denemek istersiniz. Ya da belki de olasılıkları ve sınırlamaları yüz yüze görmek istersiniz. İçten içe birilerinin nihayet FCC TV ve kablolu yayın siyasi reklam ifşa veri setini kıracağını ve ProPublica’nın Free The Files projesinden bu yana açık kalan bölümü kapatacağını umuyorum.
Her iki durumda da, bu teknoloji hakkında haber yapacağımızı ve bu teknolojiyi bir süre daha kullanacağımızı hissediyorum. Herhangi bir teknolojiyi tanımanın en iyi yolu onu kullanmaktır.
Bu makale ilk olarak OpenNews: Source‘da yayınlanmış ve burada Creative Commons lisansı altında yeniden yayınlanmıştır.
Ek kaynaklar
Gazetecilikte Yapay Zeka Hakkında Bilmeniz Gereken 10 Şey
Gazetecilerin Hikâye Anlatımı İçin Yapay Zeka ve Uydu Görüntülerini Kullanma Kılavuzu
Aldatmacanın Ötesinde: Araştırmacı Gazetecilikte Yapay Zekayı Etkili Bir Şekilde Kullanmak
Brandon Roberts açık kaynak konusunda uzmanlaşmış ve hesaplama tekniklerini gazetecilik projelerine getiren bağımsız bir veri gazetecisidir.