(self)
return result[self.nb_node][0]
动态规划求最优路径
        result的key是当前字的下标，代表截止到前一字的规划结果，
        result的第一个值是list，表示匹配片段的(start, end)下标对；
        result的第二个值是路径的分数
动态规划求最优路径
        result的key是当前字的下标，代表截止到前一字的规划结果，
        result的第一个值是list，表示匹配片段的(start, end)下标对；
        result的第二个值是路径的分数
动态规划求最优路径 result的key是当前字的下标，代表截止到前一字的规划结果， result的第一个值是list，表示匹配片段的 ( start end ) 下标对； result的第二个值是路径的分数
def optimal_path(self):
        """动态规划求最优路径
        result的key是当前字的下标，代表截止到前一字的规划结果，
        result的第一个值是list，表示匹配片段的(start, end)下标对；
        result的第二个值是路径的分数
        """
        result = {0: ([], 1)}
        start = 0  # 当前字的下标
        length = self.nb_node
        while start < length:
            if start in self.edges:  # 如果匹配得上
                for i, j in self.edges[start].items():  # 这里i是终止下标
                    score = result[start][1] + j  # 当前路径分数
                    # 如果当前路径不在result中，或者它的分数超过已有路径，则更新
                    if i not in result or (score > result[i][1]):
                        result[i] = result[start][0] + [(start, i)], score

            # 为了下一步的匹配，如果下一字还不在result中，
            # 就按单字来插入，概率为null_score
            if start + 1 not in result:
                score = result[start][1] + self.null_score
                result[start
                       + 1] = result[start][0] + [(start, start + 1)], score

            start += 1

        return result[self.nb_node][0]
def optimal_path ( self ) : result = { 0 : ( [ ] , 1 ) } start = 0 # 当前字的下标 length = self . nb_node while start < length : if start in self . edges : # 如果匹配得上 for i , j in self . edges [ start ] . items ( ) : # 这里i是终止下标 score = result [ start ] [ 1 ] + j # 当前路径分数 # 如果当前路径不在result中，或者它的分数超过已有路径，则更新 if i not in result or ( score > result [ i ] [ 1 ] ) : result [ i ] = result [ start ] [ 0 ] + [ ( start , i ) ] , score # 为了下一步的匹配，如果下一字还不在result中， # 就按单字来插入，概率为null_score if start + 1 not in result : score = result [ start ] [ 1 ] + self . null_score result [ start + 1 ] = result [ start ] [ 0 ] + [ ( start , start + 1 ) ] , score start += 1 return result [ self . nb_node ] [ 0 ]