Как можно применять модуль showballstemmer?
Работали когда-нибудь над поисковиками? Хороший поисковик должен много чего уметь находить по минимальному запросу.
Некоторые используют pymorph2 (первая слишком много потребляет ресурсов), но ведь достаточно определять основу слова, а не начальную форму для нахождения большинства результатов.
Библиотека showballstemmer и занимается тем, что определяет основу слова, что делает поиск более точным. А главное — библиотека мало потребляет, а результат получается намного лучше.
В начале следует импортировать модуль требуемого языка, к примеру вот модули английского, русского и французского соответственно: EnglishStemmer, FrenchStemmer, RussianStemmer
#theory // Just Python
Работали когда-нибудь над поисковиками? Хороший поисковик должен много чего уметь находить по минимальному запросу.
Некоторые используют pymorph2 (первая слишком много потребляет ресурсов), но ведь достаточно определять основу слова, а не начальную форму для нахождения большинства результатов.
Библиотека showballstemmer и занимается тем, что определяет основу слова, что делает поиск более точным. А главное — библиотека мало потребляет, а результат получается намного лучше.
В начале следует импортировать модуль требуемого языка, к примеру вот модули английского, русского и французского соответственно: EnglishStemmer, FrenchStemmer, RussianStemmer
#theory // Just Python
Пример аннотации типов
Аннотация типов дает возможность проставлять в коде "подсказки" для программиста, не используя комментарии через #
При большом количестве кода бывает, что просто забудешь какой тип должна принять / вернуть функция. Для этого и можно воспользоваться этой полезной фичей
А еще можно воспользоваться модулем mypy, чтобы находить ошибки несоответствия типов в коде
#theory // Just Python
Аннотация типов дает возможность проставлять в коде "подсказки" для программиста, не используя комментарии через #
При большом количестве кода бывает, что просто забудешь какой тип должна принять / вернуть функция. Для этого и можно воспользоваться этой полезной фичей
А еще можно воспользоваться модулем mypy, чтобы находить ошибки несоответствия типов в коде
#theory // Just Python
Чтобы начать карьеру в анализе данных, нужно выбрать направление. А для этого — как-то отличить друг от друга аналитиков данных, системных, продуктовых и бизнес-аналитиков, инженеров данных и специалистов по Data Science.
Яндекс Практикум запускает бесплатный курс, который поможет это сделать. Расскажем, чем занимаются разные аналитики, сколько они зарабатывают и как стать одним или одной из них.
Курс будет полезен, если
→ у вас нет опыта, но хочется работать в анализе данных;
→ хотите сменить профессию, но не знаете, с чего начать.
После курса можно будет пройти бесплатную вводную часть о профессии, которая понравилась. Там вы решите первые практические задачи настоящих аналитиков.
Начините путь в анализ данных вместе с Практикумом
Яндекс Практикум запускает бесплатный курс, который поможет это сделать. Расскажем, чем занимаются разные аналитики, сколько они зарабатывают и как стать одним или одной из них.
Курс будет полезен, если
→ у вас нет опыта, но хочется работать в анализе данных;
→ хотите сменить профессию, но не знаете, с чего начать.
После курса можно будет пройти бесплатную вводную часть о профессии, которая понравилась. Там вы решите первые практические задачи настоящих аналитиков.
Начините путь в анализ данных вместе с Практикумом
Базы Данных
Хранить данные нужно всем. Обычно при работе программы все хранится в оперативной памяти (ОЗУ), но при перезапуске все стирается. И для запоминания информацию записывают на жесткий диск. Это и есть База Данных.
Самая популярная База Данных - текстовый файл с записанными значениями. И правда очень удобно. Достаточно открыть файл и прочитать, что там лежит, особенно, если мы знаем какая строка сему соответствует.
Еще информацию которая меняется от программы к программе можно записать в отдельный Python файл. Так нам даже не придется его открывать.
#theory // Just Python
Хранить данные нужно всем. Обычно при работе программы все хранится в оперативной памяти (ОЗУ), но при перезапуске все стирается. И для запоминания информацию записывают на жесткий диск. Это и есть База Данных.
Самая популярная База Данных - текстовый файл с записанными значениями. И правда очень удобно. Достаточно открыть файл и прочитать, что там лежит, особенно, если мы знаем какая строка сему соответствует.
Еще информацию которая меняется от программы к программе можно записать в отдельный Python файл. Так нам даже не придется его открывать.
#theory // Just Python
Использование функции sum()
Как бы вы решили задачу получения суммы элементов списка без обхода элементов в цикле?
Это можно сделать с помощью стандартной функции sum().
Cинтакс функции sum():
iterable - итерируемые типы (list ,dict, tuple, и.т.д.)
start - (необязательно) значение этого параметра прибавляется к уже готовой сумме элементов iterable. По умолчанию значение этого параметра 0.
Возвращаемое значение из sum():
sum() возвращает сумму start и элементов всех последующих элементов.
#theory // Just Python
Как бы вы решили задачу получения суммы элементов списка без обхода элементов в цикле?
Это можно сделать с помощью стандартной функции sum().
Cинтакс функции sum():
start)
Параметры sum():iterable - итерируемые типы (list ,dict, tuple, и.т.д.)
start - (необязательно) значение этого параметра прибавляется к уже готовой сумме элементов iterable. По умолчанию значение этого параметра 0.
Возвращаемое значение из sum():
sum() возвращает сумму start и элементов всех последующих элементов.
#theory // Just Python
Методы list в Python
Во время собеседования на вакансию
python-разработчика очень часто звучат вопросы про списки и их методы.
Мы собрали для вас часть этих методов.
1. append() - добавляет элемент в конец списка.
2. clear() - удаляет все элементы из списка
3. copy() - делает поверхностную копию списка. Почему нужно пользоваться именно этим методом, а не присваиванием мы разбирали в другой статье.
4. count() - считает, сколько раз в списке встречается переданный аргумент.
#theory // Just Python
Во время собеседования на вакансию
python-разработчика очень часто звучат вопросы про списки и их методы.
Мы собрали для вас часть этих методов.
1. append() - добавляет элемент в конец списка.
2. clear() - удаляет все элементы из списка
3. copy() - делает поверхностную копию списка. Почему нужно пользоваться именно этим методом, а не присваиванием мы разбирали в другой статье.
4. count() - считает, сколько раз в списке встречается переданный аргумент.
#theory // Just Python
Как использовать умное логгирование исключений с exc_info=True
Когда ловишь исключение и хочешь залоггировать стек, многие забывают важный параметр.
Итог
Добавляй exc_info=True к логгированию исключений — получишь полный стек и не потеряешь важные детали при отладке.
#theory // Just Python
Когда ловишь исключение и хочешь залоггировать стек, многие забывают важный параметр.
Итог
Добавляй exc_info=True к логгированию исключений — получишь полный стек и не потеряешь важные детали при отладке.
#theory // Just Python
Переопределение стандартного поведения функций через декоратор
Иногда хочется обернуть функцию, чтобы автоматически логировать её вызов или измерять время исполнения. Это удобно делать через декоратор.
Итог
Декораторы позволяют добавлять поведение к функциям, не изменяя их напрямую. Это мощный инструмент для логирования, кэширования, авторизации и прочих нужд.
#theory // Just Python
Иногда хочется обернуть функцию, чтобы автоматически логировать её вызов или измерять время исполнения. Это удобно делать через декоратор.
Итог
Декораторы позволяют добавлять поведение к функциям, не изменяя их напрямую. Это мощный инструмент для логирования, кэширования, авторизации и прочих нужд.
#theory // Just Python
Как элегантно "перевернуть" словарь
Иногда нужно поменять местами ключи и значения в словаре. Это можно сделать в одну строчку с помощью генератора словаря.
Итог:
Инвертирование словаря — это просто и читаемо с генератором. Но помни: значения должны быть уникальны и хэшируемы, чтобы не потерять данные!
#theory // Just Python
Иногда нужно поменять местами ключи и значения в словаре. Это можно сделать в одну строчку с помощью генератора словаря.
Итог:
Инвертирование словаря — это просто и читаемо с генератором. Но помни: значения должны быть уникальны и хэшируемы, чтобы не потерять данные!
#theory // Just Python
Как задать тайм-аут для любой функции
Иногда нужно ограничить время выполнения функции, особенно если она может "зависнуть". Для этого можно использовать concurrent.futures и ThreadPoolExecutor.
Итог:
Такой приём позволяет безопасно завершать зависающие операции, не блокируя основной поток. Отлично подходит для сетевых вызовов, парсинга и других непредсказуемых задач.
#theory // Just Python
Иногда нужно ограничить время выполнения функции, особенно если она может "зависнуть". Для этого можно использовать concurrent.futures и ThreadPoolExecutor.
Итог:
Такой приём позволяет безопасно завершать зависающие операции, не блокируя основной поток. Отлично подходит для сетевых вызовов, парсинга и других непредсказуемых задач.
#theory // Just Python
Yarl — Удобная работа с URL
Yarl — это библиотека Python, предназначенная для удобной работы с URL-адресами. Она предоставляет API для создания, изменения и анализа URL-адресов, сохраняя при этом их семантическую корректность.
Если вы работаете с URL-адресами и хотите упростить их обработку в Python, Yarl может быть отличным выбором.
Ссылочка на доку
#theory // Just Python
Yarl — это библиотека Python, предназначенная для удобной работы с URL-адресами. Она предоставляет API для создания, изменения и анализа URL-адресов, сохраняя при этом их семантическую корректность.
Если вы работаете с URL-адресами и хотите упростить их обработку в Python, Yarl может быть отличным выбором.
Ссылочка на доку
#theory // Just Python
Повтор последнего результата в Python REPL
Если работаешь в интерактивном режиме Python (REPL), тебе не обязательно каждый раз сохранять результат в переменную — предыдущий результат всегда доступен через _.
Итог:
Символ _ в интерактивной консоли Python хранит результат последнего выражения — удобно для быстрых вычислений и экспериментов без создания переменных.
#theory // Just Python
Если работаешь в интерактивном режиме Python (REPL), тебе не обязательно каждый раз сохранять результат в переменную — предыдущий результат всегда доступен через _.
Итог:
Символ _ в интерактивной консоли Python хранит результат последнего выражения — удобно для быстрых вычислений и экспериментов без создания переменных.
#theory // Just Python
Удаление дубликатов, сохраняя порядок
Стандартный set() удаляет дубликаты, но не сохраняет порядок. Чтобы сохранить порядок элементов, можно использовать dict.fromkeys().
Итог
dict.fromkeys() — простой и читаемый способ удалить дубликаты из списка, сохранив порядок появления. Работает быстро и не требует сторонних библиотек.
#theory // Just Python
Стандартный set() удаляет дубликаты, но не сохраняет порядок. Чтобы сохранить порядок элементов, можно использовать dict.fromkeys().
Итог
dict.fromkeys() — простой и читаемый способ удалить дубликаты из списка, сохранив порядок появления. Работает быстро и не требует сторонних библиотек.
#theory // Just Python
setdefault() для упрощения работы со словарями
Иногда нужно добавлять значения в словарь списков. Можно проверять наличие ключа вручную, а можно использовать setdefault().
Итог
Метод setdefault() избавляет от лишней проверки ключей и помогает лаконично группировать данные в словарях.
#theory // Just Python
Иногда нужно добавлять значения в словарь списков. Можно проверять наличие ключа вручную, а можно использовать setdefault().
Итог
Метод setdefault() избавляет от лишней проверки ключей и помогает лаконично группировать данные в словарях.
#theory // Just Python
Прерывание цикла for с else
Мало кто знает, но for и while в Python могут иметь else. Этот else сработает только если цикл не был прерван через break. Удобно, когда нужно узнать, завершился ли цикл «естественно».
Итог
Конструкция for/else помогает элегантно отличить «успешный» проход по циклу от прерывания. Полезно при поиске, проверках и валидации!
#theory // Just Python
Мало кто знает, но for и while в Python могут иметь else. Этот else сработает только если цикл не был прерван через break. Удобно, когда нужно узнать, завершился ли цикл «естественно».
Итог
Конструкция for/else помогает элегантно отличить «успешный» проход по циклу от прерывания. Полезно при поиске, проверках и валидации!
#theory // Just Python
Безопасное извлечение значений из словаря
Иногда нужно получить значение из словаря, но ключ может отсутствовать. Вместо лишних if — используй .get() с дефолтным значением.
Итог
Метод .get() делает код чище и безопаснее, особенно при работе с необязательными данными.
#theory // Just Python
Иногда нужно получить значение из словаря, но ключ может отсутствовать. Вместо лишних if — используй .get() с дефолтным значением.
Итог
Метод .get() делает код чище и безопаснее, особенно при работе с необязательными данными.
#theory // Just Python
Безопасное удаление ключа из словаря
Обычно при удалении ключа из словаря с del можно случайно получить KeyError, если ключа нет. А вот dict.pop() с дефолтным значением — безопаснее и удобнее!
Итог
Используй dict.pop(key, default) — безопасный способ удалить ключ и получить значение, если оно нужно. Уберегаешься от KeyError и пишешь устойчивый код.
#theory // Just Python
Обычно при удалении ключа из словаря с del можно случайно получить KeyError, если ключа нет. А вот dict.pop() с дефолтным значением — безопаснее и удобнее!
Итог
Используй dict.pop(key, default) — безопасный способ удалить ключ и получить значение, если оно нужно. Уберегаешься от KeyError и пишешь устойчивый код.
#theory // Just Python
Пример использования tqdm
Tqdm (от арабского слова "taqadum", что означает "прогресс") — это библиотека Python, которая позволяет легко и быстро создавать индикаторы выполнения задач. Она особенно полезна при работе с длительными операциями, так как позволяет отслеживать ход выполнения и остаточное время.
#theory // Just Python
Tqdm (от арабского слова "taqadum", что означает "прогресс") — это библиотека Python, которая позволяет легко и быстро создавать индикаторы выполнения задач. Она особенно полезна при работе с длительными операциями, так как позволяет отслеживать ход выполнения и остаточное время.
#theory // Just Python
Детектор утечек
С помощью данного скрипта ты узнаешь, сливали ли твои имейлы или пароли. Делается это с помощью HaveIBeenPwned API. Ты вводишь email или пароль для проверки, а в ответ выводится список сайтов, где была компрометация.
Ссылка на код
#theory // Just Python
С помощью данного скрипта ты узнаешь, сливали ли твои имейлы или пароли. Делается это с помощью HaveIBeenPwned API. Ты вводишь email или пароль для проверки, а в ответ выводится список сайтов, где была компрометация.
Ссылка на код
#theory // Just Python
Преобразование Word Doc или Docx в PDF в Python
Spire.Doc for Python предоставляет метод Document.LoadFromFile(), который позволяет пользователям загрузить файл Doc или Docx.
После этого можно выполнить преобразование в PDF с помощью метода Document.SaveToFile(string filename, ToPdfParameterList parameter).
#theory // Just Python
Spire.Doc for Python предоставляет метод Document.LoadFromFile(), который позволяет пользователям загрузить файл Doc или Docx.
После этого можно выполнить преобразование в PDF с помощью метода Document.SaveToFile(string filename, ToPdfParameterList parameter).
#theory // Just Python