немного нерабочее

This commit is contained in:
GokaPek 2025-02-21 23:02:39 +04:00
parent acb0e1df28
commit 82e5462ffd
2 changed files with 121 additions and 1 deletions

4
.gitignore vendored
View File

@ -178,4 +178,6 @@ cython_debug/
/lab_2/aimenv
/lab_3/aimenv
/lab_3/aimenv
lab_8/static

View File

@ -0,0 +1,118 @@
{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Загрузка датасета"
]
},
{
"cell_type": "code",
"execution_count": 13,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Загружено 41 документов.\n"
]
}
],
"source": [
"import os\n",
"import win32com.client\n",
"\n",
"# Путь к папке с распакованными файлами\n",
"data_dir = r\"C:/Users/Egor/Desktop/ULSTU\\AI/aim/AIM-PIbd-32-Petrushin-E-A/lab_8/static\"\n",
"\n",
"# Инициализация Word\n",
"word = win32com.client.Dispatch(\"Word.Application\")\n",
"word.visible = False\n",
"\n",
"# Чтение всех .doc файлов\n",
"texts = []\n",
"for filename in os.listdir(data_dir):\n",
" if filename.endswith(\".doc\"):\n",
" file_path = os.path.join(data_dir, filename)\n",
" try:\n",
" doc = word.Documents.Open(file_path)\n",
" text = doc.Content.Text\n",
" texts.append(text)\n",
" doc.Close()\n",
" except Exception as e:\n",
" print(f\"Ошибка при чтении файла {filename}: {e}\")\n",
"\n",
"# Закрытие Word\n",
"word.Quit()\n",
"\n",
"# Теперь texts содержит список текстов\n",
"print(f\"Загружено {len(texts)} документов.\")"
]
},
{
"cell_type": "code",
"execution_count": 14,
"metadata": {},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"[nltk_data] Downloading package stopwords to\n",
"[nltk_data] C:\\Users\\Egor\\AppData\\Roaming\\nltk_data...\n",
"[nltk_data] Unzipping corpora\\stopwords.zip.\n",
"[nltk_data] Downloading package wordnet to\n",
"[nltk_data] C:\\Users\\Egor\\AppData\\Roaming\\nltk_data...\n"
]
}
],
"source": [
"import re\n",
"from nltk.corpus import stopwords\n",
"from nltk.stem import WordNetLemmatizer\n",
"import nltk\n",
"\n",
"# Загрузка стоп-слов и лемматизатора\n",
"nltk.download('stopwords')\n",
"nltk.download('wordnet')\n",
"stop_words = set(stopwords.words('russian')) # Для русского языка\n",
"lemmatizer = WordNetLemmatizer()\n",
"\n",
"def preprocess_text(text):\n",
" # Удаление спецсимволов\n",
" text = re.sub(r'\\W', ' ', text)\n",
" # Приведение к нижнему регистру\n",
" text = text.lower()\n",
" # Удаление стоп-слов и лемматизация\n",
" tokens = [lemmatizer.lemmatize(word) for word in text.split() if word not in stop_words]\n",
" return ' '.join(tokens)\n",
"\n",
"# Применение предобработки к каждому документу\n",
"texts = [preprocess_text(text) for text in texts]"
]
}
],
"metadata": {
"kernelspec": {
"display_name": ".venv",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.12.5"
}
},
"nbformat": 4,
"nbformat_minor": 2
}