Уведомления

Группа в Telegram: @pythonsu

#1 Авг. 5, 2018 13:38:06

Romanus
Зарегистрирован: 2018-07-19
Сообщения: 14
Репутация: +  0  -
Профиль   Отправить e-mail  

Проблемы со вложенными списками и поиском совпадений

Сейчас проблема с вложенными списками.
Вчера весь вечер перебирал варианты, но пока не получилось.

Нужно найти совпадения ключей в заголовках. Каждый заголовок считать самостоятельным куском текста (т.е. нужно перебирать каждый заголовок, чекать вхождения ключа, а потом всё просуммировать).

Т.е. на выходе я должен получить:
Ключ | Количество вхождений в заголовки | Варианты вхождений (т.е. то, как это выглядит в тексте)

Я же верно понимаю логику: нужно взять ключ, сделать permutations ключа, далее для каждого permutations ключа перебирать совпадения в каждом их заголовков? Верно ли, что я пытаюсь сделать много циклов и условий или в питоне это как-то проще делается и я пишу фуфел?

 headers = [['временная', 'регистрация', 'месту', 'пребывания', 'когда', 'кому', 'нужна'], ['сделать', 'временную', 'регистрацию'], ['необходимые', 'документы', 'получения', 'свидетельства'], ['срок', 'действия', 'временной', 'регистрации'], ['стоимость', 'услуги'], ['законы', 'акты', 'регламентирующие', 'временную', 'прописку'], ['часто', 'задаваемые', 'вопросы', 'порядке', 'временной', 'регистрации']] 
keywords = [['временная', 'регистрация'], ['регистрация', 'москве'], ['временная', 'регистрация', 'москве']]
variants_of_keys = []
while i < len(keywords): # берем ключ из списка
    variants_of_keys = [list(a) for a in list(permutations(keywords[i]))] # Ищем все перестановки ключа
    ln = len(variants_of_keys[i])
    for a in range(len(variants_of_keys)): # Для каждого варианта перестановки ключа будем перебирать текст
        keyword_entry = 0
        for ii in range(len(headers)): # Перебираем заголовки (вот тут вообще каша начинается, никак не выходит что-то сделать)
            if str(headers[ii:ii+ln]) in str(variants_of_keys[a]):
                print('Есть вхождения')
                keyword_entry = keyword_entry + 1
        a = a + 1
    i = i + 1

Офлайн

#2 Авг. 5, 2018 16:57:18

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 10022
Репутация: +  857  -
Профиль   Отправить e-mail  

Проблемы со вложенными списками и поиском совпадений

Постановка задачи - это самое важное, так как при нечёткой постановке задачи код так же пишется нечётко и получается десять кодов и все неправильные.

Romanus
Нужно найти совпадения ключей в заголовках. Каждый заголовок считать самостоятельным куском текста (т.е. нужно перебирать каждый заголовок, чекать вхождения ключа, а потом всё просуммировать).
Romanus
Т.е. на выходе я должен получить:
Ключ | Количество вхождений в заголовки | Варианты вхождений (т.е. то, как это выглядит в тексте)

Возьми небольшой пример (на строках a, b там буквально) и для него напиши результат, который получится.
По твоему описанию я не понял, что точно надо сделать.

В общем, приведи пример входных данных, приведи пример выходных данных, получающихся по этим входным данным, и опиши, как именно произошло это преобразование входных данных в выходные.

И только после этого можно уже составлять алгоритм, который делает то же самое для любых входных данных (алгоритм общего вида).



Отредактировано py.user.next (Авг. 5, 2018 17:00:58)

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version