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_last_ride_2012'
In [3]:
film_obj = load_film_object(film_id)
film_obj.print_info()
*Film Information*
Title, Release Year: The Last Ride (2012)
File Runtime: 01:44:18
Film Runtime (No Credits): 1:38:41

*Technical Details*
Aspect Ratio: 1.78
Avg. Shot Duration: 13.94
Avg. Brightness: 42
Avg. Contrast: 37

*Dialogue Cadence*
Sentences Per Minute: 13
Words Per Sentence 6.52
Questions Per Minute: 2.18
Pct. Questions: 17%

*Emotion*
Pct. Upset Faces: 73%
Laughs Per Minute: 0.14
Profanity Per Minute: 0.47
Words Per Profanity: 180
Exclamations Per Minute: 0.31
In [4]:
print(len(film_obj.scene_objects))
film_obj.display_scenes()
18
*Plot Context*
Descriptors: ['indoors', 'sitting']
Held Items: Counter({'pen': 1, 'pair of glasses': 1, 'stack of papers': 1})
Left Wearing: Counter({'white shirt': 33})
Right Wearing: Counter({'suit': 69})
*Plot Context*
Context Themes: Counter({'dining': 2})
Potential Other Locations: Counter({'booth': 2})
Establishing Shot Locations: Counter({'building': 17})
Named Participants: Counter({'buddy': 1})
Descriptors: ['indoors', 'standing']
Left Wearing: Counter({'beanie': 6, 'beanie standing': 3, 'beanie talking': 2})
Right Wearing: Counter({'cowboy hat and a white tie': 32, 'cowboy hat and a black shirt': 4, 'hat and a white tie': 1, 'hat and a tie': 1})
*Plot Context*
Context Themes: Counter({'dining': 156, 'drinking': 5, 'violence': 1})
Potential Common Locations: Counter({'restaurant': 114})
Establishing Shot Locations: Counter({'building': 7})
Named Participants: Counter({'announcer on radlo': 1, 'hell': 1, 'man': 1, 'wgn chicago': 1})
Descriptors: ['indoors', 'sitting']
Held Items: Counter({'cup': 11, 'coffee cup': 5, 'knife': 1, 'coffee pot': 1, 'cell phone': 1})
Active Actions: Counter({'eating': 41, 'drinking': 5, 'cut': 4, 'held': 2, 'getting': 1, 'brushing': 1, 'handed': 1, 'pouring': 1})
Left Wearing: Counter({'black jacket': 12})
Right Wearing: Counter({'black shirt': 9, 'suit': 5, 'shirt and a white tie': 3, 'tie': 3, 'tie and a black shirt': 1})
*Plot Context*
Context Themes: Counter({'transit': 215, 'driving': 178})
Potential Common Locations: Counter({'car': 178})
Potential Other Locations: Counter({'road': 14})
Descriptors: ['outdoors', 'sitting', 'rain']
Active Actions: Counter({'driving': 37})
*Plot Context*
Context Themes: Counter({'transit': 186, 'driving': 149, 'drinking': 28})
Potential Common Locations: Counter({'car': 149})
Establishing Shot Locations: Counter({'building': 10})
Named Participants: Counter({'sllas': 1, 'sorbonne': 1})
Descriptors: ['indoors', 'sitting']
Held Items: Counter({'beer bottle': 5, 'bottle': 1, 'camera': 1})
Active Actions: Counter({'driving': 37, 'drinking': 23, 'open': 2})
*Plot Context*
Named Participants: Counter({'operator': 2, 'man': 1, 'silas combs': 1})
Descriptors: ['indoors', 'sitting']
Held Items: Counter({'glass': 2})
Active Actions: Counter({'covered': 10, 'lit': 4})
Left Wearing: Counter({'vest': 7})
*Plot Context*
Context Themes: Counter({'transit': 406, 'driving': 404, 'drinking': 3})
Potential Common Locations: Counter({'car': 404})
Establishing Shot Locations: Counter({'building': 2})
Named Participants: Counter({'chorus on radlo': 1})
Descriptors: ['indoors', 'sitting', 'rain']
Held Items: Counter({'cup with something': 9, 'drink': 4, 'flask': 3, 'cell phone': 1, 'metal object': 1, 'metal cup': 1})
Active Actions: Counter({'drinking': 3, 'driving': 2, 'using': 1, 'sleeping': 1})
Left Wearing: Counter({'cowboy hat': 32, 'hat': 13, 'hat sitting': 3})
*Plot Context*
Establishing Shot Locations: Counter({'building': 18})
Named Participants: Counter({'son': 1})
Descriptors: ['indoors', 'sitting']
Held Items: Counter({'pen': 14, 'books and a pen': 1})
Active Actions: Counter({'reading': 2})
Right Wearing: Counter({'leather jacket': 100})
*Plot Context*
Context Themes: Counter({'violence': 2, 'dining': 2})
Establishing Shot Locations: Counter({'building': 9})
Named Participants: Counter({'hamllton': 1, 'sorbonne': 1})
Descriptors: ['indoors', 'standing']
Held Items: Counter({'piece of paper': 3, 'knife': 2, 'hat standing': 1, 'cigarette': 1, 'book': 1, 'pair of scissors': 1, 'wallet': 1, 'record player': 1, 'hand': 1})
Active Actions: Counter({'laughing': 3, 'lit': 2, 'making': 1})
Left Wearing: Counter({'black shirt': 12, 'glasses and a black shirt': 3, 'glasses': 3})
Right Wearing: Counter({'leather jacket': 98})
*Plot Context*
Context Themes: Counter({'transit': 134, 'driving': 133, 'dining': 2, 'drinking': 1})
Potential Common Locations: Counter({'car': 133})
Potential Other Locations: Counter({'building': 31})
Establishing Shot Locations: Counter({'building': 11})
Named Participants: Counter({'sllas': 1})
Descriptors: ['indoors', 'sitting', 'rain']
Held Items: Counter({'cell phone': 3, 'piece of food': 1, 'paper': 1, 'cigarette': 1, 'tennis racquet': 1})
Active Actions: Counter({'parked': 28, 'smoking': 15, 'eating': 2, 'playing': 1, 'taking': 1, 'drinking': 1, 'driving': 1})
Right Wearing: Counter({'jacket': 1})
*Plot Context*
Context Themes: Counter({'transit': 913, 'driving': 825})
Potential Common Locations: Counter({'car': 825})
Establishing Shot Locations: Counter({'building': 6})
Named Participants: Counter({'sorbonne': 1})
Descriptors: ['sitting']
Active Actions: Counter({'driving': 88})
*Plot Context*
Context Themes: Counter({'transit': 110, 'driving': 106})
Potential Common Locations: Counter({'car': 106})
Named Participants: Counter({'sorbonne': 1})
Descriptors: ['sitting']
Active Actions: Counter({'driving': 4})
Left Wearing: Counter({'hat': 63, 'cowboy hat': 17})
*Plot Context*
Context Themes: Counter({'drinking': 1})
Descriptors: ['indoors', 'standing']
Held Items: Counter({'bottle': 1})
Active Actions: Counter({'smoking': 9, 'coming': 1, 'drinking': 1})
Left Wearing: Counter({'hat': 31, 'hat talking': 4, 'hat and a jacket': 1})
Right Wearing: Counter({'black jacket': 12, 'hat': 2, 'black coat': 2})
*Plot Context*
Establishing Shot Locations: Counter({'building': 3})
Named Participants: Counter({'wanda': 1})
Descriptors: ['indoors', 'standing']
Right Wearing: Counter({'hat talking': 22, 'hat': 6})
*Plot Context*
Context Themes: Counter({'drinking': 117})
Potential Common Locations: Counter({'bar': 67})
Named Participants: Counter({'sorbonne': 3, 'hell': 1, 'slnger': 1})
Descriptors: ['indoors', 'sitting']
Held Items: Counter({'glass': 13, 'stack of money': 10, 'guitar': 4, 'beer': 3, 'money': 3, 'bottle of beer': 2, 'cell phone': 2, 'bottle': 2, 'glass of water': 1})
Active Actions: Counter({'drinking': 48, 'playing': 14, 'smoking': 13, 'singing': 4})
Left Wearing: Counter({'cowboy hat': 84, 'hat talking': 7, 'hat': 4})
Right Wearing: Counter({'cowboy hat': 74, 'leather jacket': 11, 'cowboy hat smiles at another man': 3})
*Plot Context*
Context Themes: Counter({'intimacy': 157})
Named Participants: Counter({'man': 3, 'all': 2, 'silas': 1})
Descriptors: ['indoors', 'standing']
Held Items: Counter({'cell phone': 2, 'microphone': 1, 'jacket': 1})
Active Actions: Counter({'hugging': 155, 'embracing': 37, 'singing': 32, 'dancing': 16, 'kissing': 2, 'shining': 1})
Left Wearing: Counter({'leather jacket': 27, 'black jacket': 4})
Right Wearing: Counter({'suit': 1})
*Plot Context*
Named Participants: Counter({'sorbonne': 1, 'luke': 1})
Held Items: Counter({'cell phone': 2})
Left Wearing: Counter({'cowboy hat': 71})
Right Wearing: Counter({'jacket': 15, 'suit': 7, 'coat': 6})
*Plot Context*
Context Themes: Counter({'transit': 10, 'driving': 10})
Potential Common Locations: Counter({'car': 10})
Potential Other Locations: Counter({'building': 13, 'garage': 1})
Establishing Shot Locations: Counter({'building': 1})
Descriptors: ['indoors', 'standing']
Held Items: Counter({'hat standing': 2})
Active Actions: Counter({'shaking': 5, 'bleeding': 2})
Left Wearing: Counter({'suit': 120})
Right Wearing: Counter({'coat': 7, 'suit': 2})
Out[4]:
[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()
In [15]:
film_obj.display_other_intros()