Библиотека питониста | Python, Django, Flask
40.5K subscribers
2.78K photos
75 videos
51 files
4.36K links
Все самое полезное для питониста в одном канале.

Список наших каналов: https://t.iss.one/proglibrary/9197

Курс по ML: https://cl

Для обратной связи: @proglibrary_feeedback_bot

По рекламе: @proglib_adv
РКН: https://gosuslugi.ru/snet/67b885cbd501cf3b2cdb5b36
Download Telegram
💼 Топ-вакансий для питонистов за неделю

Backend Python/Django —‍ от 3000 до 6000 $, удалёнка

Python Developer —‍ до 170 000 ₽, удалёнка

Odoo/Python разработчик —‍ до 200 000 ₽, удалёнка

Архитектор в AI проектах, удалёнка

Backend Lead (Python/Go), удалёнка

➡️ Еще больше топовых вакансий — в нашем канале Python jobs

🐸 Библиотека питониста
Please open Telegram to view this post
VIEW IN TELEGRAM
3😁3
🔎 Текстовая схожесть: от regex до нейросетей

В реальном мире строки редко совпадают «под копирку».
Например:
"aPpLe iPhone® 14 Pro Max"
"iphone 14 pro max"


Вопрос — чем сравнивать? Ответ зависит от того, что именно вы хотите поймать.

1️⃣ Regex — чистим шум по шаблону

Идеален как первый шаг: убрать мусор, стандартизировать формат.
import re
def clean(t):
t = t.lower()
t = re.sub(r"[®©]", "", t)
return re.sub(r"\s+", " ", t).strip()

clean("iPhone® 14 Pro Max")
# 'iphone 14 pro max'


Приводит строки к общему виду
✖️ Не знает, что «наушники» и «headphones» — это одно и то же

2️⃣ difflib — встроенный baseline

Умеет считать похожесть на уровне символов. Отлично для быстрого «на коленке».
from difflib import SequenceMatcher
SequenceMatcher(None, "iphone 14 pro max", "i phone 14 pro max").ratio()
# 0.97


Ловит пробелы и опечатки
✖️ Путается, если слова меняются местами

3️⃣ RapidFuzz — быстрый и умный fuzzy

Оптимизированный под скорость и адекватнее реагирует на перестановку слов.

from rapidfuzz import fuzz
fuzz.WRatio("apple iphone 14 pro max", "iphone 14 pro max apple")
# 95


Справляется с разным порядком слов и лишними словами
✖️ Для него «wireless headphones» и «bluetooth earbuds» — разные вещи

4️⃣ Sentence Transformers — смысл > буквы

Нейросети, которые понимают значение, а не только текстовый паттерн.
from sentence_transformers import SentenceTransformer
from sklearn.metrics.pairwise import cosine_similarity

m = SentenceTransformer('all-MiniLM-L6-v2')
cosine_similarity(
[m.encode("wireless headphones")],
[m.encode("bluetooth earbuds")]
)[0][0]
# 0.75


Понимает синонимы и концептуальную близость
✖️ Требует ресурсов, особенно на больших данных

➡️ Как выбирать:
re → всегда первым шагом
difflib → мелкие задачи без зависимостей
RapidFuzz → продакшн, большие объёмы, сложные текстовые вариации
Sentence Transformers → смысл важнее скорости, есть GPU

🐸 Библиотека питониста

#буст
Please open Telegram to view this post
VIEW IN TELEGRAM
11👍2🔥1