Szavak számának meghatározása
Sziasztok!
Abban szeretném a segítségeteket kérni, hogy hogyan lehet azt megcsinálni, hogy egy adott szövegben megszámolni, hogy miből hány szó van.
Az lenne a legjobb, ha tömbbe adná vissza az eredményt, sorba állítva a gyakorisága szerint.
Előre is köszönöm segítségeteket. :001_smile:
re: Szavak számának meghatározása
firefox -> extensions -> seoquake -> keywords density...
re: Szavak számának meghatározása
Szia!
Nem próbáltam ki! Először valahogy szét kell szedni egy tömbe a szavakat, majd egy új tömbbe megszámolni őket. Amit írtam, az ha jól működik, akkor olyan tömböt készít ahol a kulcsok a szavak és az értékek a darabszámok. Persze máshogy is lehetne. (A $text-be van a szöveg és $result-ban lesz az eredmény)
PHP kód:
$replace = array(', ' => ' ', ',' => ' ', '/' => ' ', '!' => '', '.' => '', '(' => '', ')' => '', '+' => ' ', '*' => ' ', ' ' => ' ', ' ' => ' '); //...
$array = explode(' ',trim(strtr(str2lower($text), $replace)));
$result = array();
foreach($array as $item) {
if (!isset($result{$item})) $result{$item} = 1;
else $result{$item} += 1;
}
re: Szavak számának meghatározása
Idézet:
Harder eredeti hozzászólása
firefox -> extensions -> seoquake -> keywords density...
Gondolom weblapra szeretné a megoldást kiíratni.
Olyan "keywords tools" szerű oldalra.
re: Szavak számának meghatározása
lehet, de nem volt kitétel a php-s megoldás :P Ha neki nem is jó, másnak talán hasznos lesz, ha a témában keresgél.
re: Szavak számának meghatározása
Hogyan lehetne szám szerint sorba rakni???? :pff)
Jelenleg ezt adja vissza:
Idézet:
Array
(
[hévíz] => 15
[szállás] => 53
[wellness] => 26
[szálloda] => 34
[exkluzív] => 3
[hotel] => 71
[balaton] => 54
[szállásfoglalás] => 7
[lakosztály] => 3
[szoba] => 22
)
Így kellene, hogy a tömbbe legyen:
Idézet:
Array
(
[hotel] => 71
[balaton] => 54
[szállás] => 53
[szálloda] => 34
[wellness] => 26
[szoba] => 22
[hévíz] => 15
[szállásfoglalás] => 7
[exkluzív] => 3
[lakosztály] => 3
)
Köszi :001_smile:
re: Szavak számának meghatározása
Idézet:
nagysanyi eredeti hozzászólása
Hogyan lehetne szám szerint sorba rakni???? :pff)
Ha megnyomod az előző hozzászólásomon a "köszönöm" gombot, elárulom! :001_rolleyes:
-------------------------
Próbáld ki ezt: aksort($result, true);
re: Szavak számának meghatározása
Ezt a hibaüzenetet adja vissza: :( Call to undefined function aksort()
re: Szavak számának meghatározása
Idézet:
nagysanyi eredeti hozzászólása
Ezt a hibaüzenetet adja vissza: :( Call to undefined function aksort()
Az hogy lehet? Hányas php? Egyébként itt böngészhetsz:
http://www.php.net/manual/en/array.sorting.php
Próbálj, akkor valami saját sorbarendezést írni, pl.:
PHP kód:
usort($result, create_function('$a, $b', 'return $a < $b;'));
A return $a < $b; helyére írhatsz bonyolultabb dolgokat is. Itt mondod meg, hogy mikor legyen az egyik elem előrébb a másiknál.
re: Szavak számának meghatározása
Idézet:
TZ. eredeti hozzászólása
Az hogy lehet? Hányas php? Egyébként itt böngészhetsz:
Próbálj, akkor valami saját sorbarendezést írni, pl.:
PHP kód:
usort($result, create_function('$a, $b', 'return $a < $b;'));
A
return $a < $b; helyére írhatsz bonyolultabb dolgokat is. Itt mondod meg, hogy mikor legyen az egyik elem előrébb a másiknál.
TZ. szerintem elírtad a függvény nevét, aksort() tényleg nincs. :)
arsort($result) szerintem tökéletes lesz neked, az rendezi érték szerint csökkenőbe. Arra figyelj, hogy ez a $result változót alakítja át, tehát ne ezt add értékül egy másik változónak és az eredeti sorrend is elveszik így.