Сравните структуру предложений
Сравнение структуры двух предложений возможно через вычисление и обработку графика их соответствующих элементов.
Изобразите дерево элементов предложения в виде графика.

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

Рассчитайте дистанционную матрицу между всеми вершинами этого графика.

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

Выполните эти же действия для другого предложения.

graph2 = TextStructure["I fly in the sky.", "ConstituentGraph"];
distancemat2 = GraphDistanceMatrix[First[graph2]];
Сравните структуру двух предложений через сравнение дистанционных матриц.

distancemat1 == distancemat2

Два предложения имеют одинаковую структуру.
Найдите предложения с идентичной структурой в двух различных статьях Wikipedia. Начните с извлечения предложений с заданной частотой употребления слов и сгенерируйте график элементов для каждого из них.

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

phrasestruct1 = genStructure["Philosophy"];
phrasestruct2 = genStructure["History"];
Вычислите все дистанционные матрицы.

adj1 = GraphDistanceMatrix /@ phrasestruct1;
adj2 = GraphDistanceMatrix /@ phrasestruct2;
Попарно сравните предложения из различных статей.

comparison = Outer[Equal, adj1, adj2, 1];
Получаем пары предложений с одинаковой структурой

pickedSentences =
Flatten[Pick[Outer[List, phrasestruct1, phrasestruct2], comparison,
True], 1];
Первая пара.

First[pickedSentences]
