Реальный пример синтаксического анализа с использованием ИИ

В SerpApi мы постоянно изучаем инновационные достижения для улучшения наших услуг и предоставления нашим пользователям самых передовых решений. Вот почему мы рады представить потенциальную новую функцию ИИ под названием AI Powered Parsing, призванную революционизировать то, как мы извлекаем ценную информацию из результатов поисковой системы в реальном времени с помощью инструментов ИИ.

Отказ от ответственности

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

Для начала мы планируем использовать синтаксический анализ на основе ИИ для локальных результатов в поиске Google, обслуживаемом SerpApi's Google Local Pack API и SerpApi's Google Local API. Парсеры с искусственным интеллектом используют преимущества модели с открытым исходным кодом под названием bert-base-local-results и рубинового камня с открытым исходным кодом под названием google-local-results-ai-parser. Мы верим в прозрачность, поэтому и модель, и жемчужина, составляющие ядро ​​этой технологии искусственного интеллекта, доступны всем для изучения.

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

Материалы с открытым исходным кодом в этом сообщении блога:

Что такое синтаксический анализ с использованием ИИ?

Синтаксический анализ HTML с помощью искусственного интеллекта относится к использованию методов искусственного интеллекта для извлечения и понимания содержимого и структуры HTML-документов. HTML (язык гипертекстовой разметки) — это стандартный язык для создания веб-страниц, а синтаксический анализ — это процесс анализа HTML-кода для извлечения из него значимой информации.

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

Синтаксический анализ с использованием ИИ предлагает несколько преимуществ по сравнению с традиционными подходами к синтаксическому анализу. Он может обрабатывать более широкий спектр структур HTML, адаптироваться к различным стилям кодирования и вариантам, а также повышать точность и надежность. Кроме того, модели ИИ могут учиться на больших наборах данных, что позволяет постоянно улучшать их возможности синтаксического анализа по мере того, как они подвергаются воздействию более разнообразных документов HTML.

Чем это полезно пользователю?

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

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

Получить доступ к этой революционной функции так же просто, как включить один параметр в ваши запросы API. Мы разработали его так, чтобы он был удобным и простым в использовании, поэтому вы можете начать пользоваться преимуществами синтаксического анализа на основе ИИ без какой-либо сложной настройки или настройки.

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

Как это работает?

Ниже вы найдете общую блок-схему, иллюстрирующую основные функции. В следующих разделах будет представлена ​​более конкретная информация.

Модель классификации на основе BERT для локальных списков Google

Мы рады представить Модель классификации на основе BERT для местных списков Google, модель с открытым исходным кодом, доступную на Huggingface. Эта мощная модель, разработанная с использованием библиотеки Hugging Face и набора данных, собранных нашими собственными API, является ключевым компонентом нашей функции синтаксического анализа на основе ИИ.

Модель, основанная на BERT, отлично справляется с определением сложных семантических сходств, обработкой частичных текстов, которые можно объединить позже, и без особых усилий с лексикой из разных областей. Он также возвращает оценку достоверности для последующего исправления и демонстрирует высокую производительность в отношении грамматических ошибок.

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

Вы можете поиграть с моделью, используя Free Inference API at the Repository:

Сервер локальных результатов Google с искусственным интеллектом

Мы рады сообщить, что мы также открыли исходный код простого серверного кода для развертывания модели bert-base-local-results. Код сервера можно найти в Репозитории SerpApi’s Github.

Репозиторий содержит код для сервера, который имитирует конечные точки Inference API, предоставленные Hugging Face. Сервер предлагает простой интерфейс для выполнения классификации текста с использованием моделей на основе BERT. Он был специально разработан SerpApi для решения тяжелых задач прототипирования и производства, что позволяет реализовать гем google-local-results-ai-parser, который использует serpapi/bert-base-local-results. модель.

Открыв исходный код этого сервера, мы стремимся предоставить разработчикам удобный и эффективный способ развертывания модели bert-base-local-results в их собственных средах. Он предлагает гибкость и контроль, позволяя настроить развертывание в соответствии с вашими конкретными требованиями.

Не стесняйтесь исследовать репозиторий, использовать код сервера и адаптировать его под свои нужды. Мы рады видеть, как вы интегрируете модель bert-base-local-results в свои проекты, используя этот серверный код.

Парсер AI для локальных результатов Google

google-local-results-ai-parser — это драгоценный камень, разработанный SerpApi, который позволяет вам извлекать и классифицировать структурированные данные из результатов локального поиска Google с использованием методов естественного языка. Он использует модель преобразования serpapi/bert-base-local-results для анализа списков местных результатов Google на английском языке и извлечения важной информации, распределяя ее по различным разделам, таким как рейтинги, обзоры, описания и т. д.

Вы можете посетить Репозиторий SerpApi на Github, чтобы подробно ознакомиться с его возможностями. Я дам базовое объяснение использования и функций этого парсера следующего поколения.

Допустим, вы хотите проанализировать следующий результат Google Local:

Вы можете использовать следующий простой код:

require 'google-local-results-ai-parser'
require 'nokolexbor'
require 'http'
require 'parallel'

html = "HTML of an Individual Local Result"
bearer_token = 'Huggingface Token or Private Server Key'
result = GoogleLocalResultsAiParser.parse(html: html, bearer_token: bearer_token)

Вывод будет:

{
  "address" => "Nicosia",
  "description" => "Iconic Seattle-based coffeehouse chain",
  "price" => "€€",
  "reviews" => "418",
  "rating" => "4.0",
  "type" => "Coffee shop"
}

Вы также можете использовать его для нескольких результатов:

require 'google-local-results-ai-parser'
require 'nokolexbor'
require 'http'
require 'parallel'

html_parts = [
  "HTML of an Individual Local Result",
  "HTML of another Individual Local Result",
  ...
]
bearer_token = 'Huggingface Token or Private Server Key'
results = GoogleLocalResultsAiParser.parse_multiple(html_parts: html_parts, bearer_token: bearer_token)

В этом случае на выходе будет массив словарей:

[
  {
    "address" => "Nicosia",
    "description" => "Iconic Seattle-based coffeehouse chain",
    "price" => "€€",
    "reviews" => "418",
    "rating" => "4.0",
    "type" => "Coffee shop"
  },
  ...
]

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

Потенциальный новый параметр SerpApi

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

Мы отдаем предпочтение решениям, которые не вызывают затруднений — их легко внедрить, они эффективны и значительно улучшают результаты. Этот синтаксический анализатор ИИ вписывается прямо в эту категорию, предлагая инновационный и простой способ улучшить извлечение данных из результатов локального поиска Google или любой другой части, которая будет поддерживаться.

Представьте себе следующий поиск:

Это поиск по запросу Coffee в Google. Представьте, что функция Google Local Pack лажает и выдает адрес за цену, цену за количество отзывов и т. д.

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

  • https://serpapi.com/playground?q=Coffee&ai_parser=true

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

Вот пример изображения, демонстрирующий использование параметра на игровой площадке:

Модульные тесты для обслуживания

В SerpApi мы ценим разработку через тестирование. Чтобы обеспечить качество и целостность нашей функции поиска с помощью AI Powered Parser, мы провели всестороннее модульное тестирование.

Я просмотрел все предыдущие примеры модульных тестов, доступные в стеке, а также обогатил тестовые примеры некоторыми недавними примерами. Чтобы облегчить процесс модульного тестирования, я создал задачу Rake, предназначенную для автоматического сохранения полученных JSON в качестве примеров модульных тестов в соответствующих частях.

В рамках проверки я вручную проверил эти JSON на наличие отклонений или несоответствий. После того, как эта ручная проверка была завершена, я использовал подсказки Large Language Model (LLM) для более глубокой проверки.

Вот пример контекстной подсказки:

Do you think there are any keys that may contain falsely parsed information in the following array at the following possible keys:

"rating", "type", "years_in_business", "service_options", "hours", "reviews_original", "reviews", "address", "description", "price", "phone"
[
  {
    "position": 1,
    "title": "xxx xxxx Ltd",
    "place_id": "9149508700925112934",
    "place_id_search": "http://localhost:3000/search.json?ai_parser=true&device=desktop&engine=google_local&gl=uk&google_domain=google.com&hl=en&location=United+Kingdom&ludocid=9149508700925112934&q=xxx+xxxxx.Ltd",
    "lsig": "AB86z5W38iEx_9mjnRFzmp68DR6h",
    "gps_coordinates": {
      "latitude": 53.9177131,
      "longitude": -2.1785891
    },
    "links": {
      "website": "http://xxx-xxxxxxx.com/"
    },
    "reviews_original": "No reviews",
    "reviews": 0,
    "address": "No ReviewsBarnoldswick"
  }
]
The Answer: "address" key possibly contains a residue. The correct value is probably "Barnoldswick". The residue is probably "No Reviews"
Wait for my instructions.

Далее следует запрос фактического JSON:

Do you think there are any keys that may contain falsely parsed information in the following array at the following possible keys:
"rating", "type", "years_in_business", "service_options", "hours", "reviews_original", "reviews", "address", "description", "price", "phone"

[JSON I want to check out for oddities]

Эти модели, учитывая их генеративные возможности, обеспечивают полезную обратную связь о точности проанализированных данных в таких ключах, как «рейтинг», «тип», «годы_в_бизнесе», «сервисные_опции», «часы», «отзывы_оригинал», «отзывы», « адрес», «описание», «цена», «телефон» и т. д.

Учитывая их генеративный характер, языковые модели генеративного ИИ, такие как GPT OpenAI, чат-боты, такие как ChatGPT, или проект Google AI Labs в бета-версии Bard, могут давать недостаточно информации в своих ответах, что требует нескольких дополнительных подсказок или некоторой дополнительной интерпретации их вывода. Несмотря на это, он оказался эффективной альтернативой ручной проверке, облегчая процесс выявления потенциальных ошибок или несоответствий в наших JSON.

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

Главной целью этих модульных тестов, как и любых других модульных тестов, было тщательное изучение различных вариантов поведения в различных исправлениях. Исправления могут быть локализованы в геме google-local-results-ai-parser или более широко основаны на стеке. Внедрив эту строгую процедуру тестирования, мы обеспечиваем устойчивость и надежность нашей функции, что позволяет ей постоянно обеспечивать улучшенные и точные результаты.

Выделенные страницы и примеры документации

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

Для этой цели мы разработали две новые специальные страницы. На первой странице представлен всесторонний обзор нашей новой функции — поиска с помощью AI Powered Parser. В нем описываются возможности функции, подробно описывается ее работа и представляются возможные варианты использования. Мы считаем, что это позволит нашим пользователям понять ценность этой функции и представить, как она может наилучшим образом вписаться в их уникальные рабочие процессы. Вот несколько визуальных примеров:

Отказ от ответственности

На этих страницах ведется работа. Окончательная версия этих страниц может отличаться от представленной здесь.

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

Кроме того, мы дополнили нашу документацию новыми примерами двух наших ключевых API: API результатов Google Local Pack от SerpApi и API результатов Google Local от SerpApi, чтобы помочь нашим пользователям понять, как эффективно использовать эти API.

В заключение, мы постоянно стремимся поддерживать нашу документацию в актуальном состоянии и удобной для пользователя, зная, что это позволяет нашим пользователям использовать наши предложения в полной мере. Независимо от того, являетесь ли вы новичком в SerpApi или опытным пользователем, эти ресурсы предоставят ценные рекомендации в вашем путешествии по использованию AI Powered Parser Search или любого из нашего обширного набора API в целом.

Краткий обзор предыдущей попытки

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

Вы можете найти некоторые из старых блогов из серий, посвященных этой проблеме, по адресу:

Ключевые уроки из прошлых ошибок

Экстернализация модели

Одной из основных проблем с моим предыдущим подходом было локальное обучение модели. Мне пришлось принять во внимание массу проблем с оптимизацией, которые нужно было решить. На первый взгляд может показаться, что локализация ситуации в стеке — отличный способ избежать проблемы. Это может дать вам доступ к лучшим возможностям тестирования и отладки. Но это просто оказалось неправильным.

Мне пришлось довольствоваться более эффективной моделью времени и производительности, поскольку она была локальной. Одного этого ограничения достаточно, чтобы создать еще большую путаницу при разработке модели. Например, поскольку использовалась модель RNN, когда я увеличил размер набора данных, он стал медленнее. Когда я попытался охватить случаи в расширенном наборе данных с меньшей производительностью, я потерял точность. Это был порочный круг. Не говоря уже об отсутствии документации по машинному обучению в Rails.

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

Не изобретайте велосипед

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

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

В этом подходе я использовал модель трансформеров под названием bert-base-uncased. Он уже был обучен на относительно большом английском корпусе, и все, что мне нужно было сделать, это настроить его под наши нужды. Это значительно повысило не только простоту обучения модели, но и производительность по точности. Получившаяся в результате модель bert-base-local-results была более функциональной, простой в реализации и понятной.

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

Предвидеть конфликты с другими частями

Еще одна проблема, с которой я столкнулся в предыдущем решении, заключалась в количестве параллельного прогресса в процессе рецензирования. Эти части в конечном итоге создали больше проблем, чем решения.

Например, я попытался использовать логику DRY (не повторяйся) Rails и отделил извлечение общих частей со старыми парсерами в отдельную функцию, которая будет использоваться обоими парсерами. К тому времени, когда я пересмотрел предыдущее решение, даже расположение файлов было обновлено, и оно блокировало любые попытки указать, как оно работает.

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

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

Улучшайте продукт, а не заменяйте его

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

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

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

Воздержитесь от автоматизации каждого аспекта

Я попытался создать полностью автоматическое решение с нуля в предыдущем решении. От сбора данных с помощью SerpApi из стека Rails, подачи их непосредственно в загрузчик обучающего набора данных, процесса обучения, создания таблицы для значений отладки обучения, таких как функция потерь и показатели успеха и т. д.

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

Например, я не хотел, чтобы мы загружали библиотеку Torch на каждый сервер. Поэтому я разработал систему, в которой можно разработать модель в Torch в формате PT, а затем преобразовать ее в файл ONNX. У Rails было несколько облегченных опций для запуска моделей ONNX. Но так как я не очень хорошо разбирался в написании кода для преобразования PT в ONNX, мне пришлось прибегнуть к скрипту Python в стеке Rails.

В этом решении я попытался полностью автоматизировать процесс синтаксического анализа только с помощью гема google-local-results-ai-parser.

Я также предложил решение для автоматизации обслуживания модели с помощью google-local-results-ai-server, но это необязательно. Люди по-прежнему могут развертывать свои собственные решения в Microsoft Azure, Amazon Sagemaker или в новом стартапе, который, по их мнению, им больше подходит.

Для обучения модели люди могут свободно выбирать, какой набор данных использовать или какую структуру для обучения, если они хотят улучшить или воспроизвести bert-base-local-results.

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

Систематически устраняйте недостатки модели

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

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

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

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

Кроме того, поскольку модель размещалась на другом сервере, я легко мог проверить небольшие записи и их классификацию, выполненную моделью. Даже использование Free Inference API от Huggingface на странице модели было чрезвычайно полезным при отладке различных недостатков.

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

Разделите разные части на части и откройте исходный код большинства из них

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

В этом решении я разбил его на 4 части, как я слегка упомянул выше:

  • Код для обработки драгоценного камня и предоставления улучшенных результатов в Rails.
  • The AI ​​Powered Parser Gem в google-local-results-ai-parser
  • Серверное решение для обслуживания модели, которую я предоставил в качестве альтернативы на google-local-results-ai-server.
  • Размещенная модель bert-base-local-results

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

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

Хотя я благодарен всем читателям, прочитавшим мою предыдущую работу, эта ситуация вызвала второстепенную проблему; смягчение распространения решения по сравнению с выполнением фактической работы. Много раз, когда мне приходилось перефразировать себя в других сообщениях блога, это мешало мне развиваться.

В этом подходе различные компоненты имеют открытый исходный код, и для стека предназначен только второстепенный код. Таким образом, я могу выразить сложные детали того, как использовать google-local-results-ai-parser более продвинутым способом в его документации, подробные недостатки bert-base-local-results в карточке модели и т. д. Это по-прежнему создает больший корпус для аудитории. Но это также помогает мне снизить риски, сохраняя при этом лучший контроль в разных частях.

Кроме того, в случае, если эта работа не будет интегрирована, большая часть материалов будет доступна для общего пользования, а не по кусочкам, которые заинтересованные лица должны будут собрать самостоятельно.

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

Заключение

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

Повышение уровня кодирования

Спасибо, что являетесь частью нашего сообщества! Перед тем, как ты уйдешь:

  • 👏 Хлопайте за историю и подписывайтесь на автора 👉
  • 📰 Смотрите больше контента в публикации Level Up Coding
  • 💰 Бесплатный курс собеседования по программированию ⇒ Просмотреть курс
  • 🔔 Подписывайтесь на нас: Twitter | ЛинкедИн | "Новостная рассылка"

🚀👉 Присоединяйтесь к коллективу талантов Level Up и найдите прекрасную работу