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_wedding_year_2019'
In [3]:
film_obj = load_film_object(film_id)
film_obj.print_info()
*Film Information*
Title, Release Year: The Wedding Year (2019)
File Runtime: 01:30:44
Film Runtime (No Credits): 1:25:12

*Technical Details*
Aspect Ratio: 2.39
Avg. Shot Duration: 10.82
Avg. Brightness: 75
Avg. Contrast: 51

*Dialogue Cadence*
Sentences Per Minute: 20
Words Per Sentence 5.26
Questions Per Minute: 2.77
Pct. Questions: 14%

*Emotion*
Pct. Upset Faces: 52%
Laughs Per Minute: 0.69
Profanity Per Minute: 0.58
Words Per Profanity: 182
Exclamations Per Minute: 1.74
In [4]:
print(len(film_obj.scene_objects))
film_obj.display_scenes()
20
*Plot Context*
Potential Common Locations: Counter({'store': 1})
Establishing Shot Locations: Counter({'building': 1})
Named Participants: Counter({'ellie': 1, 'mara': 1})
Descriptors: ['indoors', 'standing']
Active Actions: Counter({'putting': 6, 'touching': 5, 'helping': 3})
Left Wearing: Counter({'bra': 5, 'black bra': 1, 'green dress': 1})
Right Wearing: Counter({'green shirt': 1})
*Plot Context*
Potential Common Locations: Counter({'store': 16})
Named Participants: Counter({'kelly': 2, 'grandma': 1, 'mother': 1, 'ugh': 1})
Descriptors: ['indoors', 'standing']
Held Items: Counter({'arms': 1, 'hands': 1})
Active Actions: Counter({'doing': 5, 'outstretched': 1})
Right Wearing: Counter({'white dress': 1})
*Plot Context*
Context Themes: Counter({'drinking': 37})
Potential Common Locations: Counter({'bar': 37})
Named Participants: Counter({'alex': 1})
Descriptors: ['indoors', 'sitting']
*Plot Context*
Context Themes: Counter({'dining': 91, 'transit': 2, 'driving': 2, 'violence': 1})
Potential Common Locations: Counter({'restaurant': 60, 'car': 2})
Potential Other Locations: Counter({'booth': 30})
Named Participants: Counter({'waiter': 2, 'ew': 1, 'hm': 1, 'jeez': 1, 'mara': 1})
Descriptors: ['indoors', 'sitting']
Held Items: Counter({'piece of paper': 9, 'cell phone': 8, 'hand': 6, 'hands': 2, 'piece of food': 1, 'something': 1, 'knife': 1, 'cigarette': 1})
Active Actions: Counter({'lit': 3, 'open': 2, 'painted': 1, 'laughing': 1, 'making': 1})
Right Wearing: Counter({'striped shirt': 4})
*Plot Context*
Context Themes: Counter({'dining': 3, 'violence': 1})
Named Participants: Counter({'ugh': 1})
Descriptors: ['indoors', 'sitting']
Held Items: Counter({'knife': 1})
Active Actions: Counter({'eating': 2, 'brushing': 1, 'laughing': 1, 'sharing': 1, 'smile': 1})
*Plot Context*
Context Themes: Counter({'work': 38, 'drinking': 1})
Potential Common Locations: Counter({'office': 38})
Establishing Shot Locations: Counter({'building': 6})
Named Participants: Counter({'jim': 2, 'alex': 1})
Descriptors: ['indoors', 'sitting']
Held Items: Counter({'coffee cup': 19, 'cup': 14, 'cup of coffee': 12, 'cell phone': 5, 'glass of beer': 1, 'can': 1})
Active Actions: Counter({'setting': 4, 'drinking': 1, 'using': 1})
Left Wearing: Counter({'purple shirt': 16})
*Plot Context*
Context Themes: Counter({'dining': 130, 'intimacy': 1})
Potential Common Locations: Counter({'kitchen': 130})
Potential Other Locations: Counter({'building': 1})
Named Participants: Counter({'robbie': 2})
Descriptors: ['indoors', 'standing']
Held Items: Counter({'wine bottles and a cell phone': 1, 'cell phone': 1})
Active Actions: Counter({'taking': 2, 'kissing': 1, 'smile': 1})
Right Wearing: Counter({'white shirt': 5})
*Plot Context*
Named Participants: Counter({'jake': 2, 'mara': 1})
Descriptors: ['standing']
*Plot Context*
Context Themes: Counter({'drinking': 7})
Potential Common Locations: Counter({'bar': 7})
Descriptors: ['indoors', 'standing']
Active Actions: Counter({'laughing': 5, 'making': 1})
Left Wearing: Counter({'blue dress': 23})
*Plot Context*
Context Themes: Counter({'intimacy': 4})
Potential Other Locations: Counter({'church': 40})
Establishing Shot Locations: Counter({'building': 2})
Named Participants: Counter({'priest': 2, 'brendan': 1})
Descriptors: ['indoors', 'sitting', 'crowded']
Active Actions: Counter({'kissing': 4, 'make': 2})
Right Wearing: Counter({'suit': 14})
*Plot Context*
Context Themes: Counter({'dining': 178})
Potential Common Locations: Counter({'restaurant': 174})
Named Participants: Counter({'mara': 1, 'hm': 1, 'mom': 1})
Descriptors: ['indoors', 'sitting']
Held Items: Counter({'fork': 2})
Active Actions: Counter({'eating': 2})
*Plot Context*
Context Themes: Counter({'drinking': 5})
Potential Common Locations: Counter({'bar': 5})
Named Participants: Counter({'dad': 1, 'mara': 1})
Descriptors: ['indoors', 'sitting']
Active Actions: Counter({'feathered': 4, 'painted': 1})
Right Wearing: Counter({'hat sitting at a table': 12, 'green hat': 2})
*Plot Context*
Context Themes: Counter({'dining': 66})
Potential Common Locations: Counter({'restaurant': 30})
Named Participants: Counter({'mara': 1})
Descriptors: ['indoors', 'sitting']
Held Items: Counter({'napkin': 1})
Active Actions: Counter({'eating': 36})
*Plot Context*
Context Themes: Counter({'dining': 67, 'transit': 13, 'driving': 13})
Potential Common Locations: Counter({'restaurant': 67, 'car': 13})
Potential Other Locations: Counter({'sidewalk': 40})
Establishing Shot Locations: Counter({'building': 3, 'plane': 1})
Named Participants: Counter({'robbie': 2})
Descriptors: ['indoors', 'standing']
Active Actions: Counter({'parked': 48, 'sit': 1})
*Plot Context*
Potential Other Locations: Counter({'parking lot': 1})
Named Participants: Counter({'jake': 1, 'mara': 1})
Descriptors: ['outdoors', 'standing']
Active Actions: Counter({'striped': 2, 'laughing': 1})
Left Wearing: Counter({'green and white shirt': 2, 'green and white striped shirt': 2, 'green vest': 1})
*Plot Context*
Potential Other Locations: Counter({'parking lot': 8})
Named Participants: Counter({'mara': 2})
Descriptors: ['outdoors', 'standing']
Held Items: Counter({'hands': 1, 'woman': 1})
Active Actions: Counter({'shaking': 1, 'touching': 1})
Right Wearing: Counter({'green and white shirt': 14, 'green and yellow shirt': 1})
*Plot Context*
Context Themes: Counter({'animal': 1})
Potential Other Locations: Counter({'road': 48, 'balcony': 48, 'street': 31, 'building': 1, 'garage': 1})
Establishing Shot Locations: Counter({'building': 15})
Descriptors: ['outdoors', 'standing']
Held Items: Counter({'purse': 8, 'hands': 1, 'skateboard': 1, 'suitcase': 1, 'dog': 1, 'hand': 1, 'banana': 1, 'cell phone': 1, 'pair': 1, 'pair of shoes': 1})
*Plot Context*
Context Themes: Counter({'drinking': 13})
Establishing Shot Locations: Counter({'bus': 68, 'building': 3})
Descriptors: ['indoors', 'sitting']
Held Items: Counter({'cup of coffee': 9, 'coffee cup': 1})
Active Actions: Counter({'drinking': 13, 'lit': 6, 'having': 2, 'making': 1})
Right Wearing: Counter({'yellow jacket': 14})
*Plot Context*
Named Participants: Counter({'mara': 2})
Descriptors: ['indoors', 'standing']
Active Actions: Counter({'make': 7, 'laughing': 1, 'open': 1, 'making': 1})
Right Wearing: Counter({'suit': 62})
*Plot Context*
Context Themes: Counter({'intimacy': 21})
Establishing Shot Locations: Counter({'building': 2})
Descriptors: ['indoors', 'standing']
Active Actions: Counter({'dancing': 42, 'hugging': 12, 'kissing': 9, 'tying': 1})
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()
My name is Mara Baylor.
My name is Mara, if you don't already know by now.
My name is Alex Feinberg.
In [15]:
film_obj.display_other_intros()