Relevante Tags / Schlüsselwörter aus dem Textblock extrahieren

8

Ich wollte eine bestimmte Implementierung, so dass der Benutzer einen Textblock wie folgt zur Verfügung stellt:

  

"Anforderungen   - Arbeitskenntnisse in LAMP Environment mit Linux, Apache 2,   MySQL 5 und PHP 5,   - Kenntnisse über Web 2.0-Standards   - Bequem mit JSON   - Praktische Erfahrung in der Arbeit mit Frameworks, Zend, OOPs   - Cross Browser Javascripting, JQuery usw.   - Kenntnisse der Versionssteuerungssoftware, wie z. B. der Unterversion   vorzuziehen. "

Was ich tun möchte, ist automatisch relevante Keywords auszuwählen und Tags / Schlüsselwörter zu erstellen, daher sollten relevante Tags für das obige Stück Text sein: mysql, php, json, jquery, Versionskontrolle, oop, web2. 0, Javascript

Wie kann ich es in PHP / Javascript usw. machen? Ein Vorsprung wäre wirklich hilfreich.

    
sgomez 28.01.2011, 12:22
quelle

4 Antworten

16

Eine sehr naive Methode ist das Entfernen von häufigen Stopps aus dem Text, sodass Sie mehr haben aussagekräftige Wörter wie "Standards", "JSON" usw. Sie werden jedoch immer noch eine Menge Lärm bekommen, so dass Sie einen Service wie OpenCalais , die eine ziemlich anspruchsvolle Analyse Ihres Textes durchführen können.

Aktualisierung:

Okay, der Link in meiner vorherigen Antwort wies auf Implementierungen hin, aber Sie haben nach einem gefragt, also ist ein einfacher hier:

%Vor%

Sie können dies und den Inhalt von stop_word.txt in diesem Gist sehen.

Wenn Sie den obigen Beispieltext ausführen, wird das folgende Array erstellt:

%Vor%

Also, wie ich schon sagte, das ist etwas naiv und könnte mehr Optimierung (plus es ist langsam) verwenden, aber es zieht die relevanteren Keywords aus Ihrem Text heraus. Sie müssten auch die Stoppwörter fein abstimmen. Das Erfassen von Begriffen wie Web 2.0 wird sehr schwierig sein, also denke ich, dass es besser wäre, einen seriösen Dienst wie OpenCalais zu benutzen, der einen Text versteht und eine Liste von Entitäten und Referenzen zurückgibt. DocumentCloud verwendet diesen Service, um Informationen aus Dokumenten zu sammeln.

Auch für die clientseitige Implementierung könnten Sie mit JavaScript ziemlich genau dasselbe tun und wahrscheinlich viel sauberer (obwohl es für den Client langsam sein könnte).

    
Darren Newton 28.01.2011 13:06
quelle
5

Ich habe heute Morgen eine kurze Übersicht über diese gemacht und zu meiner Überraschung wurde eine, die am besten mit meiner Testphrase funktioniert, in PHP

geschrieben

Was aussah wie das professionellste, das abgrundtief durchgeführt wurde: viewer.opencalais.com

Andere, die OK waren, waren (nicht sicher, in welcher Sprache sie geschrieben sind)

  • www.nactem.ac.uk/software/termine/#form
  • www.alchemyapi.com/api/keyword/
user2412642 23.05.2013 08:06
quelle
2

Dies ist nicht einfach zu tun, da es irgendeine Art von Fuzzy-Logik erfordert. Sie sollten den Yahoo Term Extractor YQL

verwenden

Sieh es dir an: Dmitri 28.01.2011 12:29

quelle
0

Je nachdem, ob Sie die Keywords / Tags des Clients anzeigen möchten oder die Keywords / Tags aus dem Textblock extrahieren möchten, führen Sie weitere Berechnungen mit ihnen durch.

Wenn Sie sie nur anzeigen müssen, ist die clientseitige Handhabung in Ordnung. Wenn Sie sie für weitere Berechnungen benötigen, verwenden Sie dafür die serverseitige Handhabung.

Ich kann eine Javascript-Client-Implementierung empfehlen, wenn Sie weitere Details angeben können. Wenn Sie die Keywords generisch "wissen" wollen, ist eine clevere Lösung notwendig.

Wenn Sie eine Liste mit Schlüsselwörtern haben, können Sie reguläre Ausdrücke verwenden, um die Daten zu extrahieren

    
Raynos 28.01.2011 12:34
quelle

Tags und Links