Yeni metin ikinci kez işleniyor olabilir
Bir çalışma dosyasındaki geçici etiketleri değiştirmek istiyorsunuz. KAYIN artık MEŞE, eski MEŞE ise ÇAM olacak. Yapay zekânın verdiği iki bul ve değiştir işlemini sırayla uyguladığınızda ilk etiket de ÇAM oluyor. Her değiştirme komutu kendi başına doğru eşleşmiş olabilir. Sorun ikinci komutun artık özgün metne değil, birinci komutun ürettiği metne bakmasıdır. Hangi sürümün eşlendiğini belirtmeden toplu değişikliği kabul etmeyin.
Bu yazıdaki ağaç adları gerçek kişi veya kurum adı değildir; üç çalışma grubunu temsil eden sentetik etiketlerdir. İstenen işlem bir sürüm geçişidir: özgün her sözcük, eşleme tablosuna bir kez girer. Çıkan yeni sözcük aynı turda yeniden eşlenmez. Buna karşılık bir dönüşüm zinciri özellikle istenseydi ardışık uygulama doğru olabilirdi. Önce görev niyetini yazmak bu iki sonucu birbirinden ayırır.
Özgün konumları kaybetmeyin
| Özgün etiket | Yeni etiket | Kapsam |
|---|---|---|
| KAYIN | MEŞE | Yalnız tam sözcük |
| MEŞE | ÇAM | Yalnız özgün MEŞE |
| Diğerleri | Aynen korunur | Harf dönüşümü veya benzerlik yok |
KAYIN MEŞE ÇAM Konum 1: KAYIN. Konum 2: MEŞE. Konum 3: ÇAM. İstenen tek geçiş: MEŞE ÇAM ÇAM.
Aynı sözcüğün iki konumda görünmesi bu konumları aynı kayıt yapmaz. Son metinde iki ÇAM bulunması beklenen sonuçtur: biri eski MEŞE’den gelir, diğeri zaten ÇAM’dır. Bu nedenle yalnız son etiketlerin benzersiz sayısını ölçmek dönüşümün doğruluğunu göstermez. Kontrol defterinde konumu, eski sözcüğü ve yeni sözcüğü birlikte tutun. Geri dönmek gerekirse son metni ters eşlemeye çalışmak yerine özgün kopyayı kullanın.
İki geçişte oluşan farkı görün
| Aşama | Metin | Ne oldu? |
|---|---|---|
| Başlangıç | KAYIN MEŞE ÇAM | Üç özgün konum |
| Önce KAYIN→MEŞE | MEŞE MEŞE ÇAM | İlk konum değişti |
| Sonra MEŞE→ÇAM | ÇAM ÇAM ÇAM | Yeni üretilen ilk MEŞE de değişti |
| Özgün metinde tek tur | MEŞE ÇAM ÇAM | Her konum yalnız özgün etiketiyle eşlendi |
Ardışık sonuca bakıp KAYIN kuralını ÇAM olarak düzeltmek niyeti değiştirir. Kuralların sırasını ters çevirmek bu küçük zincirde istenen sonucu verebilir; fakat bunu genel çözüm saymayın. Birbirine dönen adlar, üst üste gelen uzun etiketler veya daha fazla dönüşüm olduğunda güvenli bir sıra bulmak zorlaşır. Sabit görev tek tur eşlemeyse, yöntemin doğrudan bu görevi uygulaması daha açık bir kontrol sağlar.
Python re.sub, özgün girdide soldan sağa çakışmayan eşleşmeleri bulur ve her eşleşme için verilen işlevi çağırabilir. Bir çağrının ürettiği metin aynı çağrıda yeni eşleşme girdisi olarak yeniden taranmaz. Bu davranış tek tur sözlüğünü uygulamak için kullanılabilir. Ancak desenin sözcük sınırı, büyük harf ve noktalama sözleşmesini ayrıca kurmanız gerekir; metin değiştirme işlevi bu iş kararlarını sizin yerinize seçmez.Kaynak: Python — re.sub
Önizlemede her konuma bir satır isteyin
Kaynak KAYIN MEŞE ÇAM. Eşleme KAYIN→MEŞE, MEŞE→ÇAM; diğer tam sözcükler korunur. İstenen bir turdur: her özgün sözcüğü yalnız bir kez eşle, oluşan yeni etiketi tekrar işleme. Önce konum/eski/yeni tablosu üret. Ardışık iki replace işleminin ara ve son metnini ayrıca göster. Kaynağı değiştirme, metni küçük harfe çevirme veya alt sözcük eşleme ekleme. Çıktının hangi özgün konumdan geldiğini denetle; iki ÇAM kaydını birleştirme.
import re
mapping = {"KAYIN": "MEŞE", "MEŞE": "ÇAM"}
source = "KAYIN MEŞE ÇAM"
result = re.sub(r"\b(?:KAYIN|MEŞE)\b", lambda m: mapping[m.group(0)], source)
# Beklenen: MEŞE ÇAM ÇAMBu örnekte etiketler yalnız harflerden oluşur ve aralarında boşluk vardır. KAYINLIK sözcüğü tam KAYIN değildir; desen onu değiştirmemelidir. Tire, birleşik karakter veya kod içindeki nokta kullanılıyorsa sözcük sınırı kavramı ihtiyaçla uyuşmayabilir. Böyle bir kayıtta daha açık bir alan ayrıştırıcısı seçin. Küçük örneğin desenini her metin biçimine uygulanmış bir temizleme standardı gibi taşımayın.
İkinci çalıştırma farklı bir görev olabilir
Tek tur sonucu MEŞE ÇAM ÇAM metnini tekrar aynı araca verirseniz ilk MEŞE bu kez özgün girdi sayılır ve ÇAM’a dönüşür. Bu nedenle doğru tek geçişli işlem kendiliğinden tekrar uygulanabilir olmak zorunda değildir. Görevin bir kez tamamlandığını kaynak sürümü ve dönüşüm sürümüyle kaydedin. Aynı dönüştürülmüş dosyayı yeni kaynak sanmak, kod bir çağrıda doğru olsa bile işlemi iş akışında iki kez uygulamış olur.
- Kaynak sözcük sayısı ile sonuç sözcük sayısı üç mü?
- Konum 1 yalnız KAYIN→MEŞE geçişini mi taşıyor?
- Konum 3 değişmeden ÇAM mı kaldı?
- Özgün kaynak ve dönüşüm turu ayrı saklanmış mı?
Metin üzerinde yapacağınız son okuma da önemlidir. Bu alıştırmada yalnız etiket değiştiriyoruz; gerçek bir yazıda yeni adın ekleri veya cümledeki gönderimleri ayrıca düzenleme gerektirebilir. Dil bilgisi düzenlemesini eşleme turuyla aynı görünmez işlem içine koymayın. Önce mekanik değişikliği konumlarıyla doğrulayın, ardından anlam ve dil bakımından gerekli olan ek düzenlemeleri ayrı bir incelemede değerlendirin.
Döngülü sözlükte iki yöntemi ayırın
Yeni ve bağımsız kaynak KAYIN MEŞE KAYINLIK olsun. Bu kez kurallar KAYIN→MEŞE ve MEŞE→KAYIN. Tek tur sonucunu yazın. Sonra önce birinci, sonra ikinci kuralı bütün metne uygulayan iki geçişin sonucunu bulun. KAYINLIK sözcüğünün iki yöntemde de korunması için tam sözcük sözleşmesini kullanın. Yalnız alt metin değiştiren bir işlem seçerseniz alıştırmanın koşulunu bozmuş olursunuz.
Tek tur: MEŞE KAYIN KAYINLIK. Ardışık tam sözcük değişimi: önce MEŞE MEŞE KAYINLIK, sonra KAYIN KAYIN KAYINLIK. İlk konumun farkı, üretilen metnin yeniden işlenmesinden doğar.
Toplu düzenlemeyi teslim ederken yalnız yeni metni vermeyin. Kaynak sürümü, kullanılan eşleme tablosu, tek tur kararı ve konum bazlı kontrol kaydı da çıktının parçası olsun. Böylece daha sonra bir etiket yanlış göründüğünde sorun eşleme niyetinde mi, eşleşme sınırında mı, yoksa aynı dönüşümün tekrar çalıştırılmasında mı ayırt edilebilir.
Kaynaklar ve doğrulama
- Python — re.sub
Özgün girdide soldan sağa çakışmayan eşleşmelerin işlevle değiştirilmesi.
Erişim ve kontrol:
Üretken Yapay Zekâ ile İş Verimliliği
Üretken Yapay Zekâ ile İş Verimliliği programında metin dönüşümlerini önizleme, kaynak izi ve karşı örneklerle kontrol etmeyi uygulayabilirsiniz.
- Bireysel tarih henüz açıklanmadı