По вашему запросу ничего не найдено :(
Убедитесь, что запрос написан правильно, или посмотрите другие наши статьи:
img
В данной статье будет проведена кластеризация заранее подготовленного корпуса текстов. Он получен в результате работы программы-краулера, собиравшего новостные статьи с сайта arstechnica.com, присваивая каждому собранному тексту тему, к которой он был приписан на сайте. В ходе работы будет проведена кластеризация собранных текстов и визуализированы ключевые слова и максимально близкие к ним по смыслу на основании алгоритма word2vec. Наработки, освещенные в данной работе, могут быть использованы в беспрерывном анализе сайтов по поступающим адресам с целью автоматизации поиска данных по каким-либо критериям. Теория Лемматизация – это процесс преобразования слова в его базовую форму, которая учитывает контекст (в отличие от стемминга (stemming), который находит основу слова, не учитывая контекст). Wordnet – это большая лексическая база данных английского языка для установления структурированных семантических отношений между словами. Библиотека предлагает возможности лемматизации. Word2vec — это инструмент для расчета векторных представлений слов, который реализует основные архитектуры — Continuous Bag of Words (CBOW) и Skip-gram. Суть в том, что на вход подается текст, а на выходе мы получаем набор векторов слов. Используется для нахождения связей между контекстами. CBOW и Skip-gram — нейросетевые архитектуры, которые описывают, как именно нейросеть «учится» на данных и «запоминает» представления слов. Принципы у обоих архитектур разные. Принцип работы CBOW — предсказывание слова при данном контексте, а skip-gram наоборот — предсказывается контекст при данном слове. Практическая часть Сначала нужно считать корпус из ранее подготовленного файла и вывести краткие сведения о нем, чтобы убедиться, что все верно: Убираем из текстов знаки препинания и слова, которые слишком часто применяются и часто не несут смысловой нагрузки (так называемые стоп-слова), а именно предлоги, артикли, частицы, часть местоимений и некоторые формы вспомогательных глаголов: После необходимо разбить корпус на две выборки: обучающую и тестовую. С помощью обучающей выборки предполагается обучить метод векторизации и кластеризатор, а с помощью тестовой – проверить результаты их работы. С помощью параметра test_size можно задать соотношение размеров выборок. Затем можно приступить к векторизации текстов выборок. Количество признаков установлено на 500 и после этого сделано усреднение длин векторов. Обучив векторизатор, можно посмотреть наиболее близкие по контексту слова. Эта функция будет использована далее для визуализации Wordcloud. Для визуализации результатов кластеризации нужно выделить 2 главных признака и вывести координаты точек, исходя из значений двух выделенных параметров. Наконец, можно приступить к визуализации облака слов. Оно строится на основании веса каждого слова в корпусе. А так как в качестве корпуса подается топ-100 слов, семантически близких к слову car, то данное облако полностью состоит из слов, близких к car по мнению word2vec. Заключение В заключение нужно отметить, что, хотя данная кластеризация прошла относительно успешно, что видно из приведенных метрик и общему виду кластеров (их можно легко отделить друг от друга, в общей своей массе каждый из них имеет крайне малое количество своих представителей на территории другого кластера), все же можно подобрать лучшие параметры. Также повышению качества будет способствовать увеличение размеров корпуса и ручная доработка корпуса стоп-слов и пунктуации, хотя стоит отметить, что они и в стандартном виде работают достаточно эффективно для столь небольшой обучающей выборки (5952 текста о 5 разных, иногда пересекающихся, темах).
img
Итак, вы хотите стать администратором Windows Desktop? Однако прежде чем вы сможете это сделать, вам необходимо знать несколько ключевых навыков. В этой подробной статье мы расскажем о каждом из этих навыков и о том, как вы можете ими овладеть. 1. Развертывание и обновление Windows Самая фундаментальная задача администратора Windows - это развертывание операционных систем. Это означает установку текущей версии Windows на устройства организации. Традиционно для этого требовалась установка Windows с использованием существующего образа. Поскольку это требует так много времени и усилий со стороны администраторов настольных компьютеров, сегодня большинство организаций используют более автоматизированный подход. Есть несколько способов сделать это, и вы должны понимать их все, потому что не все организации развертывают Windows одинаково. Динамический подход к развертыванию позволяет развертывать Windows быстрее, чем традиционный подход, с помощью различных методов, в то время как современный подход к развертыванию продвигает эту концепцию еще на один шаг - позволяя пользователям самостоятельно развертывать ОС с помощью Windows Autopilot и обновления на месте. В организациях, которые решили не внедрять автопилот для своих пользователей, существуют следующие динамические подходы: Активация подписки. Некоторые версии Windows позволяют легко установить обновленную версию Windows с помощью простого процесса активации без необходимости вводить ключи или выполнять перезагрузку. Но у этого метода есть ограниченные варианты использования. Присоединиться к Azure Active Directory (AAD). В организациях, которые внедрили AAD, пользователь может настроить свое новое устройство Windows с помощью AAD, просто введя свой идентификатор и пароль. Пакеты подготовки. Вы можете развернуть Windows с помощью автономного пакета, созданного конструктором образов и конфигураций Windows (ICD - Windows Imaging and Configuration Designer). Этот процесс занимает меньше времени, чем традиционный подход к развертыванию, но занимает больше времени, чем другие методы. Администратор Windows должен не только понимать, как реализовать эти подходы, но и как настраивать, развертывать и управлять обновлениями ОС, а также как управлять аутентификацией устройств. 2. Управление и защита устройств Сегодня безопасность является насущной проблемой для каждой организации, поскольку одно-единственное нарушение данных может серьезно повредить даже крупнейшую из компаний. По этой причине одной из самых важных задач администратора рабочего стола Windows является безопасное управление устройствами организации и их защита. Администраторы настольных компьютеров должны научиться использовать два основных инструмента Windows для управления устройствами и их защиты: InTune и Defender. Microsoft Intune Этот облачный инструмент позволяет вам управлять настройками, функциями и безопасностью всех устройств, которые используются в организации, включая собственные устройства (BYOD) и те, которые используют ОС, отличные от Windows. Вы должны не только знать, как регистрировать устройства в Intune, но и как настраивать параметры приложения и создавать отчеты инвентаризации. Windows Defender Как пользователь Windows, вы можете думать об этой программе как о еще одном антивирусном приложении. Но в нем есть много функций безопасности корпоративного уровня, которые вам также необходимо освоить. Это включает в себя: Application Guard: Помогает организациям изолировать сайты, которые они сочли ненадежными. Credential Guard: Предотвращает кражу злоумышленниками учетных данных, которые могут быть использованы для атак. Exploit Guard: Добавляет Defender возможность защиты от вторжений. Advanced Threat Protection: Помогает организациям предотвращать, обнаруживать, исследовать сложные угрозы и реагировать на них. Application Control: Позволяет организациям контролировать, какие драйверы и приложения могут запускать устройства Windows. Наконец, как администратор рабочего стола вы должны знать, как эффективно контролировать безопасность и состояние устройства с помощью различных распространенных аналитических инструментов. 3. Управление приложениями и данными Подобно тому, как администратор Windows должен развертывать Windows и управлять этими развертываниями, администратор также должен развертывать приложения - и управлять ими и их данными. Пользователи зависят от своих приложений при выполнении своей работы, и вы должны убедиться, что они могут получить к ним надлежащий доступ. Как администратор, вы должны знать различные средства развертывания, обновления и управления приложениями в современной организации. В зависимости от политик и требований вашей организации вы сможете сделать это через Intune, Microsoft Store для бизнеса или Office 365 ProPlus. Вы также должны знать, как назначать приложения в группу и как подготовить приложение с помощью сайдлодинга, который представляет собой передачу мультимедиа с использованием таких методов, как USB, Bluetooth, Wi-Fi или карты памяти. Поскольку мобильные устройства становятся все более важным компонентом ИТ-инфраструктуры предприятия, вы также должны управлять приложениями, которые работают на этих устройствах, и их данными. Это делается с помощью так называемого управления мобильными приложениями (MAM - mobile application management). Это влечет за собой планирование, реализацию и управление политиками MAM, а также реализацию и настройку различных схем защиты информации. 4. Настройка сетевого подключения. Это очень важная область. Без подключения пользователи просто не могут выполнять свою работу. Таким образом, ничто не расстраивает их больше, чем отсутствие связи. Когда вы станете администратором, вы должны обладать значительным опытом настройки всех аспектов сетевого подключения. Это может повлечь за собой настройку IP-настроек устройств и настроек мобильной сети (включая профили Wi-Fi), а также настройку любого клиента виртуальной частной сети (VPN), поддерживаемого организацией. Что еще более важно, вы должны обладать навыками как для устранения распространенных проблем с подключением, с которыми сталкиваются пользователи, так и для способности их своевременно решать. Кроме того, поскольку так много сотрудников работают удаленно, дома или вне офиса, также важно иметь навыки настройки удаленного подключения. Это может включать настройку доступа к удаленному рабочему столу и инструментов удаленного управления, таких как: Remote Desktop: Удаленный рабочий стол - это программное обеспечение, которое позволяет пользователю на одном компьютере получать доступ к другому компьютеру, как если бы он находился перед ним. Remote Management: Это инструмент Windows, который удаленно управляет оборудованием устройства, позволяя диагностировать и устранять проблемы. PowerShell Remoting: PowerShell - это инструмент для создания сценариев администратора Windows, а удаленное взаимодействие PowerShell - это запуск сценария на удаленном компьютере. 5. Управление политиками и профилями Чтобы организация и ее устройства работали бесперебойно и последовательно, администратор рабочего стола Windows должен иметь возможность управлять широким спектром политик и профилей пользователей и устройств. В сегодняшнем мире, который все больше ориентируется на облачные технологии, для этого необходимо использовать комбинацию локальных инструментов, таких как Configuration Manager и Group Policy, и облачных инструментов, таких как AAD и Intune, и вы должны освоить эти инструменты: Configuration Manager: Инструмент Configuration Manager позволяет, среди прочего, настраивать политики и профили устройств Windows. Group Policy: Инструмент групповой политики обеспечивает централизованную настройку политик и профилей в среде Active Directory. Azure Active Directory (AAD): Администраторы десктопов должны иметь возможность рекомендовать, планировать и внедрять политики совместного управления, которые объединяют эти инструменты. Кроме того, у вас должна быть возможность переносить политики в политики управления мобильными устройствами (MDM). Также важны навыки планирования, внедрения и управления политиками условного доступа и соответствия устройств. Как администратор вы можете дополнительно нести ответственность за планирование, внедрение и управление профилями устройств, и вам, возможно, придется настроить профили пользователей, параметры синхронизации и перенаправление папок. Заключение Потребуется время, чтобы накопить знания, необходимые для успешного администратора Windows. Однако при правильном обучении, ресурсах и подходе к обучению вы можете развить необходимый набор навыков. Как только вы это сделаете, у вас будет возможность расширить не только свою карьеру, но и свой опыт в сфере ИТ.
img
Когда мы только начинаем изучать Python, мы закладываем некоторые вредные привычки при написании кода, о которых мы можем даже не подозревать. Вы можете написать код, который сработает сейчас, но может не сработать в будущем, или вы можете использовать какие-то хитрые ходы вместо встроенной функции, которая могла бы облегчить вашу жизнь. У большинства из нас сохранились не одна из тех вредных привычек при программировании на Python, что формируются в период первых месяцев обучения. Отличная новость в том, что вы можете с легкостью искоренить их, прочитав приведенный ниже текст. 1. Использование import * Каждый раз, когда нам становится лень, то возникает соблазн импортировать все необходимое из модуля с помощью from xyz import *. Это не самый лучший подход по многим причинам. Кот несколько из них: Это может оказаться неэффективно: если в модуле очень много объектов, то вам придется долго ждать, пока все импортируется. Это может вызвать конфликт имен переменных: когда вы используете *, то вы понятия не имеете, какие объекты вы импортируете и как они называются. Как же с этим бороться? Импортируйте либо какой-то конкретный объект, либо весь модуль целиком. # Using import * # Bad from math import * print(floor(2.4)) print(ceil(2.4)) print(pi) # Good import math from math import pi print(math.floor(2.4)) print(math.ceil(2.4)) print(pi) 2. Try/except: отсутствие указания исключения в блоке «except» Я очень долго пренебрегал этим. Сложно посчитать, сколько раз Pycharm давал мне понять (этими противными подчеркиваниями), что не нужно использовать «голое» исключение. Это идет в разрез с рекомендациями PEP8. # Try - except # Bad try: driver.find_element(...) except: print("Which exception?") # Good try: driver.find_element(...) except NoSuchElementException: print("It's giving NoSuchElementException") except ElementClickInterceptedException: print("It's giving ElementClickInterceptedException") Проблема «голых» исключений заключается в том, что оно будет перехватывать исключения SystemExit и KeyboardInterrupt, что затрудняет прерывание программы с помощью Control-C. В следующий раз, когда вы будете использовать try/except, укажите исключение в блоке except. 3. Не использовать Numpy для математических вычислений Очень часто мы забываем, что в Python есть множество пакетов, которые могут значительно облегчить нашу жизнь и сделать ее более продуктивной. Одним из таких пакетов является Numpy – пакет для математических вычислений. Numpy может помочь вам вычислять математические операции быстрее, чем циклы for. Допустим, что у нас есть массив random_scores, и мы хотим получить средний балл тех, кто не сдал экзамен (score>>dict_countries.keys() dict_keys(['USA', 'UK', 'Canada'])>>>dict_countries.values() dict_values([329.5, 67.2, 38]) Проблема тут заключается в том, что мы не всегда используем их должным образом. Например, мы хотим просмотреть словарь и получить ключи. Вы можете использовать метод .keys, но знаете ли вы, что ключи можно получить, просто перебирая словарь? В этом случае использование метода .keys будет излишним. # Not using .keys() properly # Bad for key in dict_countries.keys(): print(key) # Good for key in dict_countries: print(key) Кроме того, можно придумать некоторые хитрости для получения значений словаря, например, с помощью метода .items(). # Not using .items() # Bad for key in dict_countries: print(dict_countries[key]) # Good for key, value in dict_countries.items(): print(key) print(value) 7. Никогда не использовать генераторы (или использовать их всегда) Генератор предлагает более простой синтаксис при создании новой последовательности (списка, словаря и т.д.) на основе уже определенной последовательности. Допустим, мы хотим перевести все элементы в нашем списке countries в нижний регистр. И хотя вы могли бы это сделать просто с помощью цикла for, но также вы можете упростить работу при помощи генератора списка. # Bad countries = ['USA', 'UK', 'Canada'] lower_case = [] for country in countries: lower_case.append(country.lower()) # Good (but don't overuse it!) lower_case = [country.lower() for country in countries] Генераторы – это очень полезно, но не злоупотребляйте ими! Помните правило Дзен Python: «Простое лучше, чем сложное». 8. Использование range(len()) Одни из первых функций, которые мы изучили будучи новичками – это range и len, поэтому не удивительно, почему многие люди имеют дурную привычку писать range(len()) при переборе списков. Допустим у нас есть два списка: countries и populations. Если мы хотим пройтись по обоим спискам одновременно, то, вероятнее всего, вы воспользуетесь range(len()). # Using range(len()) countries = ['USA', 'UK', 'Canada'] populations = [329.5, 67.2, 38] # Bad for i in range(len(countries)): country = countries[i] population = populations[i] print(f'{country} has a population of {population} million people') И хотя это в принципе выполняет свою работу, вы все равно можете упростить задачу, воспользовавшись enumerate (или, что еще лучше, воспользовавшись функцией zip для сопряжения элементов из обоих списков). # OK for i, country in enumerate(countries): population = populations[i] print(f'{country} has a population of {population} million people') # Much Better for country, population in zip(countries, populations): print(f'{country} has a population of {population} million people') 9. Форматирование с помощью оператора + Вероятно, одна из первых вещей, которую мы изучаем в Python, - это то, как соединять строки с помощью оператора +. Это полезный, но не самый эффективный способ соединения строк в Python. Помимо этого, это не очень красиво – чем больше строк вам нужно соединить, тем больше операторов + вы будете использовать. Вместо этого вы можете воспользоваться f-строкой. # Formatting with + operator # Bad name = input("Introduce Name: ") print("Good Morning, " + name + "!") # Good name = input("Introduce Name: ") print(f'Good Morning, {name}') Преимуществом f-строк в том, что они полезны не только для конкатенации, но и для других целей. 10. Использование изменяемых значений в качестве значений по умолчанию Если вы включите изменяемое значение (например, список) в качестве параметра функции по умолчанию, то увидите нечто неожиданное. # Bad def my_function(i, my_list=[]): my_list.append(i) return my_list>>> my_function(1) [1] >>> my_function(2) [1, 2] >>> my_function(3) [1, 2, 3] В приведенном выше коде каждый раз, когда мы вызываем функцию my_function, список my_list сохраняет значения из предыдущих вызовов (а мы, скорее всего, хотим инициировать пустой список при каждом вызове функции). Чтобы избежать такой проблемы, мы должны установить этот параметр my_list равным None и добавить условие if как показано ниже. # Good def my_function(i, my_list=None): if my_list is None: my_list = [] my_list.append(i) return my_list>>> my_function(1) [1] >>> my_function(2) [2] >>> my_function(3) [3]
ВЕСЕННИЕ СКИДКИ
40%
50%
60%
До конца акции: 30 дней 24 : 59 : 59