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

Проект - Субтекст

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

Поиск подходящего API

Взглянув на несколько API, мы полны оптимизма. Были некоторые API-интерфейсы с очень чистой документацией и презентацией, у некоторых были бесплатные пробные версии, у некоторых была реализация на языках, которыми я владею. Однако редко я находил все три. Сначала меня заинтриговал API под названием ParallelDots, в нем, казалось, было множество различных инструментов, которые могли не только определять сантименты в тексте, но и преобладающие эмоции, включая сарказм, что является редкостью. Потратив так много времени на то, чтобы возиться с ним (невероятно весело играть с анализаторами текста, вы помните, насколько вы можете быть ребячливыми, и я очень рекомендую это), мы наконец решили реализовать его только для того, чтобы понять, что нам придется писать его с помощью Python. . Тупик. Вторым API-интерфейсом, который мы рассмотрели, был Aylien, API, который выглядел круто и имел приличную документацию, но, поигравшись с ним, мы поняли, что он не обязательно обнаруживает настроения в такой степени, как он определяет то, о чем вы говорите. Что-то, что могло бы быть полезно, если бы у нас было время перейти к продвинутым этапам в нашем приложении, возможно, имея возможность связать настроения с темой, а не с сообщением в целом. Третьим API, с которым мы решили работать, был Indico. Это сразу привлекло наше внимание из-за великолепной документации, которая показала, что его очень легко реализовать. Один простой вызов axios на их сервер, и мы встретим число от нуля до единицы, где ноль означает отрицательное значение, а один - положительный. Приняв во внимание, как мало времени у нас осталось, чтобы завершить наш проект, мы решили работать с ним. У него не было удивительного детектора сарказма, который был с параллельными точками или у вашего местного старшеклассника, но он был, по крайней мере, отправной точкой. После реализации мы запускали тесты только для того, чтобы понять, насколько на самом деле ошибочен API. До сих пор не решено, было ли это ошибкой в ​​API или технология анализа настроений еще не очень развита. Тем не менее, у нас был Indico и минимально жизнеспособный продукт.

Размышления

Совершая набег в странный мир API, важно задать себе ряд вопросов:

  1. У меня есть время интегрировать это в свое приложение? В этом вам может помочь понимание того, является ли документация ясной, краткой и доступной. Изучив документацию, вы сможете понять, какие языки могут хорошо сочетаться с API, и сузить круг вопросов, поможет ли это вам или отнимет больше времени, чем вы можете себе позволить.
  2. Есть ли у меня ресурсы, которые можно потратить на этот API? Очевидно, что время - очень ценный ресурс, однако многие из этих API могут иметь бесплатные пробные версии, основанные на использовании данных, обращениях API или ограниченных временных рамках. Создание небольшого проекта для добавления в мое портфолио означало, что количество обращений к API было приемлемым пределом для объема нашего проекта, однако, если пробная версия основана на временных рамках, скажем, четырнадцать дней или месяц, вы должны спросить себя, стоит ли этот API деньги.
  3. Делает ли этот API то, что я хочу? Вероятно, это самая простая проверка, но может потребоваться несколько минут, чтобы перебрать все модные словечки и фразы и понять: «Что ты вообще делаешь?»
  4. Делает ли этот API то, что я хочу… в достаточной степени? Между ненадежным анализом настроений, неспособностью распознать разрозненное отрицание («Ты не очень хороший API» против «Ты плохой API») или неспособность Чтобы распознать сарказм («Мне нравится, как вы говорите со мной свысока…»), скорее всего, ваш API может делать то, что вы хотите, но делает ли он это хорошо?

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