예제 #1
0
def view_dep_tree(reviews: List[Text],
                  parsed_reviews: List[List[ParsedSentence]],
                  review_index=0,
                  sentence_index=0):
    """Pass reviews to viewer..."""
    matplotlib.use('Qt5Agg')
    plt.rcParams['keymap.save'].remove('s')
    fig, ax = plt.subplots()

    # prev/next buttons
    plt.subplots_adjust(bottom=0.2)

    title_ax = plt.axes([0.05, 0.95, 0.9, 0.05])

    callback = TreeViewer(reviews=reviews,
                          parsed_reviews=parsed_reviews,
                          ax=ax,
                          title_ax=title_ax,
                          fig=fig,
                          review_index=review_index,
                          sentence_index=sentence_index)

    prev_left = 0.8
    next_left = 0.9
    button_bottom = 0.02
    button_width = 0.06
    button_height = 0.04

    # prev / next
    ax_prev = plt.axes([prev_left, button_bottom, button_width, button_height])
    ax_next = plt.axes([next_left, button_bottom, button_width, button_height])
    b_next = Button(ax_next, 'Next')
    b_prev = Button(ax_prev, 'Previous')
    b_next._click = callback.next_image
    b_next.connect_event('button_press_event', callback.button_press)

    # save
    ax_save = plt.axes([0.5, button_bottom, button_width, button_height])
    b_save = Button(ax_save, 'Save')
    b_save.on_clicked(callback.dump_labeled_reviews)

    # input
    ax_review_index = plt.axes(
        [0.1, button_bottom, button_width, button_height])
    text_box = TextBox(ax_review_index, 'Review.Sentence', initial='0.0')
    text_box.on_submit(callback.input_review_index)

    # Maximise the plotting window
    try:
        mng = plt.get_current_fig_manager()
        mng.window.showMaximized()
    except AttributeError as e:
        logging.warning(e)
    plt.show()