if not os.path.isfile(nt_results_path):
    print 'Invalid NeuralTalk results file'
    sys.exit(-1)

captions_dict = pickle.load(open(captions_dict_path))
generated_captions_list = open(nt_results_path, 'r').readlines()

tp = 0
for gc_item in generated_captions_list:
    frame_filename, generated_caption = gc_item.split(SEPARATOR)
    frame_filename = frame_filename.strip()
    generated_caption = generated_caption.strip()
    video_filename = get_videoname(frame_filename)
    if not video_filename in captions_dict:
        print 'Video was not found in dictionary:\n%s'%(video_filename)
        continue
    
    original_caption = captions_dict[video_filename]
    generated_verbs = nlpa.extract_lemmatized_verbs(generated_caption)
    original_caption = nlpa.remove_invalid_unicode(original_caption)  #clean-up caption
    original_verbs = set(nlpa.extract_lemmatized_verbs(original_caption))
    
    for gverb in generated_verbs:
        if gverb in original_verbs:
            tp += 1
            break

tp_rate = tp/len(generated_captions_list)
print 'TP:                 %d'%tp
print 'Total captions:     %d'%len(generated_captions_list)
print 'True positive rate: %04f'%(tp_rate)
Beispiel #2
0
    print 'Invalid NeuralTalk results file'
    sys.exit(-1)

captions_dict = pickle.load(open(captions_dict_path))
generated_captions_list = open(nt_results_path, 'r').readlines()

tp = 0
for gc_item in generated_captions_list:
    frame_filename, generated_caption = gc_item.split(SEPARATOR)
    frame_filename = frame_filename.strip()
    generated_caption = generated_caption.strip()
    video_filename = get_videoname(frame_filename)
    if not video_filename in captions_dict:
        print 'Video was not found in dictionary:\n%s' % (video_filename)
        continue

    original_caption = captions_dict[video_filename]
    generated_verbs = nlpa.extract_lemmatized_verbs(generated_caption)
    original_caption = nlpa.remove_invalid_unicode(
        original_caption)  #clean-up caption
    original_verbs = set(nlpa.extract_lemmatized_verbs(original_caption))

    for gverb in generated_verbs:
        if gverb in original_verbs:
            tp += 1
            break

tp_rate = tp / len(generated_captions_list)
print 'TP:                 %d' % tp
print 'Total captions:     %d' % len(generated_captions_list)
print 'True positive rate: %04f' % (tp_rate)