Merhaba arkadaşlar, FatBotter kullanıcıları tarafından da sıkça dile getirilen, makalelerde geçen Sonuç olarak, genel olarak, özetle vb kelimelerin çok yapay durduğu ve makalede olmasını kimsenin istemediği ortak fikir. Yapay zeka modellerinden bunu yapmamalarını istemek çok doğru gelmiyor, çünkü bazen bir şeyi yapma derseniz onu daha çok yapmaya başlayabiliyorlar.

Bir cümle/paragraf bahsedilen şekillerde başlıyorsa, genel olarak sonrasında hemen virgül ve cümlenin devamı oluyor. Zaten paragraf ve cümlelerin içinde bu ifadelerin geçmesi sorun teşkil etmiyor. Genellikle asıl sorun, makalelerin son paragraflarında sıkça kullanılan bu ifadeler.

Örnek istenmeyen paragraf:

<p>Son olarak, belirlediğiniz anahtar kelimeleri içeriklerinizde stratejik bir şekilde kullanmalısınız. <strong>SEO</strong> uyumlu içerik oluşturmak için, anahtar kelimeleri başlıklar, alt başlıklar ve metin içinde dengeli bir şekilde dağıtmalısınız. Ancak, anahtar kelime yoğunluğunu aşırıya kaçmadan yapmaya özen gösterin; çünkü anahtar kelime dolgunluğu, arama motorları tarafından olumsuz değerlendirilebilir. Bu sayede, hem kullanıcı deneyimini artırabilir hem de <strong>arama motoru optimizasyonu</strong> hedeflerinize ulaşabilirsiniz.</p>

Düzeltilmiş hali:

<p>Belirlediğiniz anahtar kelimeleri içeriklerinizde stratejik bir şekilde kullanmalısınız. <strong>SEO</strong> uyumlu içerik oluşturmak için, anahtar kelimeleri başlıklar, alt başlıklar ve metin içinde dengeli bir şekilde dağıtmalısınız. Ancak, anahtar kelime yoğunluğunu aşırıya kaçmadan yapmaya özen gösterin; çünkü anahtar kelime dolgunluğu, arama motorları tarafından olumsuz değerlendirilebilir. Bu sayede, hem kullanıcı deneyimini artırabilir hem de <strong>arama motoru optimizasyonu</strong> hedeflerinize ulaşabilirsiniz.</p>

Aşağıdaki fonksiyon, üretilecek metnin diline göre çalışacak şekilde hazırlandı. Kullanacağınız dilleri ve temizlemek istediğiniz cümle başındaki ifadeleri dizi olarak belirtmelisiniz. Ayrıca Türkçe karakterlerde yaşanacak harf büyütme sorunu olmaması için Türkçe karakterler ayrıca tanımlandı.

function cleanTextStartings($text, $language = 'Turkish') {
$startings = [
'Turkish' => [
'Sonuç olarak,',
'Son olarak,',
'Özetle,',
'Nihayetinde,',
'Netice itibariyle,',
],
'English' => [
'In conclusion,',
'Finally,',
'Lastly,',
'In summary,',
'To sum up,',
'Ultimately,'
        ],
];

$turkishChars = [
'i' => 'İ',
'ı' => 'I',
'ç' => 'Ç',
'ş' => 'Ş',
'ö' => 'Ö',
'ü' => 'Ü',
'ğ' => 'Ğ',
];

if (!isset($startings[$language])) {
throw new InvalidArgumentException("Unsupported language: $language");
}

$pattern = '/(<p[^>]*>)\s*(' . implode('|', array_map('preg_quote', $startings[$language])) . ')\s*(.)/miu';

return preg_replace_callback(
$pattern,
function ($matches) use ($turkishChars, $language) {
$firstChar = $matches[3];
if ($language === 'Turkish') {
$upperChar = isset($turkishChars[mb_strtolower($firstChar)])
? $turkishChars[mb_strtolower($firstChar)]
: mb_strtoupper($firstChar);
} else {
$upperChar = mb_strtoupper($firstChar);
}
return $matches[1] . $upperChar;
},
$text
    );
}