En supposant que vous avez une sorte de similitudes dans toutes les matrices. Ensuite, vous avez des similitudes entre les livres, qui sont basées sur la co-occurrence de mots clés et aussi sur la similitude entre les différents mots-clés:
A = B C B^T.
Où A est votre matrice de similarité, B est la matrice de mots-clés correspondant aux livres et C est une matrice de similitudes entre différents mots-clés.
Vous avez une matrice de taille n_A, et ne pas plus que n_A. Ensuite, vous ne pouvez pas récupérer C au même rang Nc, de sorte que vous pouvez supposer C avoir sous forme
C = V^T V.
Ensuite, vous pouvez facilement restaurer C, en faisant eigendecomposition de A. D'une part, vous avez
A = U D U^T,
d'autre part, vous avez
A = B^T C B.
en comparant ces deux, vous avez
B V^T = U D^{1/2},
parce que D est diagonal (espérons que A n'a pas de valeurs propres complexes, cependant).
L'équation ci-dessus pourrait être résolue pour V avec des carrés minimaux. Tous les solveurs dont vous avez besoin pour cela sont implémentés dans tous les principaux langages de programmation, par exemple, en python c'est une bibliothèque numpy.
vous pouvez faire 'C = B 'B',' C = B' AB' ou l'échantillon C complètement au hasard ... et beaucoup d'autres choses, sans ** exactement préciser ce que chacun représente, il n'y a pas de réponse ** . – lejlot
Merci @lejlot. Le matirx A montre une sorte de relation préalable entre les livres. par exemple livre "ee" est la condition préalable pour le livre "cc". Ensuite, vous pouvez voir A comme un graphique dirigé qui montre la relation prérequise entre les livres –