набор словарей из группы текстов

алгоритм создания словарей из текстов

есть папка с кодом программы
в папке некоторое число файлов c текстами txt utf-8
нам нужно сделать список всех слов в текстах этих файлов
и потом из этого списка сделать словари в формате txt

слова 1 - слова 2 - слова 3 и так далее
при этом число словарей таково чтобы в каждом из них не было повторов слов
а число слов в каждом словаре было примерно одинаковым


Для выполнения этой задачи мы можем использовать Python. Мы создадим скрипт, который будет читать все текстовые файлы в указанной папке, собирать уникальные слова, а затем разбивать их на несколько файлов-словарей. Вот пример кода, который выполняет эту задачу:



  *



import os
import re

def extract_words_from_files(folder_path):
    words = set()
   
    # Проходим по всем файлам в указанной папке
    for filename in os.listdir(folder_path):
        if filename.endswith('.txt'):
            file_path = os.path.join(folder_path, filename)
            with open(file_path, 'r', encoding='utf-8') as file:
                text = file.read()
                # Используем регулярное выражение для извлечения слов
                words_in_file = re.findall(r'\b\w+\b', text.lower())
                words.update(words_in_file)
   
    return sorted(words)

def create_dictionaries(words, num_dicts):
    # Разбиваем слова на несколько словарей
    avg_size = len(words) // num_dicts
    dictionaries = []

    for i in range(num_dicts):
        start_index = i * avg_size
        end_index = (i + 1) * avg_size if i < num_dicts - 1 else len(words)
        dictionaries.append(words[start_index:end_index])

    return dictionaries

def save_dictionaries(dictionaries, output_folder):
    os.makedirs(output_folder, exist_ok=True)
    for i, dictionary in enumerate(dictionaries):
        file_path = os.path.join(output_folder, f'dictionary_{i + 1}.txt')
        with open(file_path, 'w', encoding='utf-8') as file:
            file.write(' - '.join(dictionary))

def main():
    folder_path = 'path/to/your/text/files'  # Укажите путь к папке с текстовыми файлами
    output_folder = 'path/to/save/dictionaries'  # Укажите путь для сохранения словарей
    num_dicts = 5  # Укажите количество словарей, которые вы хотите создать

    words = extract_words_from_files(folder_path)
    dictionaries = create_dictionaries(words, num_dicts)
    save_dictionaries(dictionaries, output_folder)

if __name__ == '__main__':
    main()




  **


Как использовать этот код:
Убедитесь, что у вас установлен Python.

Скопируйте код в файл, например, dictionaries.py.
Измените переменные folder_path и output_folder на соответствующие пути к вашей папке с текстами и папке для сохранения словарей.

Укажите количество словарей в переменной num_dicts.
Запустите скрипт: python create_dictionaries.py.

Объяснение кода:
Функция extract_words_from_files собирает уникальные слова из всех текстовых файлов в указанной папке.
Функция create_dictionaries разбивает список слов на несколько подсписков (словарей).

Функция save_dictionaries сохраняет каждый словарь в отдельный текстовый файл.
В main функции выполняется последовательное выполнение всех шагов.
Теперь у вас будет несколько текстовых файлов, каждый из которых содержит уникальные слова, разделенные дефисами.










686173 730538 492854 329599 588300 518560
643357 434714 562040 860441 458038 966233
875473 948359 333603 948016 307377 487343
174511 529618 270020 917594 288067 922512
966283 438497 929668 308640 669722 932843
231182 187220 188031 489831 947210 247415
110218 130788 615282 189046 516171 582622
824689 909630 318429 331601 310969 429489
413624 328701 435811 911112 287635 829772
975930 139143 420469 264178 791789 897448
704312 481538 957765 245656 426972 217480
362279 697261 620258 337319 677452 963316
838944 656767 576156 982990 560301 474741
678414 710298 108382 824792 511108 326584
199369 868971 227019 529593 918039 871681
518001 833338 987309 924421 635595 273301
580904 553687 926005 959969 389856 927106
555739 206872 465162 305608 975103 250736
803671 545999 557515 172353 345541 582861
894979 137308 898696 342039 160443 140789
936143 984385 488523 139108 497669 765612
136328 681733 489849 897274 375109 420137
750629 406624 384971 602905 505373 124144
835924 478711 360279 912606 841732 244645
503608 706617 514183 929030 382680 717157
139991 118404 534293 600854 323796 112957
173580 976112 953945 758188 124757 809219
283583 639687 747160 123220 463042 598085
821750 568291 883115 888788 607181 783124
168744 621701 173513 169517 341266 213314
113805 655467 427549 808638 835801 987161
785969 626836 621175 904028 295201 596166
778489 639798 366451 316503 836616 136575
329098 695336 461605 920322 353189 354651
113604 302690 690073 672815 779878 876084
558395 897812 431021 518514 586299 346047
130810 393880 758654 235853 560529 467355
392809 952887 776281 142011 911859 459519
429727 767760 654951 970597 156299 225066
736816 897807 656081 653778 523534 539364
477592 889759 627572 623761 538129 290677
234989 891566 498909 731924 967700 932519
690668 977493 181185 392177 172545 101954
137478 992879 123826 104314 512281 881884
447376 873854 941084 913035 305130 973316
348058 871808 628712 100162 302109 343996
457436 871386 894995 295800 423396 956983
918499 910093 210172 155049 384921 323797
744772 178810 336013 219385 691222 665184
765615 594957 876526 134457 711424 193249
634547 934247 948552 459584 961670 120203
623539 281642 652536 914749 576427 167472
604373 705338 120226 284460 756063 184351
745719 367369 935122 840970 747670 210187
433387 945314 653188 976499 395171 102985
859923 283361 358846 979573 970909 662135
885370 941357 456410 550095 862617 619235
210215 627976 524972 875401 555287 199678
864350 539843 190237 264772 695546 609368
520519 746590 121299 434183 295518 650363
157285 334645 456502 927835 997120 119158
998006 579591 399388 766436 948403 623815
827285 913834 553587 429935 182885 737990
604157 307200 290496 448293 276679 830369
108932 432103 919824 884842 371879 714169
901249 140476 630040 497849 749468 489754
103200 673138 810733 583707 428456 869274
937696 713340 898536 305171 216587 236961
347334 808562 745900 457760 445156 138839
586814 699294 821949 719171 420647 861049
294128 448631 986428 284036 490925 779158
501555 659096 191116 607945 834821 460166
525212 162414 220564 940939 290189 365362
671142 593847 381880 547999 741486 622385
452945 235532 313476 163406 898618 470619
427515 673519 275588 804734 181861 662511
719367 405538 160252 751664 216455 149261
729194 344788 721527 810631 424870 356770
510256 762974 208408 475480 447584 260651
178640 176856 875753 651474 123903 859778
782414 334803 539111 631329 237011 826450
906275 577131 766938 220450 276103 384585
969673 128627 241996 186321 606045 868607
652513 456117 000111 000222 000333 000666
 


Рецензии