In [1]:
import sys
sys.path.append('../../')
from moviegoer.tables import film_id_from_film_directory, load_film_object
from random import choice
In [2]:
film_id = film_id_from_film_directory()
film_id
Out[2]:
'the_voices_2014'
In [3]:
film_obj = load_film_object(film_id)
film_obj.print_info()
*Film Information*
Title, Release Year: The Voices (2014)
File Runtime: 01:43:35
Film Runtime (No Credits): 1:37:02

*Technical Details*
Aspect Ratio: 2.35
Avg. Shot Duration: 11.08
Avg. Brightness: 70
Avg. Contrast: 43

*Dialogue Cadence*
Sentences Per Minute: 19
Words Per Sentence 4.52
Questions Per Minute: 2.47
Pct. Questions: 13%

*Emotion*
Pct. Upset Faces: 64%
Laughs Per Minute: 0.20
Profanity Per Minute: 0.33
Words Per Profanity: 260
Exclamations Per Minute: 1.69
In [4]:
print(len(film_obj.scene_objects))
film_obj.display_scenes()
20
*Plot Context*
Context Themes: Counter({'work': 9})
Potential Common Locations: Counter({'office': 9})
Named Participants: Counter({'jerry': 3})
Descriptors: ['indoors', 'sitting']
Active Actions: Counter({'open': 2})
*Plot Context*
Context Themes: Counter({'transit': 178, 'driving': 178})
Potential Common Locations: Counter({'car': 178})
Descriptors: ['sitting']
*Plot Context*
Context Themes: Counter({'transit': 167, 'driving': 167})
Potential Common Locations: Counter({'car': 167})
Named Participants: Counter({'jerry': 1, 'fiona': 1})
Descriptors: ['sitting']
*Plot Context*
Context Themes: Counter({'work': 11})
Potential Common Locations: Counter({'office': 11})
Potential Other Locations: Counter({'building': 1})
Named Participants: Counter({'karaoke': 1, 'fiona': 1, 'man': 1})
Descriptors: ['indoors', 'standing']
Held Items: Counter({'cell phone': 1})
Active Actions: Counter({'peeking': 4, 'entering': 1, 'using': 1})
*Plot Context*
Context Themes: Counter({'transit': 500, 'driving': 470, 'nature': 12})
Potential Common Locations: Counter({'car': 470})
Potential Other Locations: Counter({'road': 20, 'forest': 12})
Named Participants: Counter({'jerry': 2, 'fiona': 1, 'freddy': 1})
Descriptors: ['outdoors', 'sitting']
Held Items: Counter({'steering wheel': 5, 'cell phone': 2})
Active Actions: Counter({'driving': 30, 'parked': 3, 'open': 2, 'laughing': 2, 'using': 1, 'make': 1, 'shining': 1})
Left Wearing: Counter({'blue shirt': 5})
Right Wearing: Counter({'blue shirt': 16})
*Plot Context*
Context Themes: Counter({'nature': 22, 'violence': 21, 'dining': 21, 'transit': 13, 'driving': 13, 'intimacy': 1})
Potential Common Locations: Counter({'car': 13})
Potential Other Locations: Counter({'forest': 22, 'street': 1})
Named Participants: Counter({'fiona': 6, 'jerry': 1, 'jer': 1})
Descriptors: ['outdoors', 'standing']
Held Items: Counter({'knife': 21, 'object': 12, 'frisbee': 5, 'hand': 5, 'banana': 4, 'surfboard': 1, 'cell phone': 1, 'blood on his face and a knife': 1, 'paintbrush': 1, 'toothbrush': 1})
Active Actions: Counter({'covered': 8, 'running': 6, 'riding': 2, 'blowing': 1, 'open': 1, 'kissing': 1})
Left Wearing: Counter({'blue jacket': 28})
*Plot Context*
Context Themes: Counter({'transit': 149, 'driving': 149})
Potential Common Locations: Counter({'car': 149})
Establishing Shot Locations: Counter({'building': 26})
Named Participants: Counter({'jerry': 2})
Descriptors: ['sitting']
Held Items: Counter({'car door open': 12, 'door of a car': 7, 'window of a car': 5, 'car door open with his hand': 4, 'window of a truck': 1})
*Plot Context*
Establishing Shot Locations: Counter({'building': 45})
Named Participants: Counter({'jerry': 1})
Descriptors: ['indoors', 'sitting']
Held Items: Counter({'pair of glasses': 1})
Active Actions: Counter({'open': 1})
*Plot Context*
Context Themes: Counter({'dining': 7, 'drinking': 3})
Named Participants: Counter({'fiona': 1, 'friday': 1, 'jerry': 1})
Descriptors: ['indoors', 'standing']
Held Items: Counter({'hand': 1})
Active Actions: Counter({'eating': 6, 'drinking': 3})
*Plot Context*
Context Themes: Counter({'dining': 84, 'intimacy': 3, 'cooking': 2})
Potential Common Locations: Counter({'kitchen': 82})
Establishing Shot Locations: Counter({'building': 7})
Named Participants: Counter({'jerry': 4, 'hooray': 1, 'fiona': 1})
Descriptors: ['indoors', 'sitting']
Held Items: Counter({'hand': 8, 'bottle of milk': 1})
Active Actions: Counter({'pouring': 15, 'kissing': 3, 'mixing': 2, 'feeding': 2, 'eating': 2, 'touching': 1, 'making': 1, 'brushing': 1})
Right Wearing: Counter({'purple shirt': 3, 'blue shirt': 2})
*Plot Context*
Descriptors: ['indoors']
Active Actions: Counter({'laughing': 1})
Left Wearing: Counter({'yellow shirt': 46, 'green shirt': 8})
*Plot Context*
Context Themes: Counter({'transit': 115, 'driving': 108})
Potential Common Locations: Counter({'car': 108})
Potential Other Locations: Counter({'road': 11, 'street': 9})
Establishing Shot Locations: Counter({'building': 1})
Named Participants: Counter({'lisa': 3})
Descriptors: ['outdoors', 'sitting']
Active Actions: Counter({'driving': 7, 'parked': 7, 'riding': 4})
*Plot Context*
Potential Other Locations: Counter({'building': 11})
Establishing Shot Locations: Counter({'building': 1})
Descriptors: ['indoors', 'standing']
*Plot Context*
Establishing Shot Locations: Counter({'building': 4})
Named Participants: Counter({'jerry': 2, 'mom': 1})
Descriptors: ['indoors', 'sitting']
Held Items: Counter({'hand': 5, 'arm': 1})
Active Actions: Counter({'touching': 2})
Left Wearing: Counter({'striped shirt': 15})
*Plot Context*
Named Participants: Counter({'jerry': 1})
Descriptors: ['indoors', 'standing']
Held Items: Counter({'cup of coffee': 2})
Active Actions: Counter({'covering': 6, 'laughing': 2, 'touching': 1})
*Plot Context*
Context Themes: Counter({'violence': 7, 'dining': 7, 'aquatic': 2, 'intimacy': 1})
Potential Other Locations: Counter({'doorway': 24})
Named Participants: Counter({'jerry': 1})
Descriptors: ['indoors', 'standing']
Held Items: Counter({'knife': 7, 'cell phone': 5, 'something': 2, 'cigarette': 1})
Active Actions: Counter({'folded': 13, 'lit': 8, 'peeking': 2, 'open': 2, 'shines': 1, 'clasped': 1, 'hugging': 1})
*Plot Context*
Context Themes: Counter({'work': 13})
Potential Common Locations: Counter({'office': 13})
Named Participants: Counter({'jerry': 4, 'fiona': 1})
Descriptors: ['indoors', 'sitting']
Held Items: Counter({'cell phone': 12, 'remote': 6, 'control': 3, 'nintendo wii game controller': 1, 'purse': 1, 'banana': 1, 'pair of scissors': 1, 'piece of paper': 1})
Active Actions: Counter({'using': 7, 'making': 2, 'extended': 2, 'hanging': 1, 'open': 1, 'smoking': 1, 'playing': 1, 'putting': 1, 'working': 1, 'getting': 1})
Left Wearing: Counter({'white shirt': 1})
*Plot Context*
Context Themes: Counter({'transit': 80, 'driving': 80})
Potential Common Locations: Counter({'car': 80})
Potential Other Locations: Counter({'field': 139})
Descriptors: ['outdoors', 'standing']
Held Items: Counter({'frisbee': 26})
Active Actions: Counter({'taped': 13, 'sticking': 1, 'blowing': 1, 'covered': 1, 'throwing': 1, 'feeding': 1, 'sit': 1})
*Plot Context*
Context Themes: Counter({'transit': 131, 'driving': 131, 'violence': 3})
Potential Common Locations: Counter({'car': 131})
Potential Other Locations: Counter({'field': 148})
Descriptors: ['outdoors', 'sitting']
Held Items: Counter({'camera': 23, 'cell phone': 22, 'gun': 3, 'frisbee': 1})
*Plot Context*
Context Themes: Counter({'transit': 76, 'driving': 76})
Potential Common Locations: Counter({'car': 76})
Potential Other Locations: Counter({'field': 294})
Establishing Shot Locations: Counter({'building': 7})
Named Participants: Counter({'jerry': 1})
Descriptors: ['outdoors', 'standing']
Held Items: Counter({'frisbee': 95})
Out[4]:
[None,
 None,
 None,
 None,
 None,
 None,
 None,
 None,
 None,
 None,
 None,
 None,
 None,
 None,
 None,
 None,
 None,
 None,
 None,
 None]
In [5]:
film_obj.chart_all_dialogue_emotional_indicators()
In [6]:
film_obj.chart_all_dialogue_shape()
In [7]:
film_obj.chart_all_dialogue_question_proportion()
In [8]:
film_obj.display_color_shots()
In [9]:
rand_scene = None
if film_obj.dialogue_objects:
    rand_scene = choice(film_obj.dialogue_objects)
    rand_scene.display_qna_frames()
In [10]:
if rand_scene:
    rand_scene.display_first_p_sentence_frames()
In [11]:
if rand_scene:
    rand_scene.display_second_p_address_frames()
In [12]:
film_obj.display_laughs()
Out[12]:
[]
In [13]:
film_obj.display_unintelligible_language()
In [14]:
film_obj.display_self_intros()
I'm Lisa.
In [15]:
film_obj.display_other_intros()