Frage

Meine Struktur: in jeder Kategorie gibt es Texte. Diese Texte sind Einträge für sich. Also, Tabelle ‚Kategorie‘ und Tabelle ‚Texte‘. Es gibt etwa 90 Texte in jeder Kategorie, jeder Text ist etwa 300 Zeichen.

Was ich tun möchte, ist Meta-Tags (Keywords) für die Kategorien zu machen. Wie man> erhalten alle relevanten ‚Texte‘ und alle Wörter Rang und die Top 10 Wörter nehmen. Diese Top-10 wird die Kategorie der Keyword-Meta-Tag sein.

Nun .. Der Trick>, wie man diese Top 10 Wörter abzurufen. Aktuell> Ich habe, dass jeder Text (ein Volltext) wird in einen pro-Wort-Array aufgeteilt werden. Dieses Array (in PHP) wird sehr lang sein. Nach nehme ich die Frequenz jedes Wort, und es Rang wieder auf Frequenz. Voila Top 10 Wörter.

Ich habe dieses Verfahren nicht getestet, aber ich denke, es könnte ein bisschen dauern. Es wird zwischengespeichert werden, so wird es nur einmal oder so jede Woche laufen müssen, aber immer noch, ich würde nicht einen Timeout bekommen.

Haben Sie Jungs irgendwelche Tipps? Jede Hilfe sehr geschätzt.

Danke,

Maurice

War es hilfreich?

Lösung

Ok, jetzt, wo ich gesagt habe meinen Frieden in dem Kommentar oben, ich werde auf Ihren Algorithmus erhalten.

Es gibt mehrere Möglichkeiten, dies zu tun, ich auf einem PHP-schweren Ansatz im Vordergrund stehen werden und lassen Sie andere SOers einige andere, die tun.

Ich werde Sie davon ausgehen, haben bereits die Datenbank abgefragt und alle Worte als durch Leerzeichen getrennte Liste in die Variable $ Texte gespeichert

// Sample data in $texts
$texts      = "orange orange apple apple apple banana";
$withCounts = array_count_values( explode( ' ', $texts ) );

asort( $withCounts );
$topTen = array_keys( array_reverse( array_slice( $withCounts, -10 ) ) );

print_r( $topTen );
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top