Wie mache ich eine Textklassifizierung in einer Klasse?


14

Ich muss mich mit einem Textklassifizierungsproblem befassen. Ein Webcrawler durchsucht Webseiten einer bestimmten Domain und ich möchte für jede Webseite herausfinden, ob sie nur zu einer bestimmten Klasse gehört oder nicht. Das heißt, wenn ich diese Klasse Positiv nenne , gehört jede gecrawlte Webseite entweder zur Klasse Positiv oder zur Klasse Nicht-Positiv .

Ich habe bereits eine große Anzahl von Schulungswebseiten für die Klasse Positiv . Aber wie erstelle ich ein Trainingsset für die Klasse Non-Positive, das so repräsentativ wie möglich ist? Ich meine, ich könnte im Grunde alles für diese Klasse verwenden. Kann ich nur einige beliebige Seiten sammeln, die definitiv nicht zur Klasse Positiv gehören ? Ich bin mir sicher, dass die Leistung eines Textklassifizierungsalgorithmus (ich bevorzuge die Verwendung eines Naive Bayes-Algorithmus) stark davon abhängt, welche Webseiten ich für die Klasse Nicht positiv auswähle .

Also, was soll ich tun? Kann mir bitte jemand einen Rat geben? Vielen Dank!


Dies ist in der Tat ein Clustering von zwei Klassen, da Sie zwei Klassen haben. Für eine Klasse hätten Sie nur eine Klasse und würden gerne beurteilen, wie gut Ihre Beobachtungen zu den Daten passen (dh Ausreißer erkennen).
Tim

Dieses Lernproblem hat einen Namen - PU-Lernen. Dies ist natürlich zu verwenden, wenn positive Beispiele leicht oder natürlich zu bekommen sind, aber negative im Grunde alles andere sind (schwer zu bekommen). Im Prinzip möchten Sie einen Standardklassifikator mit zwei Klassen lernen, jedoch mit unterschiedlichen Kriterien - optimieren Sie den Bereich unter der PR-Kurve. Mit diesem Softwarepaket können Sie einen solchen Klassifizierer trainieren. Code.google.com/p/sofia-ml
Vladislavs Dovgalecs 29.07.15

Antworten:


5

Der Spy EM-Algorithmus löst genau dieses Problem.

S-EM ist ein Textlern- oder Klassifizierungssystem, das aus einer Reihe positiver und unbeschrifteter Beispiele (keine negativen Beispiele) lernt. Es basiert auf einer "Spion" -Technik, naiven Bayes und einem EM-Algorithmus.

Die Grundidee ist, Ihr Positiv-Set mit einer ganzen Reihe zufällig gecrawlter Dokumente zu kombinieren. Sie behandeln zunächst alle gecrawlten Dokumente als negative Klasse und lernen einen naiven Bayes-Klassifikator für diese Gruppe. Jetzt sind einige dieser gecrawlten Dokumente tatsächlich positiv, und Sie können alle Dokumente, die eine höhere Bewertung als das richtig positive Dokument mit der niedrigsten Bewertung haben, konservativ neu kennzeichnen. Dann iterieren Sie diesen Prozess, bis er sich stabilisiert.


Vielen Dank, das hört sich sehr vielversprechend an. Ich werde einen Blick darauf werfen.
Pemistahl

6

Hier ist eine gute These zur Einklassifizierung:

  • Tax, DM: Einstufige Klassifizierung - Konzept-Lernen ohne Gegenbeispiele , Dissertation, Technische Universität Delft, 2001. ( pdf )

In dieser Arbeit wird die Methode der Support Vector Data Description (SVDD) vorgestellt, einer einklassigen Support Vector Machine, die eine minimale Hypersphäre um die Daten herum findet und keine Hyperebene, die die Daten trennt.

In der Arbeit werden auch andere Einklassenklassifikatoren untersucht.


Willkommen auf der Seite, @nub. Wir hoffen, ein permanentes Repository für statistische Informationen aufzubauen, und sorgen uns daher um die Möglichkeit von Linkrot. Würde es Ihnen etwas ausmachen, eine Zusammenfassung der Informationen in dieser Arbeit zu geben, falls der Link nicht mehr funktioniert?
gung - Wiedereinsetzung von Monica

Vielen Dank für die Zusammenfassung. Bitte registrieren und Ihre Konten fusionieren (können Sie herausfinden, wie in der Ihr Konto Bereich unserer Hilfe ), dann werden Sie zu bearbeiten und kommentieren Sie Ihre eigenen Beiträge können.
gung - Reinstate Monica

@gung Danke für die Begrüßung. Ich freue mich sehr, dass ich auf StackOverflow selbst das "Yearling" -Abzeichen erhalten habe. Jetzt kann ich überall Kommentare abgeben.
Josiah Yoder

@JosiahYoder, wenn Sie der OP hier sind, führen Sie bitte Ihre Konten zusammen. Sie können , wie in der herausfinden, Ihr Konto Bereich unserer Hilfe .
gung - Wiedereinsetzung von Monica

Ich bin nicht der OP. Nur ein zufälliger SO-Benutzer, der diese Frage beantwortet hat.
Josiah Yoder

1

Für ein gutes Training sind Daten erforderlich, die gute Schätzungen der einzelnen Klassenwahrscheinlichkeiten liefern. Jedes Klassifizierungsproblem umfasst mindestens zwei Klassen. In Ihrem Fall ist die zweite Klasse jemand, der nicht in der positiven Klasse ist. Um mit Bayes oder einer anderen guten Methode eine gute Entscheidungsgrenze zu bilden, sollten möglichst viele Trainingsdaten zufällig aus der Klasse ausgewählt werden. Wenn Sie keine zufällige Auswahl treffen, erhalten Sie möglicherweise eine Stichprobe, die die Form der klassenbedingten Dichten / Verteilungen nicht wirklich wiedergibt und zu einer schlechten Auswahl der Entscheidungsgrenze führen kann.


1
Sie haben recht, genau das stört mich. Wie wählt man eine Stichprobe nicht positiver Stichproben aus, die zu einer guten Entscheidungsgrenze führt? Ist eine zufällige Auswahl das Beste, was ich tun kann?
Pemistahl

0

Ich stimme Michael zu.

In Bezug auf Ihre Frage zur zufälligen Auswahl; ja: Sie müssen zufällig aus dem komplementären Satz Ihrer "Positiven" auswählen. Wenn Sie sich nicht sicher sind, ob Ihre "Positiven" vollständig als "reine Positiven" definiert sind, können Sie, wenn ich diesen Ausdruck verwende, auch zumindest eine passende Definition für Positive ausprobieren, damit Sie es tun Kontrolle der Variablen, die möglicherweise eine Kontamination der Definition von „positiv“ verursachen. In diesem Fall müssen Sie auch auf der "nicht positiven" Seite die gleichen Variablen entsprechend abgleichen.


0

Ein Artikel, der von Interesse sein kann, ist:

"Erweiterte Klassifizierung des nächstgelegenen geschrumpften Zentroids: Eine neue Methode für die Zuweisung offener Urheberschaften von Texten unterschiedlicher Größe", Schaalje, Fields, Roper und Snow. Literary and Linguistic Computing, vol. 26, No. 1, 2011.

Wodurch eine Methode zum Zuweisen eines Texts zu einer Gruppe von Autoren verwendet und erweitert wird, um die Möglichkeit zu nutzen, dass sich der wahre Autor nicht in der Kandidatengruppe befindet. Auch wenn Sie die NSC-Methode nicht verwenden, können die in diesem Artikel enthaltenen Ideen hilfreich sein, um über das weitere Vorgehen nachzudenken.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.