Доклад Вячеслава Володько для Съесть собаку #16: iOS 21/03/2019
Тезисы:
- Классификация текстов с помощью встроенных в iOS SDK средств.
- Ограничения NLLanguageRecognizer и MLTextClassifier.
- Построение собственного классификатора текстов.
- Техники, которые позволяют встроить классификатор в AppExtension.
- Оценка эффективности классификатора.
This document discusses the CSS preprocessor LESS and its features. LESS allows for nested rules, mixins, variables, imports and operators to make CSS more maintainable. It can be run from Node.js or a browser and compiles LESS files into normal CSS. Key features include mixins for common CSS patterns, variables for consistency, nesting for organization and imports to modularize code. LESS aims to make CSS leaner, meaner and more dynamic through its preprocessing abilities.
Subject: An overview of {less} and a crash course in usage, presented at the Drupal Design Camp Berlin 2011.
Note: Licensed All Rights Reserved due to the images taken by others. All text is CC Attribution Share-alike.
The document discusses XML and web services with PHP5 and PEAR. It provides an introduction and overview of XML including related technologies like DTD, XML Schema, Relax NG, XPath, and XSLT. It also covers using XML in PHP5 with SAX, DOM, SimpleXML, XPath, and XSLT. Finally, it discusses web services in PHP5 and PEAR.
This document contains the CSS stylesheet code for a blog template. It includes CSS resets, styles for page elements like headers, navigation menus, footers and widgets. It also includes styles for features like image sliders, newsletters and social media icons. The CSS is well organized into commented sections for each section of the site.
The document provides an overview of a beta program for testing software across different browsers, platforms and environments using cloud-based infrastructure. It outlines how developers can integrate automated testing into their workflow by uploading test scripts and jobs to the cloud which will run tests concurrently on many machines and platforms. Details are given on accessing results and the support that will be provided to beta users.
This document summarizes a presentation about the W3C XML Schema Patterns for Databinding Working Group. The working group aims to define patterns for how XML schemas can be more easily and reliably bound to data models. This will be done by specifying basic and advanced patterns, examples, and a detector to identify patterns in schemas. The goals are to improve the interoperability of databinding tools and help developers choose schemas that are more easily supported.
Service Oriented Integration With ServiceMixBruce Snyder
This document summarizes a presentation about Service Oriented Integration with Apache ServiceMix. The presentation introduces Enterprise Service Buses and their purpose in facilitating integration. It then discusses key aspects of Apache ServiceMix, an open source ESB, including its support for various protocols and engines. The presentation provides examples of how ServiceMix can be used to configure routing and mediation using tools like Apache Camel and content-based routing. It concludes by discussing newer developments in ServiceMix 4 that utilize OSGi and build upon integration patterns.
This document discusses the CSS preprocessor LESS and its features. LESS allows for nested rules, mixins, variables, imports and operators to make CSS more maintainable. It can be run from Node.js or a browser and compiles LESS files into normal CSS. Key features include mixins for common CSS patterns, variables for consistency, nesting for organization and imports to modularize code. LESS aims to make CSS leaner, meaner and more dynamic through its preprocessing abilities.
Subject: An overview of {less} and a crash course in usage, presented at the Drupal Design Camp Berlin 2011.
Note: Licensed All Rights Reserved due to the images taken by others. All text is CC Attribution Share-alike.
The document discusses XML and web services with PHP5 and PEAR. It provides an introduction and overview of XML including related technologies like DTD, XML Schema, Relax NG, XPath, and XSLT. It also covers using XML in PHP5 with SAX, DOM, SimpleXML, XPath, and XSLT. Finally, it discusses web services in PHP5 and PEAR.
This document contains the CSS stylesheet code for a blog template. It includes CSS resets, styles for page elements like headers, navigation menus, footers and widgets. It also includes styles for features like image sliders, newsletters and social media icons. The CSS is well organized into commented sections for each section of the site.
The document provides an overview of a beta program for testing software across different browsers, platforms and environments using cloud-based infrastructure. It outlines how developers can integrate automated testing into their workflow by uploading test scripts and jobs to the cloud which will run tests concurrently on many machines and platforms. Details are given on accessing results and the support that will be provided to beta users.
This document summarizes a presentation about the W3C XML Schema Patterns for Databinding Working Group. The working group aims to define patterns for how XML schemas can be more easily and reliably bound to data models. This will be done by specifying basic and advanced patterns, examples, and a detector to identify patterns in schemas. The goals are to improve the interoperability of databinding tools and help developers choose schemas that are more easily supported.
Service Oriented Integration With ServiceMixBruce Snyder
This document summarizes a presentation about Service Oriented Integration with Apache ServiceMix. The presentation introduces Enterprise Service Buses and their purpose in facilitating integration. It then discusses key aspects of Apache ServiceMix, an open source ESB, including its support for various protocols and engines. The presentation provides examples of how ServiceMix can be used to configure routing and mediation using tools like Apache Camel and content-based routing. It concludes by discussing newer developments in ServiceMix 4 that utilize OSGi and build upon integration patterns.
This document discusses biological databases and PHP. It begins with an overview of biological databases and examples using BIOSQL to load genetic data from GenBank into a MySQL database. It then provides examples of building a basic 3-tier model with Apache, PHP, and a MySQL backend database. The document also includes a brief introduction to PHP, covering its history, why it is commonly used, and basic syntax like conditional statements.
Sql exception and class notfoundexceptionRohit Singh
The document discusses JDBC exception handling in Java. It provides details on the SQLException class which is commonly thrown for JDBC errors. It describes methods like getErrorCode(), getMessage(), getSQLState() available on the SQLException object to retrieve additional error information. It then provides an example using try, catch, finally blocks to handle exceptions during JDBC operations like connecting to a database and executing queries. Specific exceptions like ClassNotFoundException are also discussed.
1) JavaScript is a scripting language that adds interactivity to HTML pages and allows dynamic updating of content. It is embedded directly in HTML and is run in web browsers.
2) JavaScript can put dynamic text on HTML pages, react to user events like clicks, modify HTML elements, validate form data, detect the user's browser, and create cookies.
3) JavaScript code is typically included in <script> tags in HTML pages and can be placed in the <head> or <body> sections or linked externally. Common statements include comments, variables, operators, conditional statements, and loops. Functions are used to encapsulate repeatable code.
Rails aims to be secure by default but developers still need to be careful. The document outlines several common security issues like mass assignment vulnerabilities, XSS risks, and CSRF concerns. It provides examples of each issue and recommends solutions like using strong parameters, output encoding, and adding CSRF tokens. While Rails improves security with each release, the document emphasizes the importance of following security best practices to protect applications.
This document discusses various technologies related to Ajax and web services, including:
1. Ajax started as an acronym for Asynchronous JavaScript and XML.
2. It describes common web service protocols like REST and SOAP. REST uses HTTP methods to perform CRUD operations on resources while SOAP uses an XML envelope.
3. It provides an example of using Ajax with a simple Perl script to retrieve the answer to "What is the meaning of life?" stored on a server and display it in the browser.
Victor Hugo Germano apresenta sua visão sobre profissionalismo e os desafios na adoção de metodologias ágies.
Através de uma linguagem lúdica, conceitos relacionados a Qualidade, Teste de Software e comprometimento.
Quantitative Methods for Lawyers - Class #14 - R Boot Camp - Part 1 - Profess...Daniel Katz
This document provides an introduction to loading datasets in R. It demonstrates how to load a CSV dataset from a URL and assign it to an object name. It shows how to remove rows with missing values and reset the row numbers. The document then covers some basic commands like min, max, mean, and standard deviation. Finally, it demonstrates plotting histograms and box plots of data.
The document discusses common coding errors in ASP scripts that can lead to security vulnerabilities. It covers three main categories: input validation issues, problems with managing state predictably and securely, and source code maintenance issues. Specific problems discussed include insufficient validation of user-supplied input used in SQL queries, which can enable SQL injection attacks, poor randomness or predictability of session IDs, hardcoded credentials, and debugging code left enabled. The document provides examples of each issue and recommendations for more secure coding practices.
This document provides an overview of Apache Solr, an open source search platform based on Lucene. It discusses how Solr works, including indexing documents, defining schemas, querying the index via HTTP requests, and returning results in XML or JSON format. The document also provides examples of queries, updating the index, and customizing the analyzer for Thai language support.
This document discusses SQL injection vulnerabilities and techniques for exploiting them. It covers:
1) What SQL injection is and how it works by exploiting vulnerabilities in web applications.
2) A methodology for testing for and exploiting SQL injection vulnerabilities, including information gathering, exploiting boolean logic, extracting data, and escalating privileges.
3) Specific techniques for each step like determining the database type, exploring the database structure, grabbing passwords, and creating new database accounts.
The document discusses SQL injection vulnerabilities. It begins by explaining what SQL is and how it is used to interact with databases. It then discusses how SQL injection works by exploiting vulnerabilities in web applications that construct SQL queries using external input. The document provides an overview of methodology for testing for and exploiting SQL injection vulnerabilities, including input validation, information gathering, exploiting true conditions, interacting with the operating system, using the command prompt, and escalating privileges.
This document discusses different approaches to connecting PHP with databases. It begins with an introduction to using PHP with databases. It then describes three major strategies: the native interface, where PHP connects directly to the database server; the ODBC interface, which uses a driver; and the ORM interface, which maps database elements to objects. It provides examples of code for each approach and discusses how frameworks often implement ORM.
Testing and validating distributed systems with Apache Spark and Apache Beam ...Holden Karau
As distributed data parallel systems, like Spark, are used for more mission-critical tasks, it is important to have effective tools for testing and validation. This talk explores the general considerations and challenges of testing systems like Spark through spark-testing-base and other related libraries.
With over 40% of folks automatically deploying the results of their Spark jobs to production, testing is especially important. Many of the tools for working with big data systems (like notebooks) are great for exploratory work, and can give a false sense of security (as well as additional excuses not to test). This talk explores why testing these systems are hard, special considerations for simulating "bad" partioning, figuring out when your stream tests are stopped, and solutions to these challenges.
Slides from a presentation that David Lopez (@lopezator) and me made for the students of the University of the Basque Country (UPV/EHU) where we talk about current technologies and methodologies used in professional web development.
CSS3, jQuery, Composer, MVC, Clean Code, Git, etc. are different items we talked about.
Some examples shown in the presentation available at:
http://ojoven.es/labs/ehu2014/
PHP classes in mumbai, Introduction to PHP/MYSQL..
best PHP/MYSQL classes in mumbai with job assistance.
our features are:
expert guidance by IT industry professionals
lowest fees of 5000
practical exposure to handle projects
well equiped lab
after course resume writing guidance
For more Visit: http://vibranttechnologies.co.in/php-classes-in-mumbai.html or http://phptraining.vibranttechnologies.co.in
Luis Majano introduces CBT, a templating engine for ColdBox applications based on Twig. CBT allows separating presentation logic from application code through reusable templates. Templates have access to data through a rendering context and support common constructs like variables, tags, filters, inheritance and more. CBT aims to empower non-developers to edit templates while restricting programming capabilities and automatically preventing XSS attacks.
The document describes an advanced Perl techniques training course that covers new features in Perl 5.10, dates and times using the DateTime module, testing and benchmarking code, and accessing databases. The one-day course will move quickly and cover dates/times, testing, databases, profiling, object-oriented programming with Moose, templates, and MVC frameworks. Resources from the training will be available online.
Don't RTFM, WTFM - Open Source Documentation - German Perl Workshop 2010singingfish
The document discusses improving documentation for Perl modules like Moose and Catalyst by focusing on providing working code examples and minimizing extraneous information. It advocates for an incremental, "git-based" approach to introducing concepts one by one and advertising examples. Key points made include assuming readers have minimal knowledge, reducing cognitive load, and crowdsourcing documentation improvements through a standard Pod format. Contributors are tasked with improving specific documentation areas by these principles.
macOS app development for iOS devs: expand your horizonsEatDog
Доклад Юлии Ващенко для Съесть собаку #16: iOS, 21/03/2019
Тезисы:
- Преимущества разработки под macOS для iOS программистов.
- UIKit vs AppKit.
- Подготовка к релизу Marzipan на наших платформах.
- Взгляд на macOS & iOS с точки зрения их истории.
- Технологии, специфичные для десктопа.
- Демо: Современное межпроцессорное общение.
- Бонус для iOS разработчиков, посетивших доклад.
Доклад Антона Минашкина для Съесть собаку #15, 27/11/18
Тезисы:
- Почему DI – такой популярный design pattern в Android;
- Что особенного в DI для Kotlin;
- Практическая польза и опции DI.
More Related Content
Similar to Классифицируем текст в iOS без CoreML: как и зачем?
This document discusses biological databases and PHP. It begins with an overview of biological databases and examples using BIOSQL to load genetic data from GenBank into a MySQL database. It then provides examples of building a basic 3-tier model with Apache, PHP, and a MySQL backend database. The document also includes a brief introduction to PHP, covering its history, why it is commonly used, and basic syntax like conditional statements.
Sql exception and class notfoundexceptionRohit Singh
The document discusses JDBC exception handling in Java. It provides details on the SQLException class which is commonly thrown for JDBC errors. It describes methods like getErrorCode(), getMessage(), getSQLState() available on the SQLException object to retrieve additional error information. It then provides an example using try, catch, finally blocks to handle exceptions during JDBC operations like connecting to a database and executing queries. Specific exceptions like ClassNotFoundException are also discussed.
1) JavaScript is a scripting language that adds interactivity to HTML pages and allows dynamic updating of content. It is embedded directly in HTML and is run in web browsers.
2) JavaScript can put dynamic text on HTML pages, react to user events like clicks, modify HTML elements, validate form data, detect the user's browser, and create cookies.
3) JavaScript code is typically included in <script> tags in HTML pages and can be placed in the <head> or <body> sections or linked externally. Common statements include comments, variables, operators, conditional statements, and loops. Functions are used to encapsulate repeatable code.
Rails aims to be secure by default but developers still need to be careful. The document outlines several common security issues like mass assignment vulnerabilities, XSS risks, and CSRF concerns. It provides examples of each issue and recommends solutions like using strong parameters, output encoding, and adding CSRF tokens. While Rails improves security with each release, the document emphasizes the importance of following security best practices to protect applications.
This document discusses various technologies related to Ajax and web services, including:
1. Ajax started as an acronym for Asynchronous JavaScript and XML.
2. It describes common web service protocols like REST and SOAP. REST uses HTTP methods to perform CRUD operations on resources while SOAP uses an XML envelope.
3. It provides an example of using Ajax with a simple Perl script to retrieve the answer to "What is the meaning of life?" stored on a server and display it in the browser.
Victor Hugo Germano apresenta sua visão sobre profissionalismo e os desafios na adoção de metodologias ágies.
Através de uma linguagem lúdica, conceitos relacionados a Qualidade, Teste de Software e comprometimento.
Quantitative Methods for Lawyers - Class #14 - R Boot Camp - Part 1 - Profess...Daniel Katz
This document provides an introduction to loading datasets in R. It demonstrates how to load a CSV dataset from a URL and assign it to an object name. It shows how to remove rows with missing values and reset the row numbers. The document then covers some basic commands like min, max, mean, and standard deviation. Finally, it demonstrates plotting histograms and box plots of data.
The document discusses common coding errors in ASP scripts that can lead to security vulnerabilities. It covers three main categories: input validation issues, problems with managing state predictably and securely, and source code maintenance issues. Specific problems discussed include insufficient validation of user-supplied input used in SQL queries, which can enable SQL injection attacks, poor randomness or predictability of session IDs, hardcoded credentials, and debugging code left enabled. The document provides examples of each issue and recommendations for more secure coding practices.
This document provides an overview of Apache Solr, an open source search platform based on Lucene. It discusses how Solr works, including indexing documents, defining schemas, querying the index via HTTP requests, and returning results in XML or JSON format. The document also provides examples of queries, updating the index, and customizing the analyzer for Thai language support.
This document discusses SQL injection vulnerabilities and techniques for exploiting them. It covers:
1) What SQL injection is and how it works by exploiting vulnerabilities in web applications.
2) A methodology for testing for and exploiting SQL injection vulnerabilities, including information gathering, exploiting boolean logic, extracting data, and escalating privileges.
3) Specific techniques for each step like determining the database type, exploring the database structure, grabbing passwords, and creating new database accounts.
The document discusses SQL injection vulnerabilities. It begins by explaining what SQL is and how it is used to interact with databases. It then discusses how SQL injection works by exploiting vulnerabilities in web applications that construct SQL queries using external input. The document provides an overview of methodology for testing for and exploiting SQL injection vulnerabilities, including input validation, information gathering, exploiting true conditions, interacting with the operating system, using the command prompt, and escalating privileges.
This document discusses different approaches to connecting PHP with databases. It begins with an introduction to using PHP with databases. It then describes three major strategies: the native interface, where PHP connects directly to the database server; the ODBC interface, which uses a driver; and the ORM interface, which maps database elements to objects. It provides examples of code for each approach and discusses how frameworks often implement ORM.
Testing and validating distributed systems with Apache Spark and Apache Beam ...Holden Karau
As distributed data parallel systems, like Spark, are used for more mission-critical tasks, it is important to have effective tools for testing and validation. This talk explores the general considerations and challenges of testing systems like Spark through spark-testing-base and other related libraries.
With over 40% of folks automatically deploying the results of their Spark jobs to production, testing is especially important. Many of the tools for working with big data systems (like notebooks) are great for exploratory work, and can give a false sense of security (as well as additional excuses not to test). This talk explores why testing these systems are hard, special considerations for simulating "bad" partioning, figuring out when your stream tests are stopped, and solutions to these challenges.
Slides from a presentation that David Lopez (@lopezator) and me made for the students of the University of the Basque Country (UPV/EHU) where we talk about current technologies and methodologies used in professional web development.
CSS3, jQuery, Composer, MVC, Clean Code, Git, etc. are different items we talked about.
Some examples shown in the presentation available at:
http://ojoven.es/labs/ehu2014/
PHP classes in mumbai, Introduction to PHP/MYSQL..
best PHP/MYSQL classes in mumbai with job assistance.
our features are:
expert guidance by IT industry professionals
lowest fees of 5000
practical exposure to handle projects
well equiped lab
after course resume writing guidance
For more Visit: http://vibranttechnologies.co.in/php-classes-in-mumbai.html or http://phptraining.vibranttechnologies.co.in
Luis Majano introduces CBT, a templating engine for ColdBox applications based on Twig. CBT allows separating presentation logic from application code through reusable templates. Templates have access to data through a rendering context and support common constructs like variables, tags, filters, inheritance and more. CBT aims to empower non-developers to edit templates while restricting programming capabilities and automatically preventing XSS attacks.
The document describes an advanced Perl techniques training course that covers new features in Perl 5.10, dates and times using the DateTime module, testing and benchmarking code, and accessing databases. The one-day course will move quickly and cover dates/times, testing, databases, profiling, object-oriented programming with Moose, templates, and MVC frameworks. Resources from the training will be available online.
Don't RTFM, WTFM - Open Source Documentation - German Perl Workshop 2010singingfish
The document discusses improving documentation for Perl modules like Moose and Catalyst by focusing on providing working code examples and minimizing extraneous information. It advocates for an incremental, "git-based" approach to introducing concepts one by one and advertising examples. Key points made include assuming readers have minimal knowledge, reducing cognitive load, and crowdsourcing documentation improvements through a standard Pod format. Contributors are tasked with improving specific documentation areas by these principles.
Similar to Классифицируем текст в iOS без CoreML: как и зачем? (20)
macOS app development for iOS devs: expand your horizonsEatDog
Доклад Юлии Ващенко для Съесть собаку #16: iOS, 21/03/2019
Тезисы:
- Преимущества разработки под macOS для iOS программистов.
- UIKit vs AppKit.
- Подготовка к релизу Marzipan на наших платформах.
- Взгляд на macOS & iOS с точки зрения их истории.
- Технологии, специфичные для десктопа.
- Демо: Современное межпроцессорное общение.
- Бонус для iOS разработчиков, посетивших доклад.
Доклад Антона Минашкина для Съесть собаку #15, 27/11/18
Тезисы:
- Почему DI – такой популярный design pattern в Android;
- Что особенного в DI для Kotlin;
- Практическая польза и опции DI.
Быстрый в имплементации и в работе мониторинг с использованием ELKEatDog
Доклад Ивана Мельничука на "Съесть собаку"#14: PHP, 20/09/2018
Тезисы:
Как начать кастомно логировать приложение при минимальных усилиях;
Как выглядит готовый стек логирования ELK;
Немного о наболевшем или как доказать заказчику в чем проблема сайта;
Google Analytics семплирует данные, а вы можете узнать больше.
Доклад Евгения Кузьмина для "Съесть собаку" #14: PHP, 20/092018
Тезисы:
Построение процесса continuous integration/delivery на примере Laravel-приложения;
Структура организации авто-тестирования;
Интеграция запуска тестов и деплоя на CI сервере Jenkins;
Применение Docker в связке с AWS ElasticBeanstalk для blue-green деплоя.
Как мы экспериментируем в больших микросервисных системахEatDog
Доклад Александра Баранецкого для Съесть собаку #13, 14/06/2018.
Тезисы:
- Как сделать гибкой разработку на микросервисной системе, в которой более 100 узлов;
- Как минимизировать ошибки и их цену;
- Как мягко обеспечить миграции версий и эволюцию всей системы в целом.
Доклад Александра Котыни на Съесть собаку #13, 14/06/2018.
Тезисы:
- Зачем использовать Redis;
- Эволюция внедрения Redis в крупный проект и подводные камни при его использовании;
- Варианты достижения высокой доступности и отказоустойчивости;
- Наш сценарий.
Доклад Антона Немцева для Съесть собаку #12: JavaScript, 15/03/2018.
Тезисы:
- Зачем, ну зачем нам это?!
- Что именно мы ограничиваем и как выбираем кодстайл;
- Правила и ограничения при написании скриптов, стилей и рабочего процесса;
- Напишем свой собственный npm-пакет с целью особо изощренного насилия;
- Правила и ограничения для рабочего процесса на стороне систем контроля версий;
- Что дальше?
Refactor to Reactive With Spring 5 and Project ReactorEatDog
The document discusses refactoring a Spring application to use reactive approaches. It begins with an overview of reactivity and its benefits compared to blocking implementations. The refactoring process involves 3 main steps: 1) Refactoring the design to use a push model with streaming APIs instead of pulling data; 2) Choosing reactive tooling like Project Reactor, Spring WebFlux and non-blocking drivers; 3) Refactoring the code to use asynchronous and non-blocking implementations, updating contracts to use reactive types like Mono and Flux, and handling errors through retry operators. Examples show converting services to return reactive streams and consume external APIs asynchronously.
1) APIs and GraphQL are discussed as alternatives to traditional database-centric approaches for building applications.
2) GraphQL provides an alternative query language and runtime that allows clients to efficiently fetch nested data from multiple sources in a single request.
3) The document discusses some advantages of GraphQL like efficient data fetching, easier development, and analytics capabilities. It also notes some challenges around caching, security, and error handling.
Доклад Александра Макарова для Съесть собаку #10: PHP, 12/10/2017.
Тезисы:
- Что такое архитектура сайта и зачем она нужна
- Виноват ли фреймворк в плохой архитектуре
- Где выход из сложности и регрессий
- Что делать со сложным доменом
- Выводы.
Доклад Ивана Мосева для Съесть собаку #10: PHP, 12/10/2017.
Тезисы:
- Места обитания: где разворачивать свои микросервисы
- Взаимоотношения в стае: как микросервисы общаются между собой
- Микросервисы и человек: авторизация пользователей и роутинг
- Содержание в неволе: как разрабатывать микросервисы локально
- Выводы.
Доклад Антона Молдована, Software Architect, для Съесть собаку #9, 15/06/2017.
Тезисы:
- Большая роль TDD и DI
- Проблемы с TDD и DI
- Суть альтернативного подхода Dependency Rejection
- Разрушительная перспектива с TDD without Mocks
- Выводы.
Доклад Сергея Калинца, Software Architect, для Съесть собаку #9, 15/06/2017.
Тезисы:
- Проблемы стандартного процесса разработки
- Понятие CI pipeline
- Решения для автоматизации сборки, тестирования и развертывания
- Инструменты для эффективной разработки
- Использование тестовых двойников в .NET
- Концепция "живого кода"
- Демонстрация применения современных библиотек и инструментов для эффективного написания кода.
Доклад Дмитрия Науменко для "Съесть собаку #8", PHP, 20/04/17.
Тезисы:
- Понятие DDD и его цели
- Концепции и паттерны применяемые в DDD
- Использование подходов DDD в разработке приложений
- Преимущества и недостатки
- Выводы.
Доклад Максима Гопея для "Съесть собаку #8", PHP, 20/04/17
Тезисы:
- Моделирование угрозы
- Виды атак и уязвимостей в коде
- Как проверять безопасность систем
- Выводы.
Нельзя просто так взять и сделать версионирование APIEatDog
"Нельзя просто так взять и сделать версионирование API"
Почему важно иметь версионирование и какие проблемы оно решает
Какие есть подходы к версионированию API
Какие инструменты и решения предоставляют популярные веб-фреймворки
Почему версионирование - это не просто и как решить возникшие трудности
Выводы
API в SAAS, с облаком и без: ресурсы, SLA, балансировка, расширяемостьEatDog
"Особенности SaaS под углом платного доступа к API и ресурсам"
Проблемный домен — введение в управление ресурсами SaaS решения
SLA и требования к отказоустойчивости
Алгоритмы балансировки запросов API
Расширяемость решения в облачной инфраструктуре
Вычислительная сложность задач и управлении запросами пользователей
Пути решения и выбор инструментов, расширение их возможностей
Выводы
GraphSummit Singapore | The Art of the Possible with Graph - Q2 2024Neo4j
Neha Bajwa, Vice President of Product Marketing, Neo4j
Join us as we explore breakthrough innovations enabled by interconnected data and AI. Discover firsthand how organizations use relationships in data to uncover contextual insights and solve our most pressing challenges – from optimizing supply chains, detecting fraud, and improving customer experiences to accelerating drug discoveries.
Communications Mining Series - Zero to Hero - Session 1DianaGray10
This session provides introduction to UiPath Communication Mining, importance and platform overview. You will acquire a good understand of the phases in Communication Mining as we go over the platform with you. Topics covered:
• Communication Mining Overview
• Why is it important?
• How can it help today’s business and the benefits
• Phases in Communication Mining
• Demo on Platform overview
• Q/A
Generative AI Deep Dive: Advancing from Proof of Concept to ProductionAggregage
Join Maher Hanafi, VP of Engineering at Betterworks, in this new session where he'll share a practical framework to transform Gen AI prototypes into impactful products! He'll delve into the complexities of data collection and management, model selection and optimization, and ensuring security, scalability, and responsible use.
Pushing the limits of ePRTC: 100ns holdover for 100 daysAdtran
At WSTS 2024, Alon Stern explored the topic of parametric holdover and explained how recent research findings can be implemented in real-world PNT networks to achieve 100 nanoseconds of accuracy for up to 100 days.
TrustArc Webinar - 2024 Global Privacy SurveyTrustArc
How does your privacy program stack up against your peers? What challenges are privacy teams tackling and prioritizing in 2024?
In the fifth annual Global Privacy Benchmarks Survey, we asked over 1,800 global privacy professionals and business executives to share their perspectives on the current state of privacy inside and outside of their organizations. This year’s report focused on emerging areas of importance for privacy and compliance professionals, including considerations and implications of Artificial Intelligence (AI) technologies, building brand trust, and different approaches for achieving higher privacy competence scores.
See how organizational priorities and strategic approaches to data security and privacy are evolving around the globe.
This webinar will review:
- The top 10 privacy insights from the fifth annual Global Privacy Benchmarks Survey
- The top challenges for privacy leaders, practitioners, and organizations in 2024
- Key themes to consider in developing and maintaining your privacy program
UiPath Test Automation using UiPath Test Suite series, part 6DianaGray10
Welcome to UiPath Test Automation using UiPath Test Suite series part 6. In this session, we will cover Test Automation with generative AI and Open AI.
UiPath Test Automation with generative AI and Open AI webinar offers an in-depth exploration of leveraging cutting-edge technologies for test automation within the UiPath platform. Attendees will delve into the integration of generative AI, a test automation solution, with Open AI advanced natural language processing capabilities.
Throughout the session, participants will discover how this synergy empowers testers to automate repetitive tasks, enhance testing accuracy, and expedite the software testing life cycle. Topics covered include the seamless integration process, practical use cases, and the benefits of harnessing AI-driven automation for UiPath testing initiatives. By attending this webinar, testers, and automation professionals can gain valuable insights into harnessing the power of AI to optimize their test automation workflows within the UiPath ecosystem, ultimately driving efficiency and quality in software development processes.
What will you get from this session?
1. Insights into integrating generative AI.
2. Understanding how this integration enhances test automation within the UiPath platform
3. Practical demonstrations
4. Exploration of real-world use cases illustrating the benefits of AI-driven test automation for UiPath
Topics covered:
What is generative AI
Test Automation with generative AI and Open AI.
UiPath integration with generative AI
Speaker:
Deepak Rai, Automation Practice Lead, Boundaryless Group and UiPath MVP
How to Get CNIC Information System with Paksim Ga.pptxdanishmna97
Pakdata Cf is a groundbreaking system designed to streamline and facilitate access to CNIC information. This innovative platform leverages advanced technology to provide users with efficient and secure access to their CNIC details.
In the rapidly evolving landscape of technologies, XML continues to play a vital role in structuring, storing, and transporting data across diverse systems. The recent advancements in artificial intelligence (AI) present new methodologies for enhancing XML development workflows, introducing efficiency, automation, and intelligent capabilities. This presentation will outline the scope and perspective of utilizing AI in XML development. The potential benefits and the possible pitfalls will be highlighted, providing a balanced view of the subject.
We will explore the capabilities of AI in understanding XML markup languages and autonomously creating structured XML content. Additionally, we will examine the capacity of AI to enrich plain text with appropriate XML markup. Practical examples and methodological guidelines will be provided to elucidate how AI can be effectively prompted to interpret and generate accurate XML markup.
Further emphasis will be placed on the role of AI in developing XSLT, or schemas such as XSD and Schematron. We will address the techniques and strategies adopted to create prompts for generating code, explaining code, or refactoring the code, and the results achieved.
The discussion will extend to how AI can be used to transform XML content. In particular, the focus will be on the use of AI XPath extension functions in XSLT, Schematron, Schematron Quick Fixes, or for XML content refactoring.
The presentation aims to deliver a comprehensive overview of AI usage in XML development, providing attendees with the necessary knowledge to make informed decisions. Whether you’re at the early stages of adopting AI or considering integrating it in advanced XML development, this presentation will cover all levels of expertise.
By highlighting the potential advantages and challenges of integrating AI with XML development tools and languages, the presentation seeks to inspire thoughtful conversation around the future of XML development. We’ll not only delve into the technical aspects of AI-powered XML development but also discuss practical implications and possible future directions.
Unlocking Productivity: Leveraging the Potential of Copilot in Microsoft 365, a presentation by Christoforos Vlachos, Senior Solutions Manager – Modern Workplace, Uni Systems
Cosa hanno in comune un mattoncino Lego e la backdoor XZ?Speck&Tech
ABSTRACT: A prima vista, un mattoncino Lego e la backdoor XZ potrebbero avere in comune il fatto di essere entrambi blocchi di costruzione, o dipendenze di progetti creativi e software. La realtà è che un mattoncino Lego e il caso della backdoor XZ hanno molto di più di tutto ciò in comune.
Partecipate alla presentazione per immergervi in una storia di interoperabilità, standard e formati aperti, per poi discutere del ruolo importante che i contributori hanno in una comunità open source sostenibile.
BIO: Sostenitrice del software libero e dei formati standard e aperti. È stata un membro attivo dei progetti Fedora e openSUSE e ha co-fondato l'Associazione LibreItalia dove è stata coinvolta in diversi eventi, migrazioni e formazione relativi a LibreOffice. In precedenza ha lavorato a migrazioni e corsi di formazione su LibreOffice per diverse amministrazioni pubbliche e privati. Da gennaio 2020 lavora in SUSE come Software Release Engineer per Uyuni e SUSE Manager e quando non segue la sua passione per i computer e per Geeko coltiva la sua curiosità per l'astronomia (da cui deriva il suo nickname deneb_alpha).
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdfMalak Abu Hammad
Discover how MongoDB Atlas and vector search technology can revolutionize your application's search capabilities. This comprehensive presentation covers:
* What is Vector Search?
* Importance and benefits of vector search
* Practical use cases across various industries
* Step-by-step implementation guide
* Live demos with code snippets
* Enhancing LLM capabilities with vector search
* Best practices and optimization strategies
Perfect for developers, AI enthusiasts, and tech leaders. Learn how to leverage MongoDB Atlas to deliver highly relevant, context-aware search results, transforming your data retrieval process. Stay ahead in tech innovation and maximize the potential of your applications.
#MongoDB #VectorSearch #AI #SemanticSearch #TechInnovation #DataScience #LLM #MachineLearning #SearchTechnology
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...SOFTTECHHUB
The choice of an operating system plays a pivotal role in shaping our computing experience. For decades, Microsoft's Windows has dominated the market, offering a familiar and widely adopted platform for personal and professional use. However, as technological advancements continue to push the boundaries of innovation, alternative operating systems have emerged, challenging the status quo and offering users a fresh perspective on computing.
One such alternative that has garnered significant attention and acclaim is Nitrux Linux 3.5.0, a sleek, powerful, and user-friendly Linux distribution that promises to redefine the way we interact with our devices. With its focus on performance, security, and customization, Nitrux Linux presents a compelling case for those seeking to break free from the constraints of proprietary software and embrace the freedom and flexibility of open-source computing.
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slackshyamraj55
Discover the seamless integration of RPA (Robotic Process Automation), COMPOSER, and APM with AWS IDP enhanced with Slack notifications. Explore how these technologies converge to streamline workflows, optimize performance, and ensure secure access, all while leveraging the power of AWS IDP and real-time communication via Slack notifications.
UiPath Test Automation using UiPath Test Suite series, part 5DianaGray10
Welcome to UiPath Test Automation using UiPath Test Suite series part 5. In this session, we will cover CI/CD with devops.
Topics covered:
CI/CD with in UiPath
End-to-end overview of CI/CD pipeline with Azure devops
Speaker:
Lyndsey Byblow, Test Suite Sales Engineer @ UiPath, Inc.
A tale of scale & speed: How the US Navy is enabling software delivery from l...sonjaschweigert1
Rapid and secure feature delivery is a goal across every application team and every branch of the DoD. The Navy’s DevSecOps platform, Party Barge, has achieved:
- Reduction in onboarding time from 5 weeks to 1 day
- Improved developer experience and productivity through actionable findings and reduction of false positives
- Maintenance of superior security standards and inherent policy enforcement with Authorization to Operate (ATO)
Development teams can ship efficiently and ensure applications are cyber ready for Navy Authorizing Officials (AOs). In this webinar, Sigma Defense and Anchore will give attendees a look behind the scenes and demo secure pipeline automation and security artifacts that speed up application ATO and time to production.
We will cover:
- How to remove silos in DevSecOps
- How to build efficient development pipeline roles and component templates
- How to deliver security artifacts that matter for ATO’s (SBOMs, vulnerability reports, and policy evidence)
- How to streamline operations with automated policy checks on container images
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024Albert Hoitingh
In this session I delve into the encryption technology used in Microsoft 365 and Microsoft Purview. Including the concepts of Customer Key and Double Key Encryption.
For the full video of this presentation, please visit: https://www.edge-ai-vision.com/2024/06/building-and-scaling-ai-applications-with-the-nx-ai-manager-a-presentation-from-network-optix/
Robin van Emden, Senior Director of Data Science at Network Optix, presents the “Building and Scaling AI Applications with the Nx AI Manager,” tutorial at the May 2024 Embedded Vision Summit.
In this presentation, van Emden covers the basics of scaling edge AI solutions using the Nx tool kit. He emphasizes the process of developing AI models and deploying them globally. He also showcases the conversion of AI models and the creation of effective edge AI pipelines, with a focus on pre-processing, model conversion, selecting the appropriate inference engine for the target hardware and post-processing.
van Emden shows how Nx can simplify the developer’s life and facilitate a rapid transition from concept to production-ready applications.He provides valuable insights into developing scalable and efficient edge AI solutions, with a strong focus on practical implementation.
“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...
Классифицируем текст в iOS без CoreML: как и зачем?
1. Classifying a text to iOS without
CoreML: how and why?
Viacheslav Volodko
2. SMS Filter
• Filters SMS spam
• Freemium model
• ML-based checks on
Server-side
• 4 localizations:
– Ukrainian
– English
– German
– Russian
SMS Filter
3. Why Language Detection?
1. Its preliminary step in SMS Spam detection
2. We can’t claim we filter spam for languages we don’t
know.
4. NLLanguageRecognizer
NLLanguageRecognizer.dominantLanguage(for: "Hello, how are you doing?")?.name
// English
NLLanguageRecognizer.dominantLanguage(for: "Привіт, як твої справи")?.name
// Українська
NLLanguageRecognizer.dominantLanguage(for: "Привет, как твои дела?")?.name
// Русский
NLLanguageRecognizer.dominantLanguage(for: "Hallo, wie geht es dir?")?.name
// Deutsch
let realWorldSMS =
"""
VITAEMO Kompiuternum vidbirom na nomer,vipav
pryz:AUTO-MAZDA SX-5
Detali:
+38(095)857-58-64
abo na saiti:
www.mir-europay.com.ua
"""
NLLanguageRecognizer.dominantLanguage(for: realWorldSMS)?.name
// Hrvatski
5. Why not NSStringTransform?
let detransliteratedString =
realWorldSMS.applyingTransform(StringTransform.latinToCyrillic, reverse: false) ?? ""
// ВИТАЕМО Компиутернум видбиром на номер,випав
// прыз:АУТО-МАЗДА СКС-5
// Детали:
// +38(095)857-58-64
// або на саити:
// ууу.мир-еуропаы.цом.уа
NLLanguageRecognizer.dominantLanguage(for: detransliteratedString)?.name
// русский
6. Why not Detransliteration?
1. Get language-aware
transliterator
2. Transliterate text onto
Ukrainian, Russian
3. Make language prediction for
original and transliterated
texts
4. Get language with highest
probability
Ukrainian
Russian
None
English
Bulgarian
7. Why not Detransliteration?
let ukrainianTranslitText = "Privit, jak tvoji spravy?"
let detransliteredUkrText = ukrainianTranslitText
.applyingTransform(StringTransform.latinToCyrillic, reverse: false) ?? ""
// Привит, йак твойи справы?
let englishText = "Hello, how are you doing?"
let detransliteredEngText = englishText
.applyingTransform(StringTransform.latinToCyrillic, reverse: false) ?? ""
// Хелло, хоу аре ыоу доинг?
9. Let’s use Core ML + Create ML
1. Text classification models included:
• maximum entropy model
• conditional random field
2. It’s ready made solution
11. Prepare dataset
func testPreprocessText() {
// GIVEN
let text = """
Вітаємо, dear@friend.com!
Ми заборгували вам 5.00 гривень,
і хотіли б повернути їх до 21.03.2019.
Зателефонуйте нам на +38 (012) 345-67-89
або відвідайте example.com, щоб дізнатись деталі!
"""
// WHEN
let preprocessedText = testedPreprocessor.preprocessedText(for: text)
// THEN
XCTAssertEqual(preprocessedText,
"Вітаємо Ми заборгували вам гривень і хотіли б повернути їх " +
"Зателефонуйте нам на або відвідайте щоб дізнатись деталі")
}
Вітаємо, dear@friend.com!
Ми заборгували вам 5.00 гривень,
і хотіли б повернути їх до 21.03.2019.
Зателефонуйте нам на +38 (012) 345-67-89
або відвідайте example.com, щоб дізнатись деталі!
12. Training Core ML model
public struct DatasetItem {
let text: String
let label: String
}
public protocol Dataset {
var items: [DatasetItem]
}
public static func trainCoreMLClassifier(with preprocessor: Preprocessor,
on dataset: Dataset) throws -> MLTextClassifier {
let data: [String: MLDataValueConvertible] = [
"text": dataset.items.map { preprocessor.preprocessedText(for: $0.text) },
"label": dataset.items.map { $0.label },
]
let trainingDataTable = try MLDataTable(dictionary: data)
let mlClassifier = try MLTextClassifier(trainingData: trainingDataTable,
textColumn: "text",
labelColumn: "label")
return mlClassifier
}
13. Using CoreML Model
public func predictedLabel(for string: String) -> String? {
let input =
try? MLDictionaryFeatureProvider(dictionary: ["text": string])
let prediction = try? mlModel.prediction(from: input)
return prediction?.featureValue(for: "label")?.stringValue
}
let language = predictedLabel(for: "Hello, how are you?")
// en
15. Evaluating CoreML Model
func testAccuracy() {
// GIVEN
let preprocessor = TrivialPreprocessor()
let (trainDataset, testDataset) =
self.testDatasets.languagesDataset.splitTestDataset(startPersentage: 0.8,
endPersentage: 1.0)
let classifier = CoreMLClassifier.train(with: preprocessor, on: trainDataset)
// WHEN
let testResults = classifier.test(on: testDataset)
// THEN
XCTAssertGreaterThan(testResults.accuracy, 1.0)
// failed: ("0.9463667820069204") is not greater than ("1.0") -
}
20. Cross Validation
func testCrossvalidateAdvancedPreprocessor() {
// GIVEN
let dataset = testDatasets.languagesDataset
// WHEN
let results =
CoreMLClassifier.crossValidate(on: dataset,
with: AdvancedPreprocessor())
// THEN
XCTAssertGreaterThan(results.accuracy, 1.0)
// failed: ("0.9661251296232285") is not greater than ("1.0")
}
21. func testCrossvalidateAdvancedPreprocessor() {
// GIVEN
let dataset = testDatasets.languagesDataset
// WHEN
let results =
CoreMLClassifier.crossValidate(on: dataset,
with: AdvancedPreprocessor())
// THEN
XCTAssertGreaterThan(results.accuracy, 1.0)
// failed: ("0.9661251296232285") is not greater than ("1.0")
}
func testAccuracy() {
// GIVEN
let testDataset = testDatasets.languagesDataset
// WHEN
let results = testedClassifier.test(on: testDataset)
// THEN
XCTAssertGreaterThan(results.accuracy, 1.0)
// failed: ("0.8022435526772291") is not greater than ("1.0")
}
CoreML vs NLLanguageRecognizer
NL Language
Recognizer
80,2% 👎
Core ML 96,6% 👍
25. Memory-Mapped File
• A memory-mapped file is a segment of virtual memory
that has been assigned a direct byte-for-byte correlation
with some portion of a file or file-like resource.
• Google’s FlatBuffers library
• https://google.github.io/flatbuffers/
31. Assumptions:
• Order of words does not matter
• Probabilities of words are independent:
Naive Bayes classifier
P(fi fj|c) = P(fi|c)P(fj|c)<latexit sha1_base64="+RsQije6rquepISX9OBBMHoLryE=">AAACLXicdZBPT9swGMYdtrEuDCjjyMWiQoJL5RTRjgNSBRw4dhJtkZoqctw3xdRxgu0gVaFfiMu+yoTEATTtuq8xJ3Tij+CVLD/6ve8j+33CVHBtCLl3Fj58/LT4ufLFXfq6vLJaXfvW00mmGHRZIhJ1FlINgkvoGm4EnKUKaBwK6IeTo6LfvwKleSJPzTSFYUzHkkecUWNRUD12/RDGXOZwmZVo5na2o4D7jKY4Ci6u2Q4+wCWysrgL5PogR0+WoFoj9X2yt9sgmNS9vWaz1SyER1r7HvbqpKwamlcnqN76o4RlMUjDBNV64JHUDHOqDGcCZq6faUgpm9AxDKyUNAY9zMttZ3jLkhGOEmWPNLikzx05jbWexqGdjKk51697BXyrN8hM9H2Yc5lmBiR7fCjKBDYJLqLDI66AGTG1gjLF7V8xO6eKMmMDdm0I/zfF74teo+7ZZH40au3DeRwVtIE20TbyUAu10QnqoC5i6Ab9Qvfowfnp3Dm/nT+PowvO3LOOXpTz9x+fU6fL</latexit><latexit sha1_base64="+RsQije6rquepISX9OBBMHoLryE=">AAACLXicdZBPT9swGMYdtrEuDCjjyMWiQoJL5RTRjgNSBRw4dhJtkZoqctw3xdRxgu0gVaFfiMu+yoTEATTtuq8xJ3Tij+CVLD/6ve8j+33CVHBtCLl3Fj58/LT4ufLFXfq6vLJaXfvW00mmGHRZIhJ1FlINgkvoGm4EnKUKaBwK6IeTo6LfvwKleSJPzTSFYUzHkkecUWNRUD12/RDGXOZwmZVo5na2o4D7jKY4Ci6u2Q4+wCWysrgL5PogR0+WoFoj9X2yt9sgmNS9vWaz1SyER1r7HvbqpKwamlcnqN76o4RlMUjDBNV64JHUDHOqDGcCZq6faUgpm9AxDKyUNAY9zMttZ3jLkhGOEmWPNLikzx05jbWexqGdjKk51697BXyrN8hM9H2Yc5lmBiR7fCjKBDYJLqLDI66AGTG1gjLF7V8xO6eKMmMDdm0I/zfF74teo+7ZZH40au3DeRwVtIE20TbyUAu10QnqoC5i6Ab9Qvfowfnp3Dm/nT+PowvO3LOOXpTz9x+fU6fL</latexit><latexit sha1_base64="+RsQije6rquepISX9OBBMHoLryE=">AAACLXicdZBPT9swGMYdtrEuDCjjyMWiQoJL5RTRjgNSBRw4dhJtkZoqctw3xdRxgu0gVaFfiMu+yoTEATTtuq8xJ3Tij+CVLD/6ve8j+33CVHBtCLl3Fj58/LT4ufLFXfq6vLJaXfvW00mmGHRZIhJ1FlINgkvoGm4EnKUKaBwK6IeTo6LfvwKleSJPzTSFYUzHkkecUWNRUD12/RDGXOZwmZVo5na2o4D7jKY4Ci6u2Q4+wCWysrgL5PogR0+WoFoj9X2yt9sgmNS9vWaz1SyER1r7HvbqpKwamlcnqN76o4RlMUjDBNV64JHUDHOqDGcCZq6faUgpm9AxDKyUNAY9zMttZ3jLkhGOEmWPNLikzx05jbWexqGdjKk51697BXyrN8hM9H2Yc5lmBiR7fCjKBDYJLqLDI66AGTG1gjLF7V8xO6eKMmMDdm0I/zfF74teo+7ZZH40au3DeRwVtIE20TbyUAu10QnqoC5i6Ab9Qvfowfnp3Dm/nT+PowvO3LOOXpTz9x+fU6fL</latexit><latexit sha1_base64="hP+6LrUf2d3tZaldqaQQvEKMXyw=">AAAB2XicbZDNSgMxFIXv1L86Vq1rN8EiuCozbnQpuHFZwbZCO5RM5k4bmskMyR2hDH0BF25EfC93vo3pz0JbDwQ+zknIvSculLQUBN9ebWd3b/+gfugfNfzjk9Nmo2fz0gjsilzl5jnmFpXU2CVJCp8LgzyLFfbj6f0i77+gsTLXTzQrMMr4WMtUCk7O6oyaraAdLMW2IVxDC9YaNb+GSS7KDDUJxa0dhEFBUcUNSaFw7g9LiwUXUz7GgUPNM7RRtRxzzi6dk7A0N+5oYkv394uKZ9bOstjdzDhN7Ga2MP/LBiWlt1EldVESarH6KC0Vo5wtdmaJNChIzRxwYaSblYkJN1yQa8Z3HYSbG29D77odBu3wMYA6nMMFXEEIN3AHD9CBLghI4BXevYn35n2suqp569LO4I+8zx84xIo4</latexit><latexit sha1_base64="VXNGbSPDGJW1KI7STe5hAY0Bb2g=">AAACInicbZDLSsNAFIZPvNZ4q27dDBZBNyVxoxtB0IXLCtYKTQmT6UkdnUzizEQosS/kxlcRwYUiPouTtOClHhjm5/vncOb8USa4Np735szMzs0vLNaW3OWV1bX1+sbKpU5zxbDNUpGqq4hqFFxi23Aj8CpTSJNIYCe6PSn9zj0qzVN5YYYZ9hI6kDzmjBqLwvqpG0Q44LLAu7xCI7e1G4c8YDQjcXjzwPbIEamQleVdIjdA2f9uCesNr+lVRaaFPxENmFQrrL8E/ZTlCUrDBNW663uZ6RVUGc4Ejtwg15hRdksH2LVS0gR1r6i2HZEdS/okTpU90pCK/uwoaKL1MInsy4Saa/3XK+F/Xjc38WGv4DLLDUo2HhTngpiUlNGRPlfIjBhaQZni9q+EXVNFmbEBuzYE/+/K0+Jyv+l7Tf/cgxpswTbsgg8HcAxn0II2MHiEZ3iDd+fJeXU+xnHNOJPcNuFXOZ9fD86l8A==</latexit><latexit sha1_base64="Dkj1pEItaaly4pTiWGp046C2Hkc=">AAACInicdZDPahsxEMZn06R1t2nj9pqLqCk4F6NNiR0fCoHmkKML9R/wmkUrzzpqtNqNpC2YjV+ol75KCeSQEPIs1a5TkpR2QOjj92kYzRfnUhhL6bW38Wxz6/mLxkv/1fbrNzvNt9sjkxWa45BnMtOTmBmUQuHQCitxkmtkaSxxHJ99rvzxd9RGZOqrXeY4S9lCiURwZh2Kmsd+GONCqBLPixqt/EE7iUTIWU6S6NsF3yOfSI2crO4K+SGq+UNL1GzRTp8efNynhHaCg263161EQHv9gAQdWlcL7msQNS/DecaLFJXlkhkzDWhuZyXTVnCJKz8sDOaMn7EFTp1ULEUzK+ttV+SDI3OSZNodZUlNH3eULDVmmcbuZcrsqfnbq+C/vGlhk8NZKVReWFR8PSgpJLEZqaIjc6GRW7l0gnEt3F8JP2WacesC9l0IfzYl/xej/U7gkvlCoQG78B7aEEAPjuAEBjAEDj/gF1zDjffTu/Ju13FtePe5vYMn5d39BnCppjU=</latexit><latexit sha1_base64="OSnWW1mYol7+XaMtstNB1bX7jDw=">AAACLXicdZDNahsxFIU1btqm06Zx22U2IqbgbozGwXa9CJi2iyxdiH/AYwaNfMdWrNFMJE3BTPxC3fRVSqGLlJJtXqOasUN+SC8IHb57D9I9YSq4NoRcOpUnO0+fPd994b58tfd6v/rm7VAnmWIwYIlI1DikGgSXMDDcCBinCmgcChiFy89Ff/QNlOaJPDWrFKYxnUsecUaNRUH1i+uHMOcyh/OsRGu3X48C7jOa4ig4u2Af8DEukZXFXSDXBzm7tQTVGml0SeuoSTBpeK12u9MuhEc6XQ97DVJWDW2rH1R/+bOEZTFIwwTVeuKR1ExzqgxnAtaun2lIKVvSOUyslDQGPc3Lbdf4vSUzHCXKHmlwSe86chprvYpDOxlTs9APewV8rDfJTPRxmnOZZgYk2zwUZQKbBBfR4RlXwIxYWUGZ4vavmC2ooszYgF0bws2m+P9i2Gx4NpmvpNb7tI1jFx2gQ1RHHuqgHjpBfTRADH1HP9El+uP8cH47f52rzWjF2XreoXvlXP8DnrOnyQ==</latexit><latexit sha1_base64="+RsQije6rquepISX9OBBMHoLryE=">AAACLXicdZBPT9swGMYdtrEuDCjjyMWiQoJL5RTRjgNSBRw4dhJtkZoqctw3xdRxgu0gVaFfiMu+yoTEATTtuq8xJ3Tij+CVLD/6ve8j+33CVHBtCLl3Fj58/LT4ufLFXfq6vLJaXfvW00mmGHRZIhJ1FlINgkvoGm4EnKUKaBwK6IeTo6LfvwKleSJPzTSFYUzHkkecUWNRUD12/RDGXOZwmZVo5na2o4D7jKY4Ci6u2Q4+wCWysrgL5PogR0+WoFoj9X2yt9sgmNS9vWaz1SyER1r7HvbqpKwamlcnqN76o4RlMUjDBNV64JHUDHOqDGcCZq6faUgpm9AxDKyUNAY9zMttZ3jLkhGOEmWPNLikzx05jbWexqGdjKk51697BXyrN8hM9H2Yc5lmBiR7fCjKBDYJLqLDI66AGTG1gjLF7V8xO6eKMmMDdm0I/zfF74teo+7ZZH40au3DeRwVtIE20TbyUAu10QnqoC5i6Ab9Qvfowfnp3Dm/nT+PowvO3LOOXpTz9x+fU6fL</latexit><latexit sha1_base64="+RsQije6rquepISX9OBBMHoLryE=">AAACLXicdZBPT9swGMYdtrEuDCjjyMWiQoJL5RTRjgNSBRw4dhJtkZoqctw3xdRxgu0gVaFfiMu+yoTEATTtuq8xJ3Tij+CVLD/6ve8j+33CVHBtCLl3Fj58/LT4ufLFXfq6vLJaXfvW00mmGHRZIhJ1FlINgkvoGm4EnKUKaBwK6IeTo6LfvwKleSJPzTSFYUzHkkecUWNRUD12/RDGXOZwmZVo5na2o4D7jKY4Ci6u2Q4+wCWysrgL5PogR0+WoFoj9X2yt9sgmNS9vWaz1SyER1r7HvbqpKwamlcnqN76o4RlMUjDBNV64JHUDHOqDGcCZq6faUgpm9AxDKyUNAY9zMttZ3jLkhGOEmWPNLikzx05jbWexqGdjKk51697BXyrN8hM9H2Yc5lmBiR7fCjKBDYJLqLDI66AGTG1gjLF7V8xO6eKMmMDdm0I/zfF74teo+7ZZH40au3DeRwVtIE20TbyUAu10QnqoC5i6Ab9Qvfowfnp3Dm/nT+PowvO3LOOXpTz9x+fU6fL</latexit><latexit sha1_base64="+RsQije6rquepISX9OBBMHoLryE=">AAACLXicdZBPT9swGMYdtrEuDCjjyMWiQoJL5RTRjgNSBRw4dhJtkZoqctw3xdRxgu0gVaFfiMu+yoTEATTtuq8xJ3Tij+CVLD/6ve8j+33CVHBtCLl3Fj58/LT4ufLFXfq6vLJaXfvW00mmGHRZIhJ1FlINgkvoGm4EnKUKaBwK6IeTo6LfvwKleSJPzTSFYUzHkkecUWNRUD12/RDGXOZwmZVo5na2o4D7jKY4Ci6u2Q4+wCWysrgL5PogR0+WoFoj9X2yt9sgmNS9vWaz1SyER1r7HvbqpKwamlcnqN76o4RlMUjDBNV64JHUDHOqDGcCZq6faUgpm9AxDKyUNAY9zMttZ3jLkhGOEmWPNLikzx05jbWexqGdjKk51697BXyrN8hM9H2Yc5lmBiR7fCjKBDYJLqLDI66AGTG1gjLF7V8xO6eKMmMDdm0I/zfF74teo+7ZZH40au3DeRwVtIE20TbyUAu10QnqoC5i6Ab9Qvfowfnp3Dm/nT+PowvO3LOOXpTz9x+fU6fL</latexit><latexit sha1_base64="+RsQije6rquepISX9OBBMHoLryE=">AAACLXicdZBPT9swGMYdtrEuDCjjyMWiQoJL5RTRjgNSBRw4dhJtkZoqctw3xdRxgu0gVaFfiMu+yoTEATTtuq8xJ3Tij+CVLD/6ve8j+33CVHBtCLl3Fj58/LT4ufLFXfq6vLJaXfvW00mmGHRZIhJ1FlINgkvoGm4EnKUKaBwK6IeTo6LfvwKleSJPzTSFYUzHkkecUWNRUD12/RDGXOZwmZVo5na2o4D7jKY4Ci6u2Q4+wCWysrgL5PogR0+WoFoj9X2yt9sgmNS9vWaz1SyER1r7HvbqpKwamlcnqN76o4RlMUjDBNV64JHUDHOqDGcCZq6faUgpm9AxDKyUNAY9zMttZ3jLkhGOEmWPNLikzx05jbWexqGdjKk51697BXyrN8hM9H2Yc5lmBiR7fCjKBDYJLqLDI66AGTG1gjLF7V8xO6eKMmMDdm0I/zfF74teo+7ZZH40au3DeRwVtIE20TbyUAu10QnqoC5i6Ab9Qvfowfnp3Dm/nT+PowvO3LOOXpTz9x+fU6fL</latexit><latexit sha1_base64="+RsQije6rquepISX9OBBMHoLryE=">AAACLXicdZBPT9swGMYdtrEuDCjjyMWiQoJL5RTRjgNSBRw4dhJtkZoqctw3xdRxgu0gVaFfiMu+yoTEATTtuq8xJ3Tij+CVLD/6ve8j+33CVHBtCLl3Fj58/LT4ufLFXfq6vLJaXfvW00mmGHRZIhJ1FlINgkvoGm4EnKUKaBwK6IeTo6LfvwKleSJPzTSFYUzHkkecUWNRUD12/RDGXOZwmZVo5na2o4D7jKY4Ci6u2Q4+wCWysrgL5PogR0+WoFoj9X2yt9sgmNS9vWaz1SyER1r7HvbqpKwamlcnqN76o4RlMUjDBNV64JHUDHOqDGcCZq6faUgpm9AxDKyUNAY9zMttZ3jLkhGOEmWPNLikzx05jbWexqGdjKk51697BXyrN8hM9H2Yc5lmBiR7fCjKBDYJLqLDI66AGTG1gjLF7V8xO6eKMmMDdm0I/zfF74teo+7ZZH40au3DeRwVtIE20TbyUAu10QnqoC5i6Ab9Qvfowfnp3Dm/nT+PowvO3LOOXpTz9x+fU6fL</latexit><latexit sha1_base64="+RsQije6rquepISX9OBBMHoLryE=">AAACLXicdZBPT9swGMYdtrEuDCjjyMWiQoJL5RTRjgNSBRw4dhJtkZoqctw3xdRxgu0gVaFfiMu+yoTEATTtuq8xJ3Tij+CVLD/6ve8j+33CVHBtCLl3Fj58/LT4ufLFXfq6vLJaXfvW00mmGHRZIhJ1FlINgkvoGm4EnKUKaBwK6IeTo6LfvwKleSJPzTSFYUzHkkecUWNRUD12/RDGXOZwmZVo5na2o4D7jKY4Ci6u2Q4+wCWysrgL5PogR0+WoFoj9X2yt9sgmNS9vWaz1SyER1r7HvbqpKwamlcnqN76o4RlMUjDBNV64JHUDHOqDGcCZq6faUgpm9AxDKyUNAY9zMttZ3jLkhGOEmWPNLikzx05jbWexqGdjKk51697BXyrN8hM9H2Yc5lmBiR7fCjKBDYJLqLDI66AGTG1gjLF7V8xO6eKMmMDdm0I/zfF74teo+7ZZH40au3DeRwVtIE20TbyUAu10QnqoC5i6Ab9Qvfowfnp3Dm/nT+PowvO3LOOXpTz9x+fU6fL</latexit>
34. Naive Bayes classifier
Building model:
typealias Model = [String: [String: Int]]
var model: Model = [
"uk": [
"Вітаю": 1,
"вас": 2,
...
],
"en": [
"Hello": 1,
"dear": 2,
...
]
...
]
35. Naive Bayes classifier
Building model:
for label in labels {
for text in trainTextsForLabel[label] {
let words = preprocessor.preprocess(text: text)
for word in words {
model[label][word] += 1
}
}
}
36. Naive Bayes classifier
Predicting label of text:
1. Preprocess text
2. Split onto words
3. Calculate probability of each word in label
«Зателефонуйте нам на +38 (012) 345-67-89» «Зателефонуйте нам на»
["Зателефонуйте", "нам", "на"]
["uk": ["Зателефонуйте": 0.84,
"нам": 0.1,
"на": 0.1],
"ru": ["Зателефонуйте": 0.0,
"нам": 0.1,
"на": 0.1], ...]
37. Naive Bayes classifier
Predicting label of text:
4. Calculate probability of label:
5. Return label with max probability:
[
"uk": -180.3,
"ru": -234.5,
"en": -2004.3,
...
]
"uk"
38. Naive Bayes classifier
Cross Validation:
func testCrossvalidate() {
// GIVEN
let dataset = self.testDatasets.testDataset
// WHEN
let results = NaiveBayesClassifier.crossValidate(on: dataset,
with: TrivialPreprocessor())
// THEN
XCTAssertGreaterThan(results.accuracy, 1.0)
// 0.9782382220164371
}
NL Language
Recognizer
80,2% 👎
Core ML 96,6% 👍
Naive Bayes 97,8% 👍