You've got 3 equations and 9 unknowns.
Code:

~.'NATE TONY MIRA'-.' ' NB. nub of the letters without the space character
NATEOYMIR
#~.'NATE TONY MIRA'-.' ' NB. tally is 9
9

This system of equations is under-determined---no unique solution.
Code:

N A T E O Y M I R
/ \ / \ / \
| 1 1 1 1 0 0 0 0 0 | | N | | 10 |
| 1 0 1 0 1 1 0 0 0 | | A | = | 15 |
| 0 1 0 0 0 0 1 1 1 | | T | | 20 |
\ / | E | \ /
| O |
| Y |
| M |
| I |
| R |
\ /

With as many words as characters the system will have an unique solution or no solution at all, and with more words the system is over-determined. Then you can find a best-fit solution.

For example, if the sum of letters in "rat" is 8, "tat" is 5, and "at" is 3 what is the sum of "ra"?
Code:

NB. Solve these equations
NB. r a t
NB. 1 1 1 8
NB. 0 1 2 5
NB. 0 1 1 3
[A=:1 1 1,0 1 2 ,:0 1 1
1 1 1
0 1 2
0 1 1
(,.8 5 3)%.A
5
1
2
NB. thus 'r' is 5, 'a' is 1, 't' is 2, and "ra" should be 6.
1 1 0 +/ .* (,.8 5 3)%.A NB. dot product with "ra"
6

That's written in j, executable Iverson notation. www.jsoftware.com .

How do we do it with numpy?
Code:

>>> import numpy
>>> import numpy.linalg as LA
>>> A = numpy.asarray(((1, 1, 1,),(0, 1, 2,),(0, 1, 1,)))
>>> A
array([[1, 1, 1],
[0, 1, 2],
[0, 1, 1]])
>>> LA.solve(A,[8,5,3])
array([ 5., 1., 2.])
>>> LA.solve(A,[8,5,3]).dot((1,1,0))
6.0
>>>

And if the system is overdetermined, look here ( http://docs.scipy.org/doc/numpy/reference/generated/numpy.linalg.lstsq.html )

agrees : Haha. Yeah I figured out what he was trying to accomplish after I posted. The insufficiency of the sample set confused me. :D