Comparez la structure de phrases
La structure de deux phrases peuvent être comparées en calculant en traitant leurs graphiques constitutifs respectifs.
Affichez l'arbre de constituants d'une phrase comme un graphe.

graph = TextStructure["Time flies like an arrow.", "ConstituentGraph"]

Calculez la matrice des distances entre tous les sommets de ce graphe.

distancemat1 = GraphDistanceMatrix[First[graph]];
MatrixForm[distancemat1]

Procédez de même pour une autre phrase.

graph2 = TextStructure["I fly in the sky.", "ConstituentGraph"];
distancemat2 = GraphDistanceMatrix[First[graph2]];
Comparez la structure de deux phrases en comparant leurs matrices de distance.

distancemat1 == distancemat2

Les deux phrases ont la même structure.
Trouvez des phrases avec des structures identiques dans deux articles différents de Wikipédia. Tout d'abord, extrayez des phrases avec un nombre de mots donnés et générez le graphe constituant pour chacune d'elles.

processWikiPage[article_] :=
Select[TextCases[WikipediaData[article], "Sentences"],
WordCount[#] < 5 &];
genStructure[article_] :=
Flatten[TextStructure[#, "ConstituentGraph"] & /@
processWikiPage[article]];

phrasestruct1 = genStructure["Philosophy"];
phrasestruct2 = genStructure["History"];
Calculez toutes les matrices de distance.

adj1 = GraphDistanceMatrix /@ phrasestruct1;
adj2 = GraphDistanceMatrix /@ phrasestruct2;
Comparez les deux phrases des différents articles deux par deux.

comparison = Outer[Equal, adj1, adj2, 1];
Voici les paires phrases ayant la même structure.

pickedSentences =
Flatten[Pick[Outer[List, phrasestruct1, phrasestruct2], comparison,
True], 1];
Voici la première paire.

First[pickedSentences]
