немного нерабочее
This commit is contained in:
parent
acb0e1df28
commit
82e5462ffd
4
.gitignore
vendored
4
.gitignore
vendored
@ -178,4 +178,6 @@ cython_debug/
|
||||
|
||||
/lab_2/aimenv
|
||||
|
||||
/lab_3/aimenv
|
||||
/lab_3/aimenv
|
||||
|
||||
lab_8/static
|
118
lab_8/lab8.ipynb
118
lab_8/lab8.ipynb
@ -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
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user