2016-07-31 21 views
0

Hat jemand eine Idee oder kann mir Anweisungen geben, wie ich Kategorien aus einem Artikel extrahieren kann?NLP - Kategorien/Tags aus Text extrahieren

Was ich habe, ist ein Korpus von einigen Tausenden von Artikeln (über Sport, Nachrichten, Geschäft usw.) mit denen ich arbeiten kann.

Zum Beispiel, wenn ein Artikel über Sport Theres würde ich mein Programm gerne wissen, ob sein Fußball oder Basketball (oder die anderen), so wird der Ausgang somthing wie:

Fußball 90% Basketball 10%

+0

Haben Sie vorklassifizierte Artikel, die Sie für Trainingszwecke verwenden können? – RAVI

+0

Ich wünsche. dann wäre es ein einfaches maschinelles Lernproblem. Wenn ich das nicht lösen kann, scheint es, dass ich ein Korpus mit vorklassifizierten Artikeln finden und ein Trainingsmodell davon aufbauen müsste. – Eran

Antwort

0

Ich denke, dass Sie einige maschinelle Lernmethoden verwenden können, um dies zu erreichen. Was mir in den Sinn kommt, ist tf-idf Statistik.

Es gibt einen Online-Kurs auf Coursera namens "Machine Learning Foundations: A Case Study Approach", der lehrt, wie tf-idf Statistik auf Woche 4 des Kurses zu verwenden.

+0

Ich habe es bereits mit tf-idf-Modell versucht. Ich bekomme mittelmäßige Ergebnisse. Meist wichtige Wörter in dem Artikel (wie Lakers, Kobe), aber keine Kategorien. – Eran

+0

err Ich würde die Spitze sagen 30 Schlüsselwörter für alle Dokumente und führen Sie eine Art von Clustering alg. Einige K-Mittel Variante mit der K = Anzahl der gewünschten Kategorien zu beginnen ... –

0

Da Sie keine Golddaten für das Training haben, müssen Sie zuerst einige erstellen.

Dafür werden Sie benötigen Klassen definieren und einige Regeln die offensichtliche Wahl für jede Klasse definieren sind,

article_text.contains("soccer") 
article_text.contains("Ronaldo") 

und so auf eigene Faust getaggt Korpus für jede Klasse zu machen.

Es wird nicht 100% genaue Trainingsdaten sein, aber es wird trotzdem gut genug für Trainingszwecke sein.

Dann können Sie jeden ML-Algorithmus für Training und Tests verwenden.