„Машинно обучение“

въведение

Това е част от поредицата публикации в блогове, свързани с внедряването на изкуствен интелект. Ако се интересувате от предисторията на историята или как се развива:

#1) Как да изтриете Google Local Results с изкуствен интелект?
#2) Пример за машинно обучение на релси в реалния свят
#3) Съвети и сравнения за обучение на AI
#4) Машинно обучение при скрапинг с Rails
#5) Внедряване на ONNX модели в Rails
#6) Как ML Hybrid Parser побеждава традиционния Parser

Тази седмица ще споделим сравненията с нашия проблемен анализатор и как моделът ML-Hybrid ще подобри нашия анализ. Избрах API на Google Local Pack Scraper на SerpApi като тестова площадка. Ще използваме само Desktop резултата в обхвата на това сравнение

Правила за сравнение

Нека дефинираме някои правила за сравняване на два парсера:

  • Правилният разбор дава +3 точки
  • Неправилният анализ дава -2 точки
  • Частичният правилен анализ все още е неправилен анализ, така че -2 точки
  • Ако правилно анализирана стойност се появи на друг ключ, второто появяване ще се счита за -2 отделно, така че в крайна сметка ще се равнява на +1 (минус за объркване)
  • Ако повече от един елемент се появи на нежелан ключ, те отделно ще имат -2 точки
  • Ако текст в част от HTML не е изтрит в нито един от ключовете, той ще има -1 точки, за да не причинява объркване

Примери

Опитахме се да използваме заявки от различни заявки от различни сектори на бизнеса, за да елиминираме пристрастията в сравнението. Няма никакви проблеми с изчисляването на ML-Hybrid Model. Въпреки това, читателят трябва да вземе предвид невалидността на Traditional Parser, същите проблеми се появяват при различни стойности. Като се има предвид това, традиционният анализатор използва голям и сложен набор от условия, за да анализира резултатите. Трудно е да се поддържа и целите на CSS се променят почти на всеки две седмици. Моделът ML-Hybrid от друга страна използва прости CSS цели като div:has(text()), за да събере необходимите текстове в целевите полета.

— — — — — — — — — — — — — — — — — — — — — — — — — — — — — —

Запитване: Зъболекар
Traditional Parser Score: -10
ML-Hybrid Parser Score: 14

— — — — — — — — — — — — — — — — — — — — — — — — — — — — — —

Запитване: Зъболекар
Traditional Parser Score: -10
ML-Hybrid Parser Score: 10

— — — — — — — — — — — — — — — — — — — — — — — — — — — — — —

Заявка: Зъболекар
Traditional Parser Score: -8 (всички неправилни)
ML-Hybrid Parser Score: 1

— — — — — — — — — — — — — — — — — — — — — — — — — — — — — —

Заявка: Книжарница
Traditional Parser Score: -10
ML-Hybrid Parser Score: 14

— — — — — — — — — — — — — — — — — — — — — — — — — — — — — —

Заявка: Книжарница
Traditional Parser Score: -10
ML-Hybrid Parser Score: 21 (Всички верни)

— — — — — — — — — — — — — — — — — — — — — — — — — — — — — —

Заявка: Книжарница
Traditional Parser Score: -3
ML-Hybrid Parser Score: 17

— — — — — — — — — — — — — — — — — — — — — — — — — — — — — —

Заявка: Мексикански ресторант
Traditional Parser Score: -9
ML-Hybrid Parser Score: 15 (Всички верни)

— — — — — — — — — — — — — — — — — — — — — — — — — — — — — —

Заявка: Мексикански ресторант
Traditional Parser Score: -7
ML-Hybrid Parser Score: 12 (Всички верни)

— — — — — — — — — — — — — — — — — — — — — — — — — — — — — —

Заявка: Мексикански ресторант
Traditional Parser Score: -7
ML-Hybrid Parser Score: 12

— — — — — — — — — — — — — — — — — — — — — — — — — — — — — —

Запитване: Застрахователна агенция
Traditional Parser Score: -9
ML-Hybrid Parser Score: 15 (Всички верни)

— — — — — — — — — — — — — — — — — — — — — — — — — — — — — —

Запитване: Застрахователна агенция
Traditional Parser Score: -6
ML-Hybrid Parser Score: 11

— — — — — — — — — — — — — — — — — — — — — — — — — — — — — —

Запитване: Застрахователна агенция
Traditional Parser Score: -9
ML-Hybrid Parser Score: 12 (Всички верни)

— — — — — — — — — — — — — — — — — — — — — — — — — — — — — —

Заявка: Кафе
Traditional Parser Score: -9
ML-Hybrid Parser Score: 15 (Всички верни)

— — — — — — — — — — — — — — — — — — — — — — — — — — — — — —

Заявка: Кафе
Traditional Parser Score: -12
ML-Hybrid Parser Score: 15 (Всички верни)

— — — — — — — — — — — — — — — — — — — — — — — — — — — — — —

Заявка: Кафе
Traditional Parser Score: -8
ML-Hybrid Parser Score: 18 (Всички верни)

— — — — — — — — — — — — — — — — — — — — — — — — — — — — — —

Как работи ML-Hybrid Parser?

Първо, трябва да заявя, че все още не съм разширил речника, използван за поддържане на модела n-gram classifier зад анализатора. Исках да видя как се справя с подаването на данни от ниско ниво и къде става червен. Това означава, че може да се подобри в бъдеще.

Две основни помощни средства за формиране на ML модел са:

  • Може да предвиди единичен низ
  • Може да реши дали даден низ трябва да бъде разделен от разделител (с незначителни случаи на отклонение, които се обработват като традиционния анализатор)

Начинът, по който решава дали даден низ трябва да бъде разделен, е прост:

  • Той разделя низа от определени точки и получава максималната изходна вероятност за предсказване на всеки отделен текст. Какво означава това:
    Означава, че ако дадете на модела низ, той ви дава изход като масив, състоящ се от различни числа с плаваща единица. Размерът на масива е броят на целевите ключове, които искате да предвидите. Този масив се състои от плаващи стойности, които представляват вероятностни стойности, а индексът на максимума на тези плаващи стойности ще ви даде ключа, който искате да предвидите. В момента обаче се интересуваме от стойността на максимума на тези плаващи стойности.
    Пример: изход за „5540 N Lamar Blvd #12“ = [0.6, 0.4]
    изход за „Austin, TX 78756 ” = [0,8, 0,2]
  • Моделът взема средната стойност на тези максимални вероятностни стойности
    Пример: средна продукция за разделяне = (0,6 + 0,8)/2 = 0,7
  • След това взема максималната вероятност на комбинирания текст
    Пример: изход за „5540 N Lamar Blvd #12 ⋅ Austin, TX 78756“ = [0,9, 0,1]
  • Накрая той сравнява и двете, за да вземе решение дали е по-разумно да раздели текста. Тъй като 0.9 е по-голямо от 0.1, той ще избере да не разделя текста. Забележете, че и трите текста ще ни дадат address ключ.

В допълнение към тях, основната разлика от traditional parser е как събира текстовете на първо място. В traditional parser имате определен набор от цели, в които навигирате през различни условия, за да анализирате необходимия елемент. ML-Hybrid се поддържа и с много условия на регулярни изрази. В крайна сметка обаче това е мрежа от текст и надпревара за ключ. Полезен е за две неща:

  • Не е нужно да пишете сложен анализатор за един ключ, първоначалният анализатор вероятно ще бъде достатъчен.
  • Не е нужно да актуализирате CSS цели или да преминавате през комбинация от условия, можете да актуализирате ключовете и да обучите отново модела с две прости команди, ако се появи нов ключ. Не е нужно да го правите със стари ключове.

Заключение

Тази публикация в блога е категорично доказателство, че моделът ML-Hybrid може да се прилага за целите на анализирането с много по-голяма ефективност и устойчивост. Бих искал да благодаря на читателя за вниманието и бих искал да благодаря на брилянтните хора от SerpApi за цялата им подкрепа при носенето на знамето в нови области, дори в тези trying times. Следващата седмица ще говорим за това как ще подобрим допълнително модела, сравнителни показатели за време на изпълнение, а също и General Testing Purposes for Machine Learning.

Първоначално публикувано в https://serpapi.com на 9 март 2022 г.