富田算法(Tomita algorithm),文学-语言文字-计算语言学及语料库语言学-计算语言学,基于上下文无关语法的高效的自然语言分析算法。由卡内基-梅隆大学的计算语言学家M.富田(M. Tomita,美国)于1985年提出,是一种扩充的LR算法。在富田算法中,引入了图结构栈、子树共享和局部歧义紧缩等技术,提高了算法的效率。使用标准的LR分析器来分析自然语言时,首要的工作是构造出所有的分析状态以及这些分析状态之间的转移关系,进而明确在什么样的状态下做出什么样的分析动作。LR分析方法把分析状态和分析动作的对应关系组织在一张分析表中,在某个分析状态下,要执行什么样的分析动作,LR分析器只要查一下分析表便知。分析表的构造存在着统一的方法,而且可以自动地进行,对于任何一个上下文无关语法,都可以构造出一张分析表。LR分析表由两个部分组成:一部分为动作表(ACTION),描述在某个状态下遇到某个展望符号时分析器所应该采取的分析动作,另一部分是转移表(GOTO),描述当归约动作发生以后,分析状态应该怎样转移。如下表所示。