Практические примеры для сбора данных


1.1.1 Использование внутренних источников


Пример: Обработка архивных документов компании


1. Автоматическое извлечение информации из PDF-файлов:


```python


import PyPDF2

def extract_text_from_pdf(file_path):

with open(file_path, "rb") as file:

reader = PyPDF2.PdfReader(file)

text = ""

for page in reader.pages:

text += page.extract_text()

return text

pdf_text = extract_text_from_pdf("internal_documents.pdf")

print("Извлечённый текст:", pdf_text[:500])


```


2. Классификация данных:


Разделите извлечённый текст на категории:


```python


theoretical = []

practical = []

for line in pdf_text.split("\n"):

if "определение" in line.lower() or "термин" in line.lower():

theoretical.append(line)

elif "пример" in line.lower():

practical.append(line)

print("Теория:", theoretical[:5])

print("Практика:", practical[:5])


```


Результат: Внутренние материалы классифицированы для дальнейшего использования.


1.1.2 Использование внешних источников


Пример: Сбор научных статей с использованием BeautifulSoup


1. Скрейпинг данных из открытых источников:


```python


import requests

from bs4 import BeautifulSoup

def fetch_articles(base_url, keyword):

response = requests.get(f"{base_url}/search?q={keyword}")

soup = BeautifulSoup(response.text, "html.parser")

articles = []

for result in soup.find_all("div", class_="result"):

title = result.find("h2").text

link = result.find("a")["href"]

summary = result.find("p", class_="summary").text

articles.append({"title": title, "link": link, "summary": summary})

return articles

articles = fetch_articles("https://example.com", "когнитивное программирование")

print("Найденные статьи:", articles[:3])


```


2. Проверка лицензий:


Убедитесь, что данные не нарушают авторских прав, проверяя метаданные статьи на открытые лицензии (например, Creative Commons).


Результат: Собраны релевантные статьи из научных источников.


1.1.3 Проверка данных на актуальность и релевантность


Пример: Фильтрация данных по дате и ключевым словам


1. Отфильтруйте устаревшие материалы:


```python


from datetime import datetime

def filter_recent_articles(articles, years=5):

threshold_date = datetime.now().year – years

return [article for article in articles if int(article.get("date", 0)) >= threshold_date]

filtered_articles = filter_recent_articles([

{"title": "Статья 1", "date": "2019"},

{"title": "Статья 2", "date": "2010"}

])

print("Актуальные статьи:", filtered_articles)


```


2. Проверка релевантности по ключевым словам:


```python


keywords = ["когнитивное программирование", "модель", "примеры"]

def filter_by_keywords(articles, keywords):

return [article for article in articles if any(keyword in article["summary"] for keyword in keywords)]

relevant_articles = filter_by_keywords(articles, keywords)

print("Релевантные статьи:", relevant_articles)


```


Результат: Оставлены только актуальные и релевантные материалы.


1.1.4 Организация файлов


Пример: Разделение данных по категориям


1. Структурируйте данные по типам:


```python


def organize_files(data):

categories = {"Теория": [], "Практика": [], "FAQ": []}

for item in data:

if "определение" in item["summary"].lower():

categories["Теория"].append(item)

elif "пример" in item["summary"].lower():

categories["Практика"].append(item)

elif "вопрос" in item["summary"].lower():

categories["FAQ"].append(item)

return categories

structured_data = organize_files(relevant_articles)

print("Структурированные данные:", structured_data)


```


2. Создание файловой структуры:


```python


import os

base_path = "./knowledge_base"

for category in structured_data:

os.makedirs(f"{base_path}/{category}", exist_ok=True)

for i, item in enumerate(structured_data[category]):

with open(f"{base_path}/{category}/doc_{i+1}.txt", "w", encoding="utf-8") as file:

file.write(item["summary"])


```


Результат: Данные распределены по категориям с удобной файловой организацией.


1.1.5 Пример полного процесса сбора данных


Этап 1: Сбор внутренних данных


Извлечены обучающие материалы компании.


Классифицированы на теоретические основы и практические примеры.


Этап 2: Сбор внешних данных


Собраны научные статьи по ключевым словам.


Удалены устаревшие и нерелевантные статьи.


Этап 3: Интеграция в базу знаний


Все данные структурированы по категориям: Теория, Практика, FAQ.


Установлена файловая структура для удобной обработки.


Результат: Получен качественный набор данных для обучения модели и наполнения базы знаний.


Эти подходы обеспечивают системный подход к сбору, проверке и организации данных, что улучшает качество ответов когнитивного тренажера.

Загрузка...