Найти - Пользователи
Полная версия: Проблемы со вложенными списками и поиском совпадений
Начало » Python для новичков » Проблемы со вложенными списками и поиском совпадений
1
Romanus
Сейчас проблема с вложенными списками.
Вчера весь вечер перебирал варианты, но пока не получилось.

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

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

Я же верно понимаю логику: нужно взять ключ, сделать 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
py.user.next
Постановка задачи - это самое важное, так как при нечёткой постановке задачи код так же пишется нечётко и получается десять кодов и все неправильные.

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

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

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

И только после этого можно уже составлять алгоритм, который делает то же самое для любых входных данных (алгоритм общего вида).
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB