Горячее
Лучшее
Свежее
Подписки
Сообщества
Блоги
Эксперты
Войти
Забыли пароль?
или продолжите с
Создать аккаунт
Регистрируясь, я даю согласие на обработку данных и условия почтовых рассылок.
или
Восстановление пароля
Восстановление пароля
Получить код в Telegram
Войти с Яндекс ID Войти через VK ID
ПромокодыРаботаКурсыРекламаИгрыПополнение Steam
Пикабу Игры +1000 бесплатных онлайн игр Ищите предметы среди очаровательных жителей и уютных домиков!

Потеряшки

Головоломки, Казуальные, Детские

Играть

Топ прошлой недели

  • AlexKud AlexKud 35 постов
  • Animalrescueed Animalrescueed 52 поста
  • Webstrannik1 Webstrannik1 50 постов
Посмотреть весь топ

Лучшие посты недели

Рассылка Пикабу: отправляем самые рейтинговые материалы за 7 дней 🔥

Нажимая «Подписаться», я даю согласие на обработку данных и условия почтовых рассылок.

Спасибо, что подписались!
Пожалуйста, проверьте почту 😊

Помощь Кодекс Пикабу Команда Пикабу Моб. приложение
Правила соцсети О рекомендациях О компании
Промокоды Биг Гик Промокоды Lamoda Промокоды МВидео Промокоды Яндекс Маркет Промокоды Пятерочка Промокоды Aroma Butik Промокоды Яндекс Путешествия Постила Футбол сегодня
0 просмотренных постов скрыто
3
News.Man
News.Man
1 год назад
Новости
Серия Новости...

Анализ новостей на основе RSS парсинга...⁠⁠

21.09.2024 г. выполнил RSS-парсинг популярных новостных лент в России.
Наблюдаем...

1/2
1/2
Показать полностью 4
[моё] Новости Политика Парсинг Rss Наблюдение
2
News.Man
News.Man
1 год назад
Серия Новости...

Анализ новостей на основе RSS парсинга...⁠⁠

16.09.2024 г. выполнил RSS-парсинг популярных новостных лент в России.
Наблюдаем, стрельба в Трампа ...

Анализ новостей на основе RSS парсинга...
Анализ новостей на основе RSS парсинга...
Анализ новостей на основе RSS парсинга...
Показать полностью 2
[моё] Новости Политика Rss Парсинг Стрельба Наблюдение Покушение на Дональда Трампа
2
1
News.Man
News.Man
1 год назад
Новости
Серия Новости...

Анализ новостей на основе RSS парсинга...⁠⁠

13.09.2024 г. выполнил RSS-парсинг популярных новостных лент в России.
Наблюдаем следующее...

Показать полностью 2
[моё] Новости Парсинг Rss Наблюдение Политика
4
5
Mathos
Mathos
1 год назад
Лига образования
Серия Что такое язык программирования?

Автомат с магазинной памятью (стог-памятью) и КС-языки⁠⁠

Предыдущая статья: Ещё раз об однозначности грамматики, о дереве вывода, а так же о главном признаке КС-грамматики в vk.com

Статья для повторения:Задача разбора, для чего она нужна? Или что такое parsing? в vk.com

Вспомним о характере разбора цепочки. Стоит ли кость на своём месте при её постановке? Если постоянно да, то наш алгоритм предопределённый, в противном случае нам следует делать возвраты и пробовать подставить иную кость. Возможно узнать принадлежность цепочки заданной длинны, хотя бы из тех соображений, что можно построить все предложения (сентенции) грамматики совпадающие по длине с этой цепочкой.

Такой алгоритм работает по принципу полного перебора, для организации перебора используют стэк (англ. stack - рус. стог) - структуру данных по принципу «последним вошёл, первым ушёл». Полный перебор крайне неэффективен и на практике, как правило, не применяется.

Но! Есть широкий подкласс КС-грамматик, для которых накладывается ряд ограничений, что позволяет нам обходится без полного перебора и использовать эффективные алгоритмы распознавания, которые мы будем рассматривать в следующих уроках.

Если для автоматных грамматик в качестве распознавателя используется конечный автомат, то для КС-грамматик используется автомат с магазинной памятью.

Здесь нужно остановится на понятии «магазинная память», которое использовано крайне не удачно. По идее у вас должна быть выстроена ассоциация с магазином АК-47 (или другого оружия), где пуля заряженная последней, выстреливается первой. Но дело в том, что само слово магазин обозначает просто склад и он не обязательно должен выстроен по вышеуказанному принципу, лично я вовсе подумал о продуктовом. Поэтому используем термин стог-память или просто стог, так как если из стога вытащить что-то не сверху он превратится в кучу.

Перед тем как дать формальное описание, мы сперва построим простой стог-автомат. Отобразим общее представление об автомате:

Общее представление стог-автомата.

Общее представление стог-автомата.

Мы видим, что автомат обращается за чтением цепочки и за чтением из стог-памяти, в стог вложен отдельный символом п обозначающий под или дно. Внутреннее устройство автомата можно представить в виде направленного графа как и конечный автомат (далее КА), только для перехода из состояния в новое состояние направленное ребро помечается по мимо принимающего символа, верхней цепочкой символов стога, которая будет заменена на новую цепочку символов в обратном порядке по очереди («первым вошёл, первым ушёл»), также входит в метку:

Переходы и стог.

Переходы и стог.

Выше приведены примеры переходов с отображением операций над стогом. Первых три примера прозрачны, считали символ и поменяли цепочки. В 4 и 5 используется пустая цепочка ε и здесь нужно пояснение. Между любыми двумя символами всегда лежит пустая цепочка , что является причинной почему КА с ε-переходами недетерминирован. Проверьте, зайдите https://regex101.com/, введите любой текст и регуляр (), вы получите кучу совпадений. В стог-автомате ε используется в целях внутренней работы без считывания символа принимаемой цепочки, выталкивания и помещения символов из/в стог(-а), ведь пустота означает, что нечего брать или класть.

Изобразим граф стог-автомата принимающего язык:
Я = {аⁿбⁿ | n >= 0}, где в цепочках символы а и б повторяются в равном количестве, примеры { аб, аабб, аааббб, …}.

Стог-автомат.

Стог-автомат.

Так же как в КА конечное состояние автомата обозначаем узлом с двойным кружком, а начальное просто стрелкой. Для того, чтобы не изображать лишних рёбер правила переходов записывают друг над другом. Формально данный стог-автомат записывается так:
М = ({С0, С1, С2},{а,б}, {А. п}, δ, С0, п, {C2})

Теперь мы готовы к общему формальному описанию, приступим:
M = {Q, Σ, Γ, δ, q0, Ζ, F}
F
- множество конечных (принимающих) состояний автомата, наше {C2}.
Ζ - символ конца стога, наш п - символ под.
q0 - начальное состояние автомата, наше С0.
δ
- функция переходов автомата δ: ( Q × (Σ ∪ {ε}) × Γ) → (Q × Γ*).
Γ
- алфавит стога, наше {А, п}.
Σ
- входной алфавит, наше {а,б}.
Q
- множество состояний автомата, наше {С0, С1, С2}.

Остановимся на функции переходов δ: ( Q × (Σ ∪ {ε}) × Γ) → (Q × Γ*), она нам говорит о том, что переход зависит от текущего состояния Q, от принимаемого символа Σ с возможностью его оставить в покое ε и от верха стога Γ, в замен мы получаем новое состояние Q и новое содержимое стога Γ*. Γ* - звездочка обозначает, что наше множество разрастаемое, то есть стог заполняется символами.

Для дальнейшего объяснения предоставляю работу автомата того же языка, но построенный по его грамматике:
G: S → aSб | ε

1/16

Поехали!! Листай!

На рисунке отображено, ещё не рассмотренное нами понятие конфигурации. Конфигурация представляет из себя набор (q, ω, γ), где q - текущее состояние, ω - цепочка ещё не рассмотренных символов, γ - содержимое стога. Символом ⊢ обозначают такт автомата, то есть переход из одной конфигурации в другую. Обозначим символом ⊢* последовательность ноль и более тактов, теперь мы можем описать условие принятия цепочки или допускаемый язык автомата:
L(M) = {ω ∈ Σ* и (q0, ω, Z) ⊢* (q, ε, Z), где q ∈ F} - то, есть когда наш стог опустошился до пода, завершился в конечном состоянии, а так же вся входная цепочка прочитана полностью. Лично у меня остался вопрос, почему везде записывают принятие по пустому стогу так:
L(M) = {ω ∈ Σ* и (q0, ω, Z) ⊢* (q, ε, ε,) где q ∈ F} - ведь никто не извлекает Z?

Так же существует соглашение условия принятия:
L(M) = {ω ∈ Σ* и (q0, ω, Z) ⊢* (q, ε, γ), где q ∈ F, γ ∈ Γ*} - то, есть когда наша цепочка полностью прочитана и мы достигли конечного состояния, а в стоге остались символы. Если мы уберём состояние С3, а С2 сделаем конечным, то становится понятно почему, такое соглашение есть.

Так же автомат можно описать таблицей, вот наш случай:

Таблица автомата.

Таблица автомата.

В заключении следует сказать:
Для произвольной КС-грамматики можно построить недетерминированный автомат с магазинной памятью (стог-памятью), принимающий язык, порождаемый этой грамматикой.

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

Постскриптум: Очень сильно надеюсь, что изложил тему доступным языком. Будьте мне здоровы, подписывайтесь.

UPD:

Читать далее...

Показать полностью 20
Программирование Урок Автомат Парсинг ВКонтакте (ссылка) Длиннопост
1
News.Man
News.Man
1 год назад
Серия Новости...

Анализ новостей на основе RSS парсинга...⁠⁠

23.07.2024 г. выполнил RSS парсинг популярных новостных лент в России.
Наблюдаем следующее...

Анализ новостей на основе RSS парсинга...
Анализ новостей на основе RSS парсинга...
Анализ новостей на основе RSS парсинга...
Анализ новостей на основе RSS парсинга...
Показать полностью 4
[моё] Новости Политика Парсинг Rss Наблюдение Python
5
3
News.Man
News.Man
1 год назад

Анализ новостей на основе RSS парсинга...⁠⁠

16.07.2024 г. вновь выполнил RSS парсинг популярных новостных лент в России.
Наблюдаем следующее...

Показать полностью 3
Новости Политика Парсинг Наблюдение
0
itforprof
itforprof
1 год назад

Интернет без людей⁠⁠

Согласно отчётам последних лет, боты генерируют от 40 до 50% трафика в мировой сети. Но что гораздо хуже, их трафик становится всё более вредоносным. Доля вредных ботов по данным Akamai Technologies, уже выросла до 65%. Тогда как в 2022 году вредоносными были только 30%.

Они становятся серьёзной проблемой для электронной коммерции. Боты воруют конфиденциальные данные, манипулируют ценами, шпионят, генерируют фейковые отзывы и аккаунты. Развитие ИИ только подстёгивает и осложняет эти тенденции. Есть мнение, что уже в самое ближайшее время люди будут генерировать меньше трафика, чем автоматизированные боты.

Интернет без людей
IT Информационная безопасность Хакеры Бот Искусственный интеллект Спам Парсинг
5
7
DanilAnalyst
DanilAnalyst
1 год назад
Логово Программиста

Когда лень — автоматизируй. Запилил мини-RPA для постинга статей в Тильде⁠⁠

Когда лень — автоматизируй. Запилил мини-RPA для постинга статей в Тильде

Не считаю себя профессиональным программистом, а так, любитель 😅 Но и с текущим уровнем предпочитаю облегчать себе жизнь, когда есть возможность.

Надо было разместить больше сотни статей на сайте. В итоге написал с нуля скрипт, который делает все за меня. 100 статей за примерно 40-45 минут 🔥

Наверное, уже есть готовые решения, не искал даже. Было приятно сделать самому.

  • Python 3+

  • Botasaurus (рекомендую, кто как и я любит парсинг)

Скажу честно, просто захотелось чуть-чуть похвастать. Не ругайте, если что)))

Если кому надо, могу за "+" к посту скинуть код, адаптируете если надо под себя 😎

Показать полностью
[моё] Python Парсинг Tilda Халява Гифка
4
Посты не найдены
О нас
О Пикабу Контакты Реклама Сообщить об ошибке Сообщить о нарушении законодательства Отзывы и предложения Новости Пикабу Мобильное приложение RSS
Информация
Помощь Кодекс Пикабу Команда Пикабу Конфиденциальность Правила соцсети О рекомендациях О компании
Наши проекты
Блоги Работа Промокоды Игры Курсы
Партнёры
Промокоды Биг Гик Промокоды Lamoda Промокоды Мвидео Промокоды Яндекс Маркет Промокоды Пятерочка Промокоды Aroma Butik Промокоды Яндекс Путешествия Постила Футбол сегодня
На информационном ресурсе Pikabu.ru применяются рекомендательные технологии