Добро пожаловать на канал 'Приключения социолога и единороги'! Здесь обитает Сережа Дубровский, а иногда Сергей Владимирович, представляя вам уникальный мир его мыслей и идей. Сергей - социолог по образованию, увлекается искусственным интеллектом и технологиями, а также преподает в высших учебных заведениях. На этом канале он делится своими мыслями и исследованиями по самым разнообразным темам. От социологии до ИИ технологий, здесь вы найдете увлекательные обсуждения и анализы. Присоединяйтесь к нам и окунитесь в увлекательный мир Сережи и его единорогов! Пишите нам и задавайте вопросы по ссылке: t.me/dubr1k
06 Feb, 05:37
02 Feb, 10:47
30 Jan, 19:09
30 Jan, 10:44
30 Jan, 10:13
17 Jan, 21:53
13 Jan, 09:28
09 Jan, 19:52
09 Jan, 10:13
03 Jan, 17:25
02 Jan, 10:55
31 Dec, 18:46
31 Dec, 16:22
31 Dec, 12:49
27 Dec, 16:58
27 Dec, 09:51
26 Dec, 07:00
25 Dec, 09:55
23 Dec, 08:01
22 Dec, 09:19
19 Dec, 10:09
18 Dec, 17:49
17 Dec, 18:26
17 Dec, 18:23
17 Dec, 08:18
17 Dec, 08:18
17 Dec, 08:03
17 Dec, 08:03
14 Dec, 17:17
14 Dec, 12:53
28 Nov, 10:02
28 Nov, 08:39
28 Nov, 07:04
26 Nov, 17:21
26 Nov, 17:20
25 Nov, 13:51
22 Nov, 06:56
import os
import nltk
from nltk.tokenize import sent_tokenize, word_tokenize
from deeppavlov import build_model, configs
from tkinter import Tk, filedialog
# Загрузка необходимых ресурсов NLTK
nltk.download('punkt')
nltk.download('stopwords')
# Инициализация модели NER
try:
print("Инициализация модели...")
morph_model = build_model(configs.ner.ner_ontonotes_bert_mult, download=True)
print("Модель успешно загружена.")
except Exception as e:
print(f"Ошибка при загрузке модели: {e}")
raise
def clean_transcript(transcript):
"""
Очищает транскрипт, оставляя только предложения с смысловой нагрузкой.
"""
sentences = sent_tokenize(transcript, language='russian')
meaningful_sentences = []
if not sentences:
print("Текст не содержит предложений.")
return ""
for sentence in sentences:
print(f"Обрабатывается предложение: {sentence}") # Отладка
try:
ner_analysis = morph_model([sentence])
tags = ner_analysis[1][0] # Теги
print(f"Теги: {tags}") # Отладка тегов
# Сохраняем предложение, если оно содержит смысловые теги
if any(tag != 'O' for tag in tags): # 'O' означает отсутствие сущности
meaningful_sentences.append(sentence)
# Дополнительно: сохраняем длинные предложения как потенциально значимые
elif len(word_tokenize(sentence, language='russian')) > 5:
meaningful_sentences.append(sentence)
except Exception as e:
print(f"Ошибка обработки предложения '{sentence}': {e}")
# Проверка перед возвратом
if not meaningful_sentences:
print("Не найдено смысловых предложений.")
else:
print(f"Найденные предложения: {meaningful_sentences}")
return '\n'.join(meaningful_sentences)
if __name__ == "__main__":
# Создание интерфейса для выбора файлов
print("Выберите файлы для обработки.")
root = Tk()
root.withdraw() # Скрыть основное окно
input_files = filedialog.askopenfilenames(
title="Выберите файлы",
filetypes=(("Text files", "*.txt"), ("All files", "*.*"))
)
if not input_files:
print("Файлы не выбраны. Завершение работы.")
else:
for input_file in input_files:
print(f"Обработка файла: {input_file}")
base, ext = os.path.splitext(input_file)
output_file = f"{base}_cleaned{ext}"
try:
# Чтение транскрипта из файла
with open(input_file, 'r', encoding='utf-8') as file:
transcript = file.read()
# Проверка на пустой входной файл
if not transcript.strip():
print(f"Текст файла {input_file} пустой или состоит только из пробелов.")
else:
# Очистка транскрипта
print("Начало очистки транскрипта...")
cleaned_transcript = clean_transcript(transcript)
# Сохранение очищенного транскрипта в новый файл
if cleaned_transcript.strip():
with open(output_file, 'w', encoding='utf-8') as file:
file.write(cleaned_transcript)
print(f"Очищенный транскрипт сохранен в файл: {output_file}")
else:
print(f"Очищенный текст пустой. Файл {input_file} не записан.")
except FileNotFoundError:
print(f"Файл {input_file} не найден. Проверьте путь.")
except Exception as e:
print(f"Произошла ошибка при обработке файла {input_file}: {e}")
22 Nov, 06:55
20 Nov, 16:42
20 Nov, 12:56
20 Nov, 10:09
19 Nov, 17:18
19 Nov, 16:36
18 Nov, 20:17
18 Nov, 11:25
18 Nov, 11:22
16 Nov, 09:11
14 Nov, 04:41
12 Nov, 16:20
11 Nov, 17:36
11 Nov, 09:47
08 Nov, 12:39
08 Nov, 05:16
05 Nov, 14:13
04 Nov, 10:57
03 Nov, 13:53
01 Nov, 08:40
29 Oct, 08:14
28 Oct, 11:02
28 Oct, 08:28
25 Oct, 05:11
24 Oct, 13:54
22 Oct, 18:16
22 Oct, 17:46
22 Oct, 14:57
21 Oct, 14:55
21 Oct, 07:05
18 Oct, 10:56
18 Oct, 06:51
17 Oct, 11:13
16 Oct, 10:56
16 Oct, 10:55
16 Oct, 08:10
16 Oct, 07:35
15 Oct, 20:10