Bu kod yapay zeka eğitmek için türkçe TXT dosyası arayanlara Wipikedia'dan veri seti toplar.

import wikipedia
import requests
import time
import langdetect
import re

# Wikipedia dilini Türkçe olarak ayarla
wikipedia.set_lang("tr")

output_file = "temiz_turkce_wikipedia_metin.txt"
RANDOM_PAGE_API = "https://tr.wikipedia.org/w/api.php?action=query&list=random&rnnamespace=0&format=json"


def get_random_page_title():
"""Rastgele bir Wikipedia sayfa başlığı alır."""
    try:
response = requests.get(RANDOM_PAGE_API)
data = response.json()
return data["query"]["random"][0]["title"]
except Exception as e:
print(f"Hata oluştu: {e}")
return None


def get_wikipedia_content(title):
"""Başlığa sahip Wikipedia sayfasının içeriğini alır."""
    try:
return wikipedia.page(title).content
except:
return None


def is_text_turkish(text):
"""Metnin Türkçe olup olmadığını kontrol eder."""
    try:
detected_lang = langdetect.detect(text)
return detected_lang == "tr"
    except:
return False


def clean_text(text):
"""
    Metni temizler:
    - Sadece Türkçe harfleri ve boşlukları bırakır.
    - İngilizce ve yabancı kelimeleri filtreler.
    """
    turkish_alphabet = "abcçdefgğhıijklmnoöprsştuüvyz "
    words = text.lower().split()  # Kelimeleri küçük harfe çevir ve listeye ayır
    clean_words = [
word for word in words
if all(char in turkish_alphabet for char in word) and len(word) > 1  # Yabancı harfleri ve tek harfleri at
    ]
return " ".join(clean_words)


# 1000 farklı sayfa içeriğini alıp temizleyip dosyaya kaydet
with open(output_file, "a", encoding="utf-8") as file:
count = 0
    while count < 10000:
title = get_random_page_title()
if title:
content = get_wikipedia_content(title)
if content and is_text_turkish(content):
cleaned_content = clean_text(content)
if len(cleaned_content.split()) > 100:  # Yeterince kelime varsa ekleyelim
                    file.write(f"=== {title} ===\n")
file.write(cleaned_content + "\n\n")
count += 1
                    print(f"{count}. sayfa eklendi: {title}")
else:
print(f"{count + 1}. sayfa ({title}) yeterince Türkçe kelime içermiyor, atlandı.")
else:
print(f"{count + 1}. sayfa ({title}) boş veya farklı dilde olduğu için atlandı.")

time.sleep(1)  # Wikipedia'yı spamlamamak için bekleme süresi

print("İşlem tamamlandı! Veriler temiz_turkce_wikipedia_metin.txt dosyasına kaydedildi.")