Garfield
YZF Admin
Python ile doğal dil işleme yapmak için metni önce temizleyip parçalara ayırabilir, ardından kelime sıklığı, anahtar sözcük çıkarımı veya basit sınıflandırma gibi işlemler uygulayabilirsiniz. Aşağıdaki örnek yalnızca Python’un standart kütüphanesini kullanır; metinden kelimeleri çıkarır, yaygın bağlaçları eler ve en sık geçen kelimeleri listeler. Daha gelişmiş çözüm gerektiğinde aynı akış, Türkçe dil modeli kullanan bir NLP kütüphanesiyle genişletilebilir.
Doğal dil işleme, bilgisayarın insan dilindeki metinleri işlemesini sağlayan yöntemlerin genel adıdır. Python’da tipik akış; metni alma, temizleme, belirteçlere ayırma, gereksiz kelimeleri eleme, özellik çıkarma ve sonuç üretme aşamalarından oluşur.
Örneğin “Python ile metin işlemek kolaydır. Python, veri analizinde de kullanılır.” cümlesinde noktalama işaretlerini kaldırıp kelimeleri küçük harfe dönüştürebilir ve “ile”, “de” gibi sık geçen yardımcı kelimeleri sonuçtan çıkarabilirsiniz. Böylece analizde daha anlamlı görünen “python”, “metin” ve “veri” kelimeleri öne çıkar.
İhtiyaca göre yöntemi seçmek önemlidir. Küçük bir metin analizi için standart kütüphane yeterli olabilir; cümle yapısını, kökleri veya sözcük türlerini çözümlemek içinse dile özgü kurallar, sözlükler veya modeller kullanan NLP araçları gerekir.
Bu tabloya göre yalnızca en sık geçen kelimeleri bulmak istiyorsanız ilk yaklaşım yeterlidir. Bir kelimenin cümledeki görevini veya Türkçe eklerini doğru değerlendirmek istiyorsanız basit metin temizleme kodu tek başına yeterli olmaz.
Örneği çalıştırmak için bilgisayarınızda Python bulunması ve bir
Bu örnekte çıktının ilk iki satırı
Ayrıca kod, Türkçedeki ekleri otomatik olarak çözmez. “kitap”, “kitabı” ve “kitaplar” farklı kelimeler olarak sayılır. Kök bulma, sözcük türü belirleme, kişi ve yer adı tanıma gibi işlemler için Türkçe dil desteği olan bir NLP kütüphanesi veya model kullanmalısınız.
Gerçek bir projede temizleme kurallarını veriye göre belirleyin. Örneğin ürün yorumlarında “iyi” ve “kötü” gibi kelimeleri durak kelime listesine eklememelisiniz; çünkü duygu analizinde bu kelimeler temel özelliklerdir. Buna karşılık rapor biçimindeki metinlerde tarih, URL veya özel kodları ayrı bir alan olarak saklamak daha doğru olabilir.
Sonraki aşama, analiz amacına göre değişir. Anahtar kelime arıyorsanız sıklık hesabına TF-IDF gibi ağırlıklandırma ekleyebilirsiniz. Metinleri konuya göre ayıracaksanız eğitim ve test verilerini ayırarak bir sınıflandırma modeli kurmanız gerekir. Cümle anlamı, Türkçe eklerin çözümü veya varlık tanıma gerekiyorsa yalnızca karakter temizleme ve kelime sayımıyla yetinmeyin; Türkçe bir dil modeliyle üretilen sonucu örnek veriler üzerinde ayrıca kontrol edin.
Doğal dil işleme akışı
Doğal dil işleme, bilgisayarın insan dilindeki metinleri işlemesini sağlayan yöntemlerin genel adıdır. Python’da tipik akış; metni alma, temizleme, belirteçlere ayırma, gereksiz kelimeleri eleme, özellik çıkarma ve sonuç üretme aşamalarından oluşur.
Örneğin “Python ile metin işlemek kolaydır. Python, veri analizinde de kullanılır.” cümlesinde noktalama işaretlerini kaldırıp kelimeleri küçük harfe dönüştürebilir ve “ile”, “de” gibi sık geçen yardımcı kelimeleri sonuçtan çıkarabilirsiniz. Böylece analizde daha anlamlı görünen “python”, “metin” ve “veri” kelimeleri öne çıkar.
Hangi yöntem ne zaman kullanılır?
İhtiyaca göre yöntemi seçmek önemlidir. Küçük bir metin analizi için standart kütüphane yeterli olabilir; cümle yapısını, kökleri veya sözcük türlerini çözümlemek içinse dile özgü kurallar, sözlükler veya modeller kullanan NLP araçları gerekir.
| İhtiyaç | Uygun yaklaşım | Sınır |
|---|---|---|
| Kelime sayma ve basit arama | Python standart kütüphanesi | Dil bilgisi ve anlam ilişkilerini çözümlemez |
| Cümle ve kelime çözümleme | Türkçe destekli NLP kütüphanesi | Kullanılan araca göre dil kaynakları veya model kurulumu gerektirebilir |
| Metin sınıflandırma | Makine öğrenmesi modeli | Denetimli model eğitimi için etiketlenmiş veri gerekir |
| Anlam benzerliği veya özetleme | Hazır dil modeli ya da yapay zekâ modeli | Çıktıların doğrulanması gerekir |
Standart Python ile ilk metin analizi
Örneği çalıştırmak için bilgisayarınızda Python bulunması ve bir
.py dosyası oluşturabilmeniz yeterlidir. Harici paket kurulmadığı için işlem çevrim dışı da çalışır. Aşağıdaki kod, varsayımsal bir Türkçe metin üzerinde temel kelime sıklığı analizi yapar.- Bir Python dosyası oluşturun. Dosyaya
metin_analizi.pyadını verin ve aşağıdaki kodu içine yapıştırın. - Örnek metni değiştirin.
metindeğişkenindeki içeriği analiz etmek istediğiniz Türkçe metinle değiştirin; birden fazla cümle kullanabilirsiniz. - Dosyayı çalıştırın. Komut satırında dosyanın bulunduğu klasöre geçip
python metin_analizi.pykomutunu çalıştırın. Bazı sistemlerde aynı komutpython3 metin_analizi.pybiçiminde olabilir. - Çıktıyı yorumlayın. Ekrandaki her satır bir kelimeyi ve metinde kaç kez geçtiğini gösterir. Sayım, anlamı veya kelimenin olumlu-olumsuz olduğunu kanıtlamaz; yalnızca temizleme kurallarından sonra oluşan sıklığı gösterir.
Python:
import re
from collections import Counter
metin = """
Python ile metin işlemek kolaydır. Python, veri analizinde de kullanılır.
Metin analizi Python ile hızlı başlayabilir.
"""
# Türkçe karakterleri koruyarak yalnızca harf ve rakamları bırakır.
kucuk_metin = metin.translate(str.maketrans("Iİ", "ıi")).lower()
kelimeler = re.findall(r"[a-zA-ZçğıİöşüÇĞIÖŞÜ0-9]+", kucuk_metin)
# Analizde genellikle bilgi taşımayan yardımcı kelimeleri çıkarır.
durak_kelime = {
"ile", "ve", "de", "da", "bir", "bu", "için", "çok",
"olan", "olarak", "birçok"
}
anlamli_kelimeler = [
kelime for kelime in kelimeler
if kelime not in durak_kelime and len(kelime) > 2
]
sayim = Counter(anlamli_kelimeler)
for kelime, adet in sayim.most_common(10):
print(f"{kelime}: {adet}")
Bu örnekte çıktının ilk iki satırı
python: 3 ve metin: 2 olur. Sıra, metindeki gerçek tekrar sayısına göre belirlenir. Önce I ve İ Türkçe küçük harflerine eşlenir, ardından lower() uygulanır; düzenli ifade Türkçe harfleri içeren parçaları çıkarır, Counter ise tekrarları sayar.Bu sonuç ne anlama gelir?
python: 3 sonucu, temizleme işleminden sonra “python” kelimesinin üç kez görüldüğünü gösterir. Bu, metnin ana konusunun kesin olarak Python olduğunu kanıtlamaz; aynı kelime alıntı, başlık veya olumsuz bir cümle içinde de geçebilir. Konu sınıflandırması yapmak istiyorsanız etiketlenmiş örnekler ve ayrı bir sınıflandırma yöntemi gerekir.Ayrıca kod, Türkçedeki ekleri otomatik olarak çözmez. “kitap”, “kitabı” ve “kitaplar” farklı kelimeler olarak sayılır. Kök bulma, sözcük türü belirleme, kişi ve yer adı tanıma gibi işlemler için Türkçe dil desteği olan bir NLP kütüphanesi veya model kullanmalısınız.
Kodun doğruluğunu artırma
Gerçek bir projede temizleme kurallarını veriye göre belirleyin. Örneğin ürün yorumlarında “iyi” ve “kötü” gibi kelimeleri durak kelime listesine eklememelisiniz; çünkü duygu analizinde bu kelimeler temel özelliklerdir. Buna karşılık rapor biçimindeki metinlerde tarih, URL veya özel kodları ayrı bir alan olarak saklamak daha doğru olabilir.
Sonraki aşama, analiz amacına göre değişir. Anahtar kelime arıyorsanız sıklık hesabına TF-IDF gibi ağırlıklandırma ekleyebilirsiniz. Metinleri konuya göre ayıracaksanız eğitim ve test verilerini ayırarak bir sınıflandırma modeli kurmanız gerekir. Cümle anlamı, Türkçe eklerin çözümü veya varlık tanıma gerekiyorsa yalnızca karakter temizleme ve kelime sayımıyla yetinmeyin; Türkçe bir dil modeliyle üretilen sonucu örnek veriler üzerinde ayrıca kontrol edin.