dakata__92
Super Moderator
Здравейте. Създадох си един метод за генериране на ключови думи от текст. Търся начин да го подобря, без да ми се налага да се допитвам до база с данни. Та ако има някой вдъхновение и желание да сподели опит, ще съм много благодарен. Ако можем и да го оптимизираме да работи по-бързо също ще е плюс.
PHP:
/**
* @param string $string
* @return string
*/
public function generateKeywords(string $string): string
{
if (empty($string)) {
return '';
}
$stripArray = [",", ".", ";", ":", "\"", "'", "“", "”", "(", ")", "!", "?", "„", "`", "[", "]",];
$space = ' ';
$string = str_replace($stripArray, $space, strip_tags($string));
$string = mb_strtolower(trim(preg_replace('/\s+/u', $space, $string)));
$minWordLength = 2;
$words = explode($space, $string);
$keywords = [];
foreach ($words as $key => $word) {
if (mb_strlen($word) > $minWordLength && !is_numeric($word)) {
$keywords[$word] = $word;
}
}
return implode(',', $keywords ?? []) ?? '';
}