итерации пар из пар слов текста

from itertools import combinations

# Читаем файл и извлекаем пары соседних слов
def extract_word_pairs(filename):
    with open(filename, 'r', encoding='utf-8') as file:
        text = file.read()
        words = text.split()
        pairs = [(words[i], words[i + 1]) for i in range(len(words) - 1)]
    return pairs

# Генерируем комбинации пар, отбрасывая повторяющиеся слова
def generate_combinations(pairs):
    valid_combinations = []
    for combo in combinations(pairs, 2):
        # Получаем все слова из пар
        all_words = [word for pair in combo for word in pair]
        # Проверяем, есть ли повторяющиеся слова
        if len(all_words) == len(set(all_words)):  # уникальные слова
            valid_combinations.append(combo)
    return valid_combinations

# Сохраняем комбинации в файл
def save_combinations_to_file(combinations, output_filename):
    with open(output_filename, 'w', encoding='utf-8') as file:
        for combo in combinations:
            line = ' '.join([word for pair in combo for word in pair])  # объединяем слова из пар
            file.write(line + '\n')

# Основная функция
def main():
    input_filename = 'нов.txt'
    output_filename = 'пары.txt'
   
    pairs = extract_word_pairs(input_filename)
    pairs_combinations = generate_combinations(pairs)
    save_combinations_to_file(pairs_combinations, output_filename)

if __name__ == "__main__":
    main()


исходный текст находится в файле нов.txt
результат комбинаций пар сохраняется в файл пары.txt



пример вывода комбинаций пар:

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




далее- похожий код, но в нем учитываются также
пары слов через одно слово ->





from itertools import combinations

# Читаем файл и извлекаем пары соседних слов и пары через одно слово
def extract_word_pairs(filename):
    with open(filename, 'r', encoding='utf-8') as file:
        text = file.read()
        words = text.split()
        pairs = []

        # Извлекаем соседние пары
        for i in range(len(words) - 1):
            pairs.append((words[i], words[i + 1]))

        # Извлекаем пары через одно слово
        for i in range(len(words) - 2):
            pairs.append((words[i], words[i + 2]))

    return pairs

# Генерируем комбинации пар, отбрасывая повторяющиеся слова
def generate_combinations(pairs):
    valid_combinations = []
    for combo in combinations(pairs, 2):
        # Получаем все слова из пар
        all_words = [word for pair in combo for word in pair]
        # Проверяем, есть ли повторяющиеся слова
        if len(all_words) == len(set(all_words)):  # уникальные слова
            valid_combinations.append(combo)
    return valid_combinations

# Сохраняем комбинации в файл
def save_combinations_to_file(combinations, output_filename):
    with open(output_filename, 'w', encoding='utf-8') as file:
        for combo in combinations:
            line = ' '.join([word for pair in combo for word in pair])  # объединяем слова из пар
            file.write(line + '\n')

# Основная функция
def main():
    input_filename = 'нов.txt'
    output_filename = 'пары.txt'
   
    pairs = extract_word_pairs(input_filename)
    pairs_combinations = generate_combinations(pairs)
    save_combinations_to_file(pairs_combinations, output_filename)

if __name__ == "__main__":
    main()



 


Рецензии