Writing Segments

Along with the creation of Segment objects, analysts also need a way to easily access the UserALE logs associated with each Segment. Distill’s Segmentation package allows analysts to do this through the use of the write_segment function.

Write Segment

The write_segment function creates a nested dictionary of segment names to UIDs which then map to individual logs (i.e result[‘segment_name’][uid] –> log). This assists with easy iteration over defined Segment objects.

# Sorted dictionary of UserALE logs
sorted_dict

# List of segment names
segment_names = ["segment1", "segment2"]

# Time tuples
start_end_vals = [(start_time_1, end_time_1), (start_time_2, end_time_2)]

# Write Segments
segments = distill.write_segment(sorted_dict, segment_names, start_end_vals)

The above code looks similar to the create_segments example usage, however, rather than returning a Segments object, this code will create a dictionary of segment names to UIDs to individual UserALE logs.

Since Segments objects support list comprehensions, the usage of the write_segment functon after curating a collection of Segment objects is simple. Below is some example code that shows how this can be done with a Segments object:

# Sorted dictionary of UserALE logs
sorted_dict

# Segments object
segments

# Create list of segment names
segment_names = [segment.segment_name for segment in segments]

# Create list of start and end values
start_end_vals = [segment.start_end_val for segment in segments]

written_segments = distill.write_segments(sorted_dict, segment_names, start_end_vals)