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]:
'love_the_coopers_2015'
In [3]:
film_obj = load_film_object(film_id)
film_obj.print_info()
*Film Information*
Title, Release Year: Love the Coopers (2015)
File Runtime: 01:47:05
Film Runtime (No Credits): 1:46:12

*Technical Details*
Aspect Ratio: 2.39
Avg. Shot Duration: 11.71
Avg. Brightness: 57
Avg. Contrast: 45

*Dialogue Cadence*
Sentences Per Minute: 17
Words Per Sentence 5.80
Questions Per Minute: 2.20
Pct. Questions: 13%

*Emotion*
Pct. Upset Faces: 60%
Laughs Per Minute: 0.30
Profanity Per Minute: 0.07
Words Per Profanity: 1510
Exclamations Per Minute: 0.62
In [4]:
print(len(film_obj.scene_objects))
film_obj.display_scenes()
14
*Plot Context*
Context Themes: Counter({'violence': 154, 'drinking': 32})
Potential Common Locations: Counter({'bar': 22})
Named Participants: Counter({'bo': 1})
Descriptors: ['indoors', 'sitting']
Held Items: Counter({'beer': 3, 'drink': 1, 'glass': 1})
Active Actions: Counter({'drinking': 10, 'pouring': 1})
Left Wearing: Counter({'military uniform': 153})
*Plot Context*
Context Themes: Counter({'transit': 184, 'driving': 184})
Potential Common Locations: Counter({'car': 184})
Descriptors: ['sitting']
*Plot Context*
Context Themes: Counter({'violence': 42})
Establishing Shot Locations: Counter({'plane': 3})
Descriptors: ['indoors', 'sitting']
Active Actions: Counter({'open': 1})
Left Wearing: Counter({'military uniform': 42, 'uniform': 4})
*Plot Context*
Context Themes: Counter({'violence': 6})
Named Participants: Counter({'bo': 2})
Descriptors: ['sitting']
*Plot Context*
Context Themes: Counter({'transit': 228})
Potential Common Locations: Counter({'bus': 224, 'train': 4})
Potential Other Locations: Counter({'bridge': 12})
Establishing Shot Locations: Counter({'train': 28, 'bus': 13, 'building': 3})
Descriptors: ['indoors', 'sitting']
Held Items: Counter({'gift box': 1})
Active Actions: Counter({'putting': 3, 'brushing': 2, 'blowing': 1, 'open': 1, 'folded': 1})
Right Wearing: Counter({'camouflage jacket': 44, 'jacket': 1})
*Plot Context*
Context Themes: Counter({'transit': 29, 'nature': 19, 'violence': 3})
Potential Common Locations: Counter({'bus': 22, 'train': 7})
Potential Other Locations: Counter({'forest': 19, 'building': 1})
Establishing Shot Locations: Counter({'train': 15, 'building': 3})
Named Participants: Counter({'eleanor': 1})
Descriptors: ['indoors', 'sitting', 'snow']
Held Items: Counter({'cell phone': 1})
Active Actions: Counter({'traveling': 19, 'touching': 5, 'covered': 3, 'brushing': 3, 'putting': 1})
Right Wearing: Counter({'uniform': 39, 'military uniform': 1})
*Plot Context*
Context Themes: Counter({'transit': 63, 'driving': 63})
Potential Common Locations: Counter({'car': 63})
Establishing Shot Locations: Counter({'train': 15, 'building': 3})
Descriptors: ['sitting']
Active Actions: Counter({'reflected': 2})
Left Wearing: Counter({'police uniform': 7})
*Plot Context*
Context Themes: Counter({'violence': 19, 'intimacy': 9})
Potential Other Locations: Counter({'hallway': 2})
Named Participants: Counter({'sam': 1})
Descriptors: ['indoors', 'standing']
Active Actions: Counter({'hugging': 9, 'lit': 5, 'smile': 2})
Left Wearing: Counter({'military uniform': 13})
*Plot Context*
Named Participants: Counter({'charlotte': 1})
Descriptors: ['indoors', 'sitting']
Held Items: Counter({'hands together': 9, 'hands': 2})
Active Actions: Counter({'painted': 2})
*Plot Context*
Named Participants: Counter({'dr. newport': 1})
Left Wearing: Counter({'hat': 33, 'brown coat': 27, 'hat talking': 8, 'hat and a tie talking': 1})
Right Wearing: Counter({'police uniform': 74})
*Plot Context*
Context Themes: Counter({'medical': 60})
Potential Common Locations: Counter({'hospital': 50, 'hospital room': 10})
Named Participants: Counter({'emma': 1, 'charlotte': 1})
Descriptors: ['indoors', 'standing']
Held Items: Counter({'head': 1})
Active Actions: Counter({'crossed': 50, 'screaming': 1, 'brushing': 1, 'lit': 1})
Left Wearing: Counter({'brown jacket': 1})
Right Wearing: Counter({'yellow shirt': 37, 'glasses and a tie': 1})
*Plot Context*
Context Themes: Counter({'violence': 85})
Descriptors: ['indoors', 'standing']
Left Wearing: Counter({'military uniform': 85, 'uniform': 2})
*Plot Context*
Named Participants: Counter({'charlotte': 1})
Descriptors: ['indoors']
Active Actions: Counter({'sharing': 4, 'putting': 3, 'touching': 2, 'adjusting': 1, 'lit': 1})
*Plot Context*
Descriptors: ['indoors', 'sitting']
Held Items: Counter({'guitar': 12, 'ukulele': 1})
Active Actions: Counter({'playing': 61, 'making': 10, 'covering': 7, 'covers': 4, 'singing': 1})
Out[4]:
[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 Sam, that's great.
In [15]:
film_obj.display_other_intros()