Satzstrukturen vergleichen
Die Struktur von zwei Sätzen kann durch die Berechnung und Verarbeitung ihrer jeweiligen Satzkomponenten verglichen werden.
Veranschaulichen Sie die Struktur eines Satzes als Baumgraph.
graph = TextStructure["Time flies like an arrow.", "ConstituentGraph"]
Berechnen Sie die Matrix der Distanzen zwischen allen Knoten des Graphen.
distancemat1 = GraphDistanceMatrix[First[graph]];
MatrixForm[distancemat1]
Gehen Sie auf ähnliche Weise mit einem anderen Satz vor.
graph2 = TextStructure["I fly in the sky.", "ConstituentGraph"];
distancemat2 = GraphDistanceMatrix[First[graph2]];
Vergleichen Sie die Struktur der zwei Sätze, indem Sie ihre Distanzmatritzen gegenüberstellen.
distancemat1 == distancemat2
Die beiden Sätze haben dieselbe Struktur.
Finden Sie Sätze mit identischer Struktur in zwei unterschiedlichen Wikipedia-Artikeln. Extrahieren Sie zuerst Sätze mit einer bestimmten Wortanzahl und erstellen Sie Graphen für beide.
processWikiPage[article_] :=
Select[TextCases[WikipediaData[article], "Sentences"],
WordCount[#] < 5 &];
genStructure[article_] :=
Flatten[TextStructure[#, "ConstituentGraph"] & /@
processWikiPage[article]];
phrasestruct1 = genStructure["Philosophy"];
phrasestruct2 = genStructure["History"];
Berechnen Sie die Distanzmatritzen.
adj1 = GraphDistanceMatrix /@ phrasestruct1;
adj2 = GraphDistanceMatrix /@ phrasestruct2;
Vergleichen Sie die Sätze der beiden Artikel paarweise.
comparison = Outer[Equal, adj1, adj2, 1];
Dies sind die Satzpaare mit identischer Struktur.
pickedSentences =
Flatten[Pick[Outer[List, phrasestruct1, phrasestruct2], comparison,
True], 1];
Dies ist das erste Paar.
First[pickedSentences]