'Converts the graph into a feature-based representation of
each edge, and then assigns a score to each based on the
confidence of the classifier in assigning it to the
positive label.  Scores are returned in a multidimensional list.
:type graph: DependencyGraph
:param graph: A dependency graph to score.
:rtype: 3 dimensional list
:return: Edge scores for the graph parameter.'

def score(self, graph):

    edges = []
    for head_node in graph.nodes.values():
        for child_node in graph.nodes.values():
            edges.append(dict(a=head_node['word'], b=head_node['tag'], c=child_node['word'], d=child_node['tag']))
    edge_scores = []
    row = []
    count = 0
    for pdist in self.classifier.prob_classify_many(edges):
        logger.debug('%.4f    %.4f', pdist.prob('T'), pdist.prob('F'))
        row.append([math.log((pdist.prob('T') + 1e-11))])
        count += 1
        if (count == len(graph.nodes)):
            edge_scores.append(row)
            row = []
            count = 0
    return edge_scores
