считаем последовательные пары букв в тексте
потому что так
потомучтотак
разбиваем пары всех комбинаций букв и считаем их повторы
по то му чт от ак
от ом уч то та
далее выводим это в виде таблицы
по = 1
то = 2
му = 1
и так далее ..
Для выполнения этой задачи можно использовать Python. Вот шаги, которые нужно выполнить:
Прочитать содержимое текстового файла.
Разбить текст на все возможные пары букв.
Посчитать частоту появления каждой пары.
Вывести результаты в виде таблицы.
Вот пример кода, который реализует эти шаги:
from collections import Counter
import pandas as pd
# Шаг 1: Прочитать содержимое текстового файла
def read_file(filename):
with open(filename, 'r', encoding='utf-8') as file:
return file.read()
# Шаг 2: Разбить текст на пары букв
def get_letter_pairs(text):
# Удаляем пробелы и знаки препинания
text = ''.join(filter(str.isalpha, text))
pairs = [text[i:i+2] for i in range(len(text)-1)]
return pairs
# Шаг 3: Посчитать частоту появления каждой пары
def count_pairs(pairs):
return Counter(pairs)
# Шаг 4: Вывести результаты в виде таблицы
def display_table(counts):
df = pd.DataFrame(counts.items(), columns=['Pair', 'Count'])
df = df.sort_values(by='Count', ascending=False).reset_index(drop=True)
print(df)
# Основная часть программы
def main():
filename = 'ваш текст.txt' # Замените на имя вашего файла
text = read_file(filename)
pairs = get_letter_pairs(text)
counts = count_pairs(pairs)
display_table(counts)
if __name__ == "__main__":
main()
Объяснение работы алгоритма:
Чтение файла: Функция read_file читает текст из указанного файла.
Разделение на пары: Функция get_letter_pairs удаляет пробелы и знаки препинания из текста, затем создает список всех возможных пар букв.
Подсчет пар: Функция count_pairs использует Counter для подсчета частоты каждой пары.
Вывод таблицы: Функция display_table использует библиотеку pandas для создания и вывода таблицы с частотами пар.
Убедитесь, что у вас установлена библиотека pandas. Если нет, вы можете установить её с помощью команды pip install pandas.
import re
from collections import Counter
# Функция для разбивки текста на пары букв
def split_into_pairs(text):
text = re.sub(r'\s+', '', text) # Удаление пробелов
pairs = [text[i:i+2] for i in range(0, len(text) - 1, 2)]
# Если длина текста нечетная, добавляем последнюю букву к предыдущей паре
if len(text) % 2 != 0:
pairs[-1] += text[-1]
return pairs
# Функция для подсчета частоты пар букв
def count_pairs(pairs):
return Counter(pairs)
# Чтение текста из файла и выполнение подсчета
def process_file(filename):
with open(filename, 'r', encoding='utf-8') as file:
text = file.read()
pairs = split_into_pairs(text)
pair_counts = count_pairs(pairs)
# Вывод результата в виде таблицы
print(f"{'Пара букв':<10} {'Частота'}")
print("-" * 20)
for pair, count in pair_counts.items():
print(f"{pair:<10} {count}")
# Замените 'yourfile.txt' на имя вашего файла
process_file('текст1.txt')
** коррекция кода =>
from collections import Counter
import pandas as pd
def read_file(filename):
with open(filename, 'r', encoding='utf-8') as file:
return file.read()
def get_letter_pairs(text):
text = ''.join(filter(str.isalpha, text))
pairs = [text[i:i+2] for i in range(len(text)-1)]
return pairs
def count_pairs(pairs):
return Counter(pairs)
def display_table(counts):
df = pd.DataFrame(counts.items(), columns=['Pair', 'Count'])
df = df.sort_values(by='Count', ascending=False).reset_index(drop=True)
pd.set_option('display.max_rows', None) # Отображать все строки
print(df)
def main():
filename = 'your_file.txt' # Замените на имя вашего файла
text = read_file(filename)
pairs = get_letter_pairs(text)
counts = count_pairs(pairs)
display_table(counts)
if __name__ == "__main__":
main()
Pair Count
0 то 12
1 от 10
2 та 7
3 ом 6
4 по 5
5 чт 5
6 уч 5
7 му 5
8 ак 4
9 оо 3
10 тт 3
11 би 2
12 ры 2
13 ыв 2
14 ае 2
15 ви 2
16 ем 2
17 ко 2
18 ле 2
19 ст 2
20 ов 2
21 ит 1
22 чч 1
23 сч 1
24 уу 1
25 мм 1
26 чи 1
27 ап 1
28 ми 1
29 ып 1
30 хп 1
31 вт 1
32 ор 1
33 их 1
**
есть текст в файле txt
потому что так
потомучтотак
разбиваем пары всех комбинаций букв и считаем их повторы
по то му чт от ак
от ом уч то та
по
от
то
ом
му
уч
чт
то
от
та
ак
далее выводим это в виде таблицы
Pair Count
0 ов 7
1 та 6
2 то 5
3 ем 5
4 эт 4
5 ае 4
6 сл 4
7 ак 4
8 ит 3
9 те 3
10 ом 3
11 ры 3
12 но 3
13 на 3
14 ле 3
15 вс 3
16 вв 2
17 де 2
18 ви 2
19 ва 2
20 кв 2
21 ук 2
22 мп 2
23 па 2
24 ар 2
25 ыв 2
26 сч 2
27 бу 2
28 ди 2
29 мы 2
30 мэ 2
31 мс 2
32 им 2
33 от 2
34 би 2
35 чи 2
36 по 2
37 сё 2
38 ел 2
39 хо 2
40 ми 2
41 ин 2
42 ат 2
43 вт 2
44 лу 2
45 од 2
46 уч 2
47 ча 2
48 за 2
49 ыс 2
50 ис 2
51 ор 2
52 кс 2
53 иб 1
54 бы 1
55 ер 1
56 ки 1
57 рн 1
58 ло 1
59 ве 1
60 ав 1
61 ен 1
62 ст 1
63 ек 1
64 ыб 1
65 еп 1
66 ые 1
67 ыл 1
68 ма 1
69 ёз 1
70 ла 1
**
задание для gpt
нужно просканировать тексты txt в папках на рабочем столе
C:\Users\MSI\Desktop
в следующих папках и их вложениях
->
стихи
текст книги будущее фантастика
новые тексты ред
мой бот
фразы
и сделать из найденных слов (в этих всех папках) словарь
сохранить его в файле txt
Для выполнения этой задачи вам нужно написать скрипт, который будет искать все .txt файлы в указанных папках и их вложениях, собирать из них все уникальные слова и сохранять их в отдельный файл. Вот как можно сделать это на языке Python:
Импортируйте необходимые модули:
os для работы с файловой системой.
re для регулярных выражений (поиск слов).
collections для хранения уникальных слов.
Пройдитесь по указанным папкам и их вложенным папкам для поиска .txt файлов.
Соберите уникальные слова из найденных файлов.
Запишите уникальные слова в новый файл.
Ниже приведен пример Python-кода, который делает все вышеперечисленное:
** ---->
import os
import re
from collections import defaultdict
# Укажите путь к рабочему столу
desktop_path = r'C:\Users\MSI\Desktop'
# Укажите папки для сканирования
folders = [
'стихи',
'текст книги будущее фантастика',
'новые тексты ред',
'мой бот',
'фразы'
]
# Создаем пустое множество для хранения уникальных слов
unique_words = set()
# Функция для поиска и чтения всех .txt файлов в папке и вложенных папках
def scan_folder(folder_path):
for root, dirs, files in os.walk(folder_path):
for file in files:
if file.endswith('.txt'):
file_path = os.path.join(root, file)
with open(file_path, 'r', encoding='utf-8', errors='ignore') as f:
text = f.read()
# Используем регулярное выражение для поиска слов
words = re.findall(r'\b\w+\b', text.lower())
unique_words.update(words)
# Проходим по всем указанным папкам
for folder in folders:
folder_path = os.path.join(desktop_path, folder)
if os.path.isdir(folder_path):
scan_folder(folder_path)
else:
print(f"Папка {folder} не найдена.")
# Записываем уникальные слова в файл
output_file = os.path.join(desktop_path, 'словарь.txt')
with open(output_file, 'w', encoding='utf-8') as f:
for word in sorted(unique_words):
f.write(word + '\n')
print(f"Словарь сохранен в {output_file}.")
----------------------------------
Объяснение работы этого кода:
Пути и папки:
desktop_path — путь к рабочему столу.
folders — список папок для сканирования.
Функция scan_folder:
Использует os.walk для рекурсивного поиска файлов.
Открывает каждый .txt файл и извлекает слова с помощью регулярных выражений.
Запись слов в файл:
Сортируем слова и записываем их в файл словарь.txt.
Перед запуском кода убедитесь, что у вас установлен Python и правильно настроены пути и папки.
Свидетельство о публикации №124082300457