Python ile (NLP) Doğal Dil İşleme

Durum
Üzgünüz bu konu cevaplar için kapatılmıştır...
ölmedim geri döndüm kaldığımız yerden devam
Süper Üye
Katılım
6 Eki 2019
Mesajlar
744
Çözümler
19
Tepki puanı
155
Ödüller
6
Sosyal
6 HİZMET YILI
Bu kodlama örneği, girilen bir cümledeki yazım hatalarını bulup düzeltmek için kullanılan basit bir doğal dil işleme (NLP) örneğidir.

Bu Python kodu, kullanıcı tarafından girilen bir cümledeki yazım hatalarını bulmak için hazırlanmıştır.
Kod, öncelikle bir sözlük (dictionary) tanımlar ve bu sözlükte en yaygın yazım hatalarını ve doğru yazımlarını saklar. Sonrasında, kullanıcı tarafından girilen cümleyi küçük harflere dönüştürür ve noktalama işaretlerini temizler.
Ardından, cümleyi boşluklara göre parçalara ayırır ve her kelime için sözlüğü kontrol eder. Eğer kelime sözlükte varsa, doğru yazımı ile değiştirir ve düzeltilmiş cümleyi oluşturur. Eğer kelime sözlükte yoksa, kelimeyi değiştirmeden düzeltilmiş cümleyi oluşturmaya devam eder.
Son olarak, düzeltilmiş cümleyi kullanıcıya gösterir. Bu kod, yazım hatalarını otomatik olarak düzeltmeyi amaçlamaktadır ancak doğru yazım hatalarını tamamen kapsamayabilir.


Aşağıdaki gibi bir Python kodu ile belirtilen dizindeki tüm .txt dosyalarını açarak her bir dosyadaki yazım hatalarını düzeltebilir ve dosyaları tekrar kaydedebilirsiniz:

Python:
import os
import string
import re
import enchant

# Yazım hatalarını düzeltmek için kullanacağımız "enchant" kütüphanesi için Türkçe sözlüğü yükleyelim
d = enchant.Dict("tr_TR")

# Yazım hatalarını düzeltmek için kullanacağımız fonksiyonu tanımlayalım
def duzelt(dosya):
    with open(dosya, "r", encoding="utf-8") as f:
        text = f.read()
    
    # Tüm özel karakterleri temizleyelim
    text = re.sub('[%s]' % re.escape(string.punctuation), '', text)
    
    # Kelimeleri ayıralım ve hatalarını düzeltelim
    words = text.split()
    corrected_words = [d.suggest(word)[0] if len(d.suggest(word)) > 0 else word for word in words]
    
    # Düzelttiğimiz kelimeleri tekrar bir araya getirelim
    corrected_text = " ".join(corrected_words)
    
    # Düzelttiğimiz metni dosyaya tekrar kaydedelim
    with open(dosya, "w", encoding="utf-8") as f:
        f.write(corrected_text)

# Belirtilen dizindeki tüm .txt dosyalarını bulalım ve düzeltme işlemi yapalım
dizin = "/path/to/folder"
for dosya in os.listdir(dizin):
    if dosya.endswith(".txt"):
        dosya_yolu = os.path.join(dizin, dosya)
        duzelt(dosya_yolu)

Bu kod, belirtilen dizindeki tüm .txt dosyalarını açar ve her bir dosyadaki yazım hatalarını "enchant" kütüphanesi yardımıyla düzeltir. Ardından, düzelttiği metni tekrar dosyaya kaydeder. Dosyaların tamamını tek tek açıp kaydettiği için, büyük boyutlu dosyalar için işlem süresi biraz uzun olabilir.
 
Onaylı Üye
Katılım
27 Tem 2022
Mesajlar
58
Tepki puanı
0
Ödüller
1
Yaş
32
3 HİZMET YILI
Bu biraz karmaşık bi soru biraz kafa yormak gerekiyor
 
Durum
Üzgünüz bu konu cevaplar için kapatılmıştır...
Üst