I think I will try to use Lingua::EN::Words2Nums in conjunction with Math::Expr to create atoms of a string that looks like "1/4" out of "one fourth", which it seems that it can do, and evaluate that string as an expression. I might even be tempted to just eval it, but i'm not sure about that, as it is user data.