def get_named_people_from_sen(sen):
    """
    returns a list of annotated words that correspond to named entities in sen.
    sen must be an annotated sentence dict.

    each element of the returned list is a list of annotated words. Each list
    corresponds to a single entity.

    result looks like:
        [[[u'Dan',
           {u'CharacterOffsetBegin': u'0',
            u'CharacterOffsetEnd': u'3',
            u'Lemma': u'Dan',
            u'NamedEntityTag': u'PERSON',
            u'PartOfSpeech': u'NNP'}],
          [u'Calacci',
           {u'CharacterOffsetBegin': u'4',
            u'CharacterOffsetEnd': u'11',
            u'Lemma': u'Calacci',
            u'NamedEntityTag': u'PERSON',
            u'PartOfSpeech': u'NNP'}]],
         [[u'Shane',
           {u'CharacterOffsetBegin': u'18',
            u'CharacterOffsetEnd': u'23',
            u'Lemma': u'Shane',
            u'NamedEntityTag': u'PERSON',
            u'PartOfSpeech': u'NNP'}],
          [u'Boissiere',
           {u'CharacterOffsetBegin': u'24',
            u'CharacterOffsetEnd': u'33',
            u'Lemma': u'Boissiere',
            u'NamedEntityTag': u'PERSON',
            u'PartOfSpeech': u'NNP'}]]]
    """
    wordlist = sen['words']
    entities = []

    named = []
    for index, word in enumerate(wordlist):
        if word[1]['NamedEntityTag'] == 'PERSON':
            named.append(word)

        try:
            next = wordlist[index+1]
        except:
            named = []
            break

        if next[1]['NamedEntityTag'] != 'PERSON':
            if named:
                entities.append(named)
            named = []

    return entities