def precision_and_recall_stat(gold_nodes_list, pred_nodes_list):
    """
    Return:

    - the number of correctly labeled items
    - the number of gold standard items
    - the number of predicted items
    
    >>> gold_nodes_list = [[('S', 0, 11), ('NP', 0, 2), ('VP', 2, 9), ('VP', 3, 9), ('NP', 4, 6), ('PP', 6, 9), ('NP', 7, 9), ('NP', 9, 10)], [('S', 0, 11), ('NP', 0, 2)]]
    >>> pred_nodes_list = [[('S', 0, 11), ('NP', 0, 2), ('VP', 2, 10), ('VP', 3, 10), ('NP', 4, 6), ('PP', 6, 10), ('NP', 7, 10)], [('S', 0, 9), ('NP', 0, 2), ('SP', 0, 3), ("feng", 1,1)]]
    >>> print precision_and_recall_stat(gold_nodes_list, pred_nodes_list)
    (4, 10, 11)
    """
    
    gold_n = 0
    pred_n = 0
    correct_n = 0
    for gnodes, pnodes in zip(gold_nodes_list, pred_nodes_list):
        gold_n += len(gnodes)
        pred_n += len(pnodes)

        correct_n += len(set(gnodes).intersection(set(pnodes)))

    return correct_n, gold_n, pred_n