(* complete dictionary of words, one per row, number of rows is (alpha^word), using words of length "word" and an alphabet of "alpha" number of characters *)
alpha = 4; word = 3; dict =.;
dict = Partition[Flatten[Tuples[Reverse[IdentityMatrix[alpha]], word]], (alpha*word)];
PseudoInverse[dict] == ((Transpose[dict])*((alpha)^-(word - 1))) - ((word - 1)/(alpha^word)/word)
Output is True
An equation editor format is here:
I cannot read that formula for the pseudoinverse. It would be better to provide actual code.
As for how the pseudoinverse is computed, it uses SVD when the matrix is approximate numbers but not when exact. In the former case it should be probably cubic in the rows/columns(maybe quadratic in the larger of those and linear in the other). For exact numbers it's a different world due to intermediate growth of elements, and also need to use rationals.
If there was a question, I hope this helps to address it.
Answer: That's a hard way to take 12 column averages!