Как создать простой виджет или приложение в блокноте / лаборатории jupyter для интерактивного извлечения подстроки из текста? - PullRequest
0 голосов
/ 23 сентября 2019

Я хочу перебрать список строк, вывести строку в виде обычного текста в jupyter lab, затем интерактивно выделить подстроку, чтобы легко получить начальный индекс подстроки и длину.Цель состоит в том, чтобы сделать быструю аннотацию текста и получить координаты подстроки.

Легко или даже возможно сделать что-то подобное с ноутбуком Jupyter (лаборатория)?Если тогда Как?

Я взглянул на ipywidgets, но не смог найти что-то для этого варианта использования.

Ответы [ 2 ]

1 голос
/ 25 сентября 2019

Вы можете реализовать это с помощью jp_proxy_widgets.См. Следующий снимок экрана: enter image description here Обратите внимание, что есть предупреждения о совместимости для протоколов выбора - я проверял это только на Chrome на Mac.Также я не знаю, почему индексы отключены на один (select_callback(startOffset+1, endOffset+1);)

Пожалуйста, см. https://github.com/AaronWatters/jp_proxy_widget для получения дополнительной информации

1 голос
/ 23 сентября 2019

Вот пример с RangeSlider:

import ipywidgets
input_string = 'averylongstring'
widg = ipywidgets.IntRangeSlider(
    value = [0, len(input_string)],
    min=0, max=len(input_string)
)
output_widg = ipywidgets.Text()

display(widg)
display(output_widg)

def chomp_string(widg):

    start,end = tuple(widg['new'])
    output_widg.value = input_string[start: end]

widg.observe(chomp_string, names='value')
...