Kategorisierung mit Lernen

cr4m0

Angesehenes Mitglied
Ich suche eine Möglichkeit, um das folgende Problem zu lösen:

Man hat Texte in einer Datenbank. Diese sollen automatisch kategorisiert werden. Dafür stehen 6 Kategorien bereit. Das System soll aus den alten Kategorisierungen lernen und so die neuen vornehmen.
Den Anfang muss man also selbst machen: Man teilt einigen Texten Kategorien zu. Das System erkennt so ein Muster und nimmt die Kategorisierungen selbst so vor.

Beispiel:
Bisher wurden alle Texte, in denen fünf Mal "Sport" und drei Mal "China" vorkam, der Kategorie "Olympia" zugeordnet. Also wird auch dieser Text der Kategorie "Olympia" zugeordnet.

Meine Ansätze:
1) Aus der Datenbank wird mit einer Volltext-Suche der ähnlichste Text rausgesucht. Dessen Kategorie ist auch die Kategorie für den aktuellen Text.
2) Alle Texte der einzelnen Kategorien werden verkettet. Die Kette, die mit dem aktuellen Text die höchste Übereinstimmung hat, gibt die Kategorie an.
Welchen der beiden Ansätze findet ihr besser? Habt ihr noch bessere Ansätze?

Danke im Voraus!
 
Lies dich mal in "Bayessche Filter" ein.
Diesesn Algorythmus verwende ich fuer solche Systeme.

MfG
GP
 
OK, danke für den Tipp! Ich hab mal bei Wikipedia gelesen. Und da stand, dass der Markow-Filter eine Weiterentwicklung ist. Also hab ich mir mal den Algorithmus angesehen. Ich verstehe aber nicht genau, was ich wo einsetzen muss. Kann mir da einer weiterhelfen?

http://upload.wikimedia.org/math/4/0/3/403...1a289dd5768.png

Beim Analysieren des Textes sollen nachher nur Wörter mit 3-30 Zeichen beachtet werden. Reine Zahlen werden übersprungen.
 
Ich hab mir den Filter jetzt mal genauer angeguckt. So wie ich das verstanden habe, funktioniert der Filter aber nur bei zwei Kategorien. Ich habe sechs Kategorien.
Ich habe auf jeden Fall mehrere Stunden lang probiert, den Algorithmus für mehrere Kategorien zu finden, habe es aber nicht geschafft.
Stimmt das so, oder kann man den auch für mehr als zwei Kategorien benutzen?
 
x gehört zur Kategorie 1 - ja / nein
x gehört zur Kategorie 2 - ja / nein
x gehört zur Kategorie 3 - ja / nein
 
@jAuer: Danke für den Tipp! Das hätte ich auch so machen können. Aber ich habe doch noch eine schnellere Methode gefunden:
Mit dem Algorithmus, den G.P. empfohlen hat, errechne ich jetzt für jede Kategorie die Wahrscheinlichkeit. Die Kategorien werden mit Wahrscheinlichkeit in ein Array eingefügt. Das Array ordne ich dann und nehme die Kategorie mit der höchsten Wahrscheinlichkeit.
 
Zurück
Oben