Анализ данных (Data analysis)
Data science, наука о данных. @haarrp - админ РКН: clck.ru/3FmyAp
إظهار المزيد📈 نظرة تحليلية على قناة تيليجرام Анализ данных (Data analysis)
تُعد قناة Анализ данных (Data analysis) (@data_analysis_ml) في القطاع اللغوي الروسية لاعباً نشطاً. يضم المجتمع حالياً 50 248 مشتركاً، محتلاً المرتبة 2 657 في فئة التكنولوجيات والتطبيقات والمرتبة 12 484 في منطقة روسيا.
📊 مؤشرات الجمهور والحراك
منذ تأسيسه في невідомо، حقق المشروع نمواً سريعاً وجمع 50 248 مشتركاً.
بحسب آخر البيانات بتاريخ 25 يونيو, 2026، تحافظ القناة على نشاط مستقر. خلال آخر 30 يوماً تغيّر عدد الأعضاء بمقدار 38، وفي آخر 24 ساعة بمقدار 0، مع بقاء الوصول العام مرتفعاً.
- حالة التحقق: غير موثّقة
- معدل التفاعل (ER): يبلغ متوسط تفاعل الجمهور 8.85%. وخلال أول 24 ساعة من النشر يحصد المحتوى عادةً 6.52% من ردود الفعل نسبةً إلى إجمالي المشتركين.
- وصول المنشورات: يحصل كل منشور على متوسط 4 447 مشاهدة. وخلال اليوم الأول يجمع عادةً 3 278 مشاهدة.
- التفاعلات والاستجابة: يتفاعل الجمهور بانتظام؛ متوسط التفاعلات لكل منشور يبلغ 28.
- الاهتمامات الموضوعية: يركز المحتوى على مواضيع رئيسية مثل llm, контекст, openai, архитектура, deepseek.
📝 الوصف وسياسة المحتوى
يصف المؤلف القناة بأنها مساحة للتعبير عن الآراء الذاتية:
“Data science, наука о данных.
@haarrp - админ
РКН: clck.ru/3FmyAp”
بفضل وتيرة التحديث المرتفعة (أحدث البيانات بتاريخ 26 يونيو, 2026) تحافظ القناة على حداثتها ومستوى وصول مرتفع. وتُظهر التحليلات تفاعلاً نشطاً من الجمهور، ما يجعلها نقطة تأثير مهمة ضمن فئة التكنولوجيات والتطبيقات.
product_table
+----+----------------------+-------+-------------+
| id | Название | Цена | category_id |
+----+----------------------+-------+-------------+
| 1 | iPhone 13 | 1000 | 2 |
| 2 | Galaxy S21 | 800 | 2 |
| 3 | Pixel 6 | 700 | 2 |
| 4 | MacBook Air | 1000 | 4 |
| 5 | Surface Pro 8 | 1200 | 4 |
| 6 | iPad Pro | 800 | 3 |
| 7 | iPad Mini | 400 | 9 |
| 8 | Smart TV | 800 | 1 |
| 9 | Home Theater System | 600 | 1 |
| 10 | Galaxy S21 Ultra | 1400 | 2 |
| 11 | iPhone 13 Pro Max | 1300 | 2 |
| 12 | Pixel 6 Pro | 1000 | 2 |
+----+----------------------+-------+-------------+
category_table
+----+-------------+
| id | Название |
+----+-------------+
| 1 | Электроника |
| 2 | Телефоны |
| 3 | Планшеты |
| 4 | Ноутбуки |
| 5 | Бытовая техника |
| 6 | Одежда |
| 7 | Спорттовары |
| 8 | Игрушки |
| 9 | Аксессуары |
+----+-------------+
order_table
+----+------------+-------------+------------+
| id | product_id | Количество | Дата |
+----+------------+-------------+------------+
| 1 | 1 | 2 | 2022-03-28 |
| 2 | 2 | 1 | 2022-03-28 |
| 3 | 3 | 3 | 2022-03-29 |
| 4 | 4 | 1 | 2022-03-30 |
| 5 | 5 | 2 | 2022-03-31 |
| 6 | 6 | 3 | 2022-03-31 |
| 7 | 7 | 2 | 2022-03-31 |
| 8 | 8 | 1 | 2022-03-31 |
| 9 | 9 | 1 | 2022-03-31 |
+--------------------------------------------+
Фильтрация данных
Предложение WHERE — это важный SQL-функционал для фильтрования данных по конкретным условиям. WHERE, которым определяется условие включения данных в результаты, добавляется в конце оператора SELECT.
Пример. Чтобы получить все продукты дороже 1000 $, применяем WHERE для их фильтрации по цене, в результаты включаются только продукты дороже 1000 $:
SELECT *
FROM product_table
WHERE price > 1000;
Возвращаемый результат:
+----+---------------------+-------+-------------+
| id | Название | Цена | category_id |
+----+---------------------+-------+-------------+
| 5 | Surface Pro 8 | 1200 | 4 |
| 10 | Galaxy S21 Ultra | 1400 | 2 |
| 11 | iPhone 13 Pro Max | 1300 | 2 |
+----+---------------------+-------+-------------+
Объединения
Чтобы иметь полную картину о данных нескольких таблиц, эти таблицы объединяют. Для этого в SQL имеются внутренние, левые, правые и полные внешние объединения.
Пример. Чтобы получить список всех заказов и название заказанного продукта, с помощью объединения в SQL объединяем таблицы: в одной данные о заказе, в другой — о продукте:
SELECT order_table.*, product_table.name
FROM order_table
INNER JOIN product_table ON order_table.product_id = product_table.id;
📌 Читать дальшеfrom langchain.llms import OpenAI
llm = OpenAI(model_name = 'gpt-3.5-turbo',
openai_api_key = 'ваш ключ',
temperature = 0.7)
Загрузка исходго видео.
Скопируйте и вставьте ссылку на видео с YouTube. Загрузите текст видео с помощью функции loader.load() и сохраните его в переменной, как показано ниже.
from langchain.document_loaders import YoutubeLoader
loader = YoutubeLoader.from_youtube_url('<https://www.youtube.com/watch?v=ogEalPMUCSY&pp=ygUJTGFuZ2NoaWFu>')
doc = loader.load()
Разделение текста на фрагменты
Размделим весь PDF-файл с текстом из видео на фрагменты с помощью функциии RecursiveCharacterTextSplitter. Установим размер фрагмента 1000 и значение перекрытия фрагментов 10. Это позволит разбить документ на фрагменты по 1000 слов.
from langchain.text_splitter import RecursiveCharacterTextSplitter
text_splitter = RecursiveCharacterTextSplitter(chunk_size=1000, chunk_overlap=10)
text_chunks = text_splitter.split_documents(doc)
Создание и хранение векторных эмбеддингов
Настроим функцию эмбедингов OpenAIEmbeddings и хранилище векторов Pinecone. Подключим pinecone. Загрузите все текстовые фрагменты в векторное хранилище с помощью функции Pinecone.from_texts.
from langchain.vectorstores import Pinecone
from langchain.embeddings import OpenAIEmbeddings
import pinecone
import tqdm
import os
embeddings = OpenAIEmbeddings(openai_api_key= 'ваш апи ключ')
pinecone.init(
api_key= 'PINECONE_API_KEY'
environment = 'PINECONE_API_ENVIRON'
)
index_name = 'chatchain'
docsearch = Pinecone.from_texts(texts = [t.page_content for t in text_chunks],embedding=embeddings, index_name=index_name)
Настроим запросы
similarity_searh и k=4 выдаст 4 наиболее релевантных фрагмента, относящихся к нашему запросу. Передайте эти документы в load_qa_chain. Он просуммирует фрагменты в соответствии с нашим запросом и выдаст наилучший возможный ответ.
from langchain.chains.question_answering import load_qa_chain
query = 'what is vector embeddings'
docs = docsearch.similarity_search(query, k=4)
chain = load_qa_chain(llm, chain_type = 'stuff')
chain.run(input_documents=docs, question=query)
С помощью этого чат-бота вы можете загрузить любое видео,, задать любые вопросы по нему и получить искомое за считанные секунды с помощью ии-бота.
📌Бесплатный курс от Activeloop на LangChain & Vector Databases in Production.
📌pinecone
📌Статья
@data_analysis_mlНативная интеграция. Информация о продукте www.otus.rupip install scrapy
• Основы веб-скрепинга
Чтобы проиллюстрировать фундаментальную концепцию Scrapy, давайте создадим простой веб-скрепер, извлекающий данные с сайта. В этом примере мы будем извлекать цитаты с сайта “http://quotes.toscrape.com”. Изображение 1.
✔️ Мы определяем класс с именем “QuotesSpider”, который наследуется от класса Scrapy Spider. Мы указываем URL-адреса, с которых парсер начинает собирать данные. Метод “parse” является точкой входа парсера, в нем мы извлекаем нужные данные (цитаты и авторов) с помощью CSS-селекторов. Для возврата извлеченных данных мы используем оператор “yield”.
• Продвинутые техники скрапирования
Рассмотрим две важные техники парсинга: работу с пагинацией на страницах и извлечение данных из страниц всех собранных страниц. Изображение 2.
✔️ Мы создаем класс под названием “ProductSpider” для сбора информации о товарах с сайта электронной коммерции. В методе “parse” мы извлекаем название продукта и его цену со страниц. Кроме того, мы переходим по ссылкам на страницы с подробной информацией с помощью метода “response.follow” и определяем отдельный метод “parse product” для разбора страниц с подробной информацией об отдельных товарах. В методе “parse_product” мы извлекаем дополнительные сведения, например, описание товара.
• Обработка входа в систему и аутентификации
Scrapy предлагает функции для обработки сценариев входа в систему и аутентификации, что позволяет собирать данные из закрытых областей сайта. Пример обработки входа в систему с помощью FormRequest: Изображение 3.
✔️ Мы создаем класс с именем “LoginSpider” для обработки процесса входа в систему. В методе “parse” мы извлекаем данные формы входа в систему, включая CSRF-токен. Затем мы отправляем форму входа в систему с помощью FormRequest, передавая данные формы и функцию обратного вызова “after_login” для обработки ответа. В методе “after_login” можно выполнять дальнейшие операции Парсинга на аутентифицированных страницах.
@data_analysis_mlimport pandas as pd
import numpy as np
import matplotlib.pyplot as plt
from base64 import b64encode
from io import BytesIO
from IPython.display import HTML
%matplotlib inline
• Теперь создадим выдуманный набор данных:
n = 100
data = [
('Bitcoin', 40000*np.random.rand(n).round(2)),
('Ethereum', 2000*np.random.rand(n).round(2)),
('BNB', 500*np.random.rand(n).round(2)),
('Litecoin', 150*np.random.rand(n).round(2)),
]
df = pd.DataFrame(data, columns=['Name', 'Price History'])
df.head()
Name Price History
0 Bitcoin [24800.0, 12400.0, 14800.0, 24800.0, 20800.0, ...
1 Ethereum [1900.0, 380.0, 420.0, 1760.0, 800.0, 620.0, 1...
2 BNB [120.0, 170.0, 255.0, 255.0, 395.0, 150.0, 180...
3 Litecoin [126.0, 109.5, 94.5, 49.5, 81.0, 129.0, 66.0, ...
• В соответствии с четырьмя строками у нас есть список случайно сгенерированных историй цен. Теперь наша цель — добавить линейный график в каждую строку. Таким образом, мы можем создать функцию и использовать метод apply().
Как упоминалось выше, Jupyter отображает DataFrame с помощью HTML. Если мы придумаем способ, с помощью которого сможем предоставить HTML в качестве значения ячейки, ссылающейся на изображение, Jupyter сможет это отрисовать и отобразить соответствующий линейный график.
Вот код, который мы для этого используем:
def create_line(data, **kwags):
# Преобразование данных в список
data = list(data)
# Создание объекта фигуры и оси с заданным размером и аргументами ключевых слов
fig, ax = plt.subplots(1, 1, figsize=(3, 0.25), **kwags)
# Построение графика из данных
ax.plot(data)
# Удаление границ в графике
for k,v in ax.spines.items():
v.set_visible(False)
# Удаление делений у осей x и y
ax.set_xticks([])
ax.set_yticks([])
# Создание красной точки в последней точке данных
plt.plot(len(data) - 1, data[len(data) - 1], 'r.')
# Заполнение области под графиком с помощью alpha=0.1
ax.fill_between(range(len(data)), data, len(data)*[min(data)], alpha=0.1)
# Закрытие графика, чтобы он не отображался
plt.close(fig)
# Сохранение графика как изображения в формате png и получение его бинарных данных
img = BytesIO()
fig.savefig(img, format='png')
encoded = b64encode(img.getvalue()).decode('utf-8')
# Возвращение закодированных данных изображения в виде тега изображения HTML
return '<img src="data:image/png;base64,{}"/>'.format(encoded)
Хотя часть построения довольно очевидна, сосредоточимся на том, для чего предназначены последние четыре строки кода (не включая комментарии).
Цель состоит в том, чтобы преобразовать график в изображение, которое может быть отображено на веб-странице.
📌 Продолжение
@data_analysis_ml
متاح الآن! بحث تيليغرام 2025 — أهم رؤى العام 
