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]:
'45_years_2015'
In [3]:
film_obj = load_film_object(film_id)
film_obj.print_info()
*Film Information*
Title, Release Year: 45 Years (2015)
File Runtime: 01:35:38
Film Runtime (No Credits): 1:28:14

*Technical Details*
Aspect Ratio: 1.84
Avg. Shot Duration: 26.60
Avg. Brightness: 63
Avg. Contrast: 36

*Dialogue Cadence*
Sentences Per Minute: 12
Words Per Sentence 5.70
Questions Per Minute: 1.77
Pct. Questions: 15%

*Emotion*
Pct. Upset Faces: 58%
Laughs Per Minute: 0.27
Profanity Per Minute: 0.11
Words Per Profanity: 580
Exclamations Per Minute: 0.18
In [4]:
print(len(film_obj.scene_objects))
film_obj.display_scenes()
10
*Plot Context*
Potential Common Locations: Counter({'bathroom': 19})
Descriptors: ['indoors', 'sitting']
*Plot Context*
Named Participants: Counter({'kate': 3, 'geoff': 1})
Descriptors: ['indoors', 'sitting']
*Plot Context*
Context Themes: Counter({'dining': 43, 'intimacy': 4, 'transit': 2})
Potential Common Locations: Counter({'restaurant': 40, 'bus': 2})
Potential Other Locations: Counter({'street': 1})
Named Participants: Counter({'kate': 1, 'geoff': 1})
Descriptors: ['indoors', 'sitting']
Active Actions: Counter({'hugging': 4, 'eating': 3})
*Plot Context*
Descriptors: ['indoors', 'sitting']
*Plot Context*
Context Themes: Counter({'transit': 548, 'driving': 546})
Potential Common Locations: Counter({'car': 546})
Establishing Shot Locations: Counter({'boat': 27, 'train': 3, 'building': 2})
Named Participants: Counter({'kate': 1})
Descriptors: ['sitting']
Active Actions: Counter({'driving': 2, 'drops': 1})
*Plot Context*
Context Themes: Counter({'transit': 166, 'driving': 166})
Potential Common Locations: Counter({'car': 166})
Establishing Shot Locations: Counter({'boat': 27, 'train': 17, 'building': 2})
Descriptors: ['sitting']
*Plot Context*
Context Themes: Counter({'dining': 634})
Potential Common Locations: Counter({'kitchen': 634})
Named Participants: Counter({'kate': 1})
Descriptors: ['indoors', 'standing']
*Plot Context*
Context Themes: Counter({'fancy': 106, 'drinking': 1})
Descriptors: ['indoors', 'sitting']
Held Items: Counter({'wine glass': 1})
Active Actions: Counter({'speaking': 178})
*Plot Context*
Context Themes: Counter({'fancy': 107})
Named Participants: Counter({'kate': 2})
Descriptors: ['sitting']
Active Actions: Counter({'speaking': 253})
*Plot Context*
Context Themes: Counter({'intimacy': 3})
Descriptors: ['indoors', 'standing']
Active Actions: Counter({'dancing': 80, 'hugging': 3})
Out[4]:
[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()
In [15]:
film_obj.display_other_intros()