Frage

Ich arbeite gerade an einem Projekt, in dem ich die häufigsten Sätze in einem riesigen Text aussuchen muss. Zum Beispiel haben wir drei Sätze wie Folgendes:

  • Der Hund sprang über die Frau.
  • Der Hund sprang in das Auto.
  • Der Hund sprang Die Treppe hoch.

Aus dem obigen Beispiel würde ich extrahieren wollen "Der Hund sprang"Da es sich um die häufigste Phrase im Text handelt. Zuerst dachte ich:" Oh, lasst uns einen gerichteten Diagramm [mit wiederholten Knoten] verwenden ":"

Regie Graph http://img.skitch.com/20091218-81ii2femnfgfipd9jtdg32m74f.png

BEARBEITEN: Entschuldigung, ich habe einen Fehler gemacht, als ich dieses Diagramm "über", "in" und "up" machte, sollte alle auf "The" zurückkehren.

Ich würde eine Zählung dessen beibehalten, wie oft ein Wort in jedem Knotenobjekt aufgetreten ist ("das" würde 6; "Hund" und "springen", 3; usw.), aber trotz vielen anderen Problemen kam der Hauptproblem auf Wir fügen ein paar weitere Beispiele hinzu (bitte ignorieren Sie die schlechte Grammatik :-)):

  • Hund sprang auf und ab.
  • Der Hund sprang, als wäre noch nie zuvor ein Hund gesprungen.
  • Hund sprang glücklich.

Wir haben jetzt ein Problem seitdem "Hund"würde einen neuen Stammknoten starten (auf der gleichen Ebene wie" das ") und wir würden uns nicht identifizieren"Hund sprang"Da jetzt der häufigste Satz ist. Jetzt denke ich, dass ich vielleicht ein ungerichteter Diagramm verwenden könnte, um die Beziehungen zwischen all den Wörtern abzubilden und schließlich die gängigen Sätze auszusuchen, aber ich bin mir nicht sicher, wie dies funktionieren wird. Wenn Sie das wichtige Reihenfolge zwischen den Wörtern verlieren.

Hat jemand allgemeine Ideen, wie man gemeinsame Phrasen in einem großen Teil von Text identifiziert und welche Datenstruktur ich verwenden würde.

Danke, Ben

War es hilfreich?

Lösung

Schauen Sie sich diese verwandte Frage an: Welche Techniken/Tools gibt es, um häufige Phrasen in Textbrocken zu entdecken? Auch im Zusammenhang mit Das am längsten häufige Substringproblem.

Ich habe das schon einmal gepostet, aber ich benutze R Für alle meine Datenminenaufgaben und diese Art von Analyse sind gut geeignet. Insbesondere schauen Sie sich das an tm Paket. Hier sind einige relevante Links:

Im Allgemeinen gibt es eine große Anzahl von Textabbaupaketen Über die natürliche Sprachverarbeitungsansicht auf Kran.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top