$string = 'I like banana, banana souffle, chocobanana and marshmellows.";
$arr = some_function($string);
// $arr = ('banana'=>3,'I'=>1,'like'=>1....);
nasıl en verimli şekilde bunu yapmak için bir fikriniz var mı?
kullanabilirsiniz array_count_values
örneğin
$string = 'I like banana, banana souffle, chocobanana and marshmellows';
$s = prörneğin_split("/[, ]+/",$string);
print_r(array_count_values($s));
Not: Bu yalnızca tam sözcükleri saymak. ChocoBanana muz gibi aynı değildir, çünkü, yani "muz" 2 değil 3 olacak. Arama ve kelimelerin içinde kelimeleri saymak istiyorsanız, ekstra kodlama gerekli
Kısmi kelimeleri saymak istiyorum çünkü, olası kelime ile bir wordlist gerekir. Sonra tüm kelimeler üzerinden, ilk uzay ayrılığına dayalı bir deyişle döngü metni bölmek ve try to find the longest possible substring match against the wordlist. Wordlist büyük ise elbette bu irade gerçekten yavaş olabilir, ama belki bir suffix array sen aracılığıyla arıyor kelimenin kullanarak eşleştirme hızlandırabilir.
Bir eşleşen alt bulamazsanız, sadece biri olarak tüm kelimeyi saymak.
Benim fikrim anlamak umuyoruz. O büyük değil, ama ben gereksinimleri için birlikte gelebilir çözümdür.