TG Telegram Group Link
Channel: Новое электричество
Back to Bottom
Друзья, наш знакомый ведёт отличный канал про hi-tech.

Всем, кто интересуется Data Science и ищет работу — рекомендуем подписаться на канал с лучшими вакансиями в области DS, Machine Learning, AI.

@datasciencejobs публикует узкоспециализированные и релевантные вакансии: ничего лишнего, только лучшие предложения от компаний и стартапов, по теме Data Science с обязательным указанием предлагаемой зарплаты.

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

Приходите в мир науки и искусственного интеллекта с лучшим источником вакансий индустрии!
👉🏻 https://hottg.com/datasciencejobs
#ai_trends
Друзья, начинаем серию постов про тренды в области AI в 2021 г.
Самые "горячие" технологии и стартапы на сегодняшний день - может быть полезно как для инвесторов, так и для AI-энтузиастов.

Сегодня поговорим про решения в области AI с низким кодом. Погнали!
Некоторое время назад главной библиотекой для глубинного обучения нейронных сетей был Tensorflow и мы посвятили ей цикл статей. Однако, жизнь не стоит на месте, и лидер сменился – сейчас им является PyTorch, библиотека с открытым кодом, созданная первоначально в Facebook AI Research lab (на всякий случай напомним, что Tensorflow разработка Google).

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

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

PyTorch, начало
PyTorch: Тензоры

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

Базово тензоры представляют собой массивы или матрицы произвольной размерности. Приведем простейшие примеры команд по созданию тензоров:
A = torch.tensor([3,4,5]) дает одномерный тензор размером 3
B = torch.tensor([[2,3],[1,4]]) – двумерный тензор размером [2,2].

Для тех, кто знаком с популярным питоновским пакетом Numpy, в этой части все будет абсолютно привычным. Кстати, операция перевода данных из массивов (“arrays”) Нампая в торчевские тензоры и обратно, возникает с очень большой регулярностью и работает очень эффективно.

Главным отличием тензоров является наличие градиента, а также их автоматический расчет. Тензоры, которые мы привели выше, были объявлены, а не рассчитаны, поэтому градиента у них нет - команда вывести на экран градиент тензора А (print(A.grad)) выдаст значение None («не существует»).

Все меняется, когда мы переходим от «заданных» к «рассчитанным» тензорам. Вернемся к командам, которые считают результат «прохода вперед» по нейронной сети куска данных, а также размер потерь по сравнению с правильным значением:
Output = model(batch)
Loss = loss_function(output, target)

Результатом второй операции будет тензор размерности 0 (фактически число), но если мы выведем его на экран, получится что-то вроде следующего: tensor(0.23, grad_fn =<MSELossBackward>). Размер потерь «понимает», что потом придется считать градиент параметров и «помнит» функцию, по которой это будет делаться.

С этого момента при исполнении всего одной команды Loss.backward() будут автоматически рассчитаны градиенты для всех параметров модели. После нее если Params – тензор с параметрами модели, то команда print(Params.grad) выдаст тензор такого же размера с градиентами параметров.

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

Быстрота работы и простота в использовании – в конечном итоге, именно это и нужно от библиотеки для машинного обучения, и PyTorch полностью соответствует! В следующий раз поговорим о взаимодействии библиотеки с GPU, так как именно на видеокартах происходит почти вся работа (спойлер – оно также организовано максимально просто и удобно).
PyTorch: строим модель

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

Сегодня поговорим о том как собственно строятся нейронные сети на PyTorch. Ведь перед тем, как модель обучить, нужно ее составить.

Любая нейронная сеть состоит из набора слоев, через которые будет проходить каждый кусок данных (батч). В PyTorch собраны готовые классы для очень многих видов слоев. Рассмотрим на примере, как это работает. Приведем пример слоев для простой модели классификации с одним скрытым слоем и тремя классами, в которые классифицируются объекты:

(1) Linear (in_features = 100, out_features = 10) #линейный слой, который берет на входе начальные данные, состоящие из 100 параметров (векторы, длиной 100) и выдает на выходе 10 параметров (векторы длиной 10);
(2) ReLU() #активационная функция. Ее смысл в том, что она преобразует линейные данные в нелинейную зависимость. За счет этого модель можно оптимизировать с помощью дифференциального исчисления (градиентный спуск и другие схожие методы);

(3) Linear(in_features = 10, out_features = 3) #линейный слой, берущий на входе 10 параметров и отдающий 3. 10 параметров были получены из первого слоя и преобразованы активационной функцией;
(4) ReLU() #новая активационная функция;
(5) Softmax() #финальный классифицирующий слой. На входе получает 3 величины, означающие "оценки" каждого класса и на основании них считает вероятности попаданий в каждый класс (если оценки классов 6, 5 и 4, то вероятности попадания в классы будут 67%, 24% и 9% соответственно; так обычно намного точней, чем считать, что наблюдение всегда попадает в 1й класс).

Мы описали начинку нашей модели, как же теперь объяснить системе, как её "склеить"? В PyTorch есть крайне удобный инструмент nn.Sequential. Его можно задать как последовательность слоев (nn.Sequential(layer1, layer2, ...)и не придется делать ничего больше - система сама поймет, как данные будут проходить слои. Это правда очень удобно!

Альтернативный, чуть более сложный способ, использовать nn.Module. В этом случае помимо создания слоев придется самому расписывать метод forward - основной метод, определяющий как кусочки данных будут проходить по модели.

В общем, составить модель в PyTorch совсем несложно! Другое дело, составить "правильную" модель, максимально подходящую под задачу - здесь потребуется мастерство, опыт, а также часто большое количество проб и ошибок. Хорошая новость в том, что благодаря удобству пакета, эксперименты в PyTorch можно проводить быстро!
PyTorch: связь с GPU

В предыдущих постах серии про PyTorch мы:
- разобрали общую логику кода;
- поговорили об основном виде данных – тензорах;
- немного углубились в построение моделей.

Сегодня заключительный (по крайней мере на какое-то время) пост серии, и он посвящен тому, как использовать GPU при работе с PyTorch. Основная мысль – это очень просто и удобно! Теперь некоторые детали.

У основных торчевских объектов – нейронных сетей или тензоров с данными – есть атрибут “device”, указывающий какое устройство с ним в настоящее время может взаимодействовать, процессор или видеокарта (GPU). В случае, если видеокарт подключено несколько, то будет указано, какая именно видеокарта, они все пронумерованы, начиная с 0.

Основное удобство в том, что объекты очень легко перемещать от одного устройства к другому. Для этого можно использовать метод to (с указанием куда именно переместить) или методы cuda() для перемещения на видеокарту Nvidia и cpu для перемещения на процессор. Все очень просто, можно двигать объекты сколько угодно раз.

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

Следующем важным элементом, упрощающим работу, являются “загрузчики данных” (dataloaders). Они позволяют разбивать большие наборы данных на куски (“батчи”) с которыми будет иметь дело модель.

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

Для большинства пользователей это фактически все, что нужно знать про взаимодействие системы с видеокартами. Несколько простых команд и система работает. Конечно, есть сложные случаи, когда не хватает памяти GPU или работа идет недопустимо медленно и стоит вопрос как ее ускорить. В этих случаях может потребоваться более глубокое понимание происходящего. Но и с приведенным минимумом можно качественно работать и решать практические задачи!
#funky_ai

AI vs Коррупция.

По данным Международного валютного фонда (МВФ), ущерб от коррупции во всем мире составляет $2 трлн. в год. В свою очередь, Организация Объединенных Наций (ООН) оценивает этот показатель в $3,6 трлн. в год.

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

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

В 2012 году в Китае был запущен проект Zero Trust. При помощи AI система анализировала информацию из более чем 150 закрытых баз данных с результатами работы миллионов чиновников. Технология сопоставляла работу чиновников с работой коллег и выявляла возможные случаи коррупции, растрат и кумовства.

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

За более чем пять лет работы Zero Trust помог поймать 8721 чиновника, замешанного в растратах, кумовстве и коррупции, при том, что проект работал лишь в 30 не самых густонаселенных округах и городах Китая.

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

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

Еще один проект Rosie-de-serenata - нейросеть, способная использовать открытые данные, связанные с квотами возмещения представительских расходов (ланчи, билеты на поезда, бензин) представителям бразильского Конгресса, и выявлять законные или подозрительные расходы.

С самого начала исходный код был открыт и опубликован на GitHub, чтобы обеспечить возможность репликации по всему миру. Кроме того, команда создала веб-сайт под названием Jarbas.com, который позволяет любому просматривать и разбираться в данных, собранных Rosie о подозрительных расходах.

Несмотря на то, что такие AI-технологии находятся еще на ранней стадии внедрения, при правильной разработке такие инструменты могут помочь заменить устаревшие и ненадежные антикоррупционные процессы беспристрастными нейросетями с беспрецедентной скоростью и вычислительными возможностями. Дело за малым - нужна политическая воля :)
Многие подписчики заметили, что мы снизили частоту постов последнее время. Всё потому, что наша команда с головой погрузилась в AI Tech-стартап, и мы очень близки к запуску!

Подписчики НЭ могут первыми посмотреть Демо нашего продукта — персонального продакт менеджера для фаундеров на основе Искусственного Интеллекта, и дать обратную связь, которую мы обязательно учтём перед релизом!

Получить Демо в pdf формате можно по ссылке.
Спасибо всем, кто посмотрел наше Демо, вы очень помогаете нам становиться лучше!
А сегодня поговорим об общих правилах, соблюдение которых позволит вам строить эффективные модели машинного обучения.

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

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

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

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

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

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

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

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

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

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

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

На сегодня все, хорошей вам рабочей недели! :)
#funky_ai
AI в индустрии онлайн-казино

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

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

Обслуживание клиентов
Не секрет, что при общении с клиентами онлайн-казино, основная нагрузка ложится на чат-ботов. AI использует Обработку Естественного Языка (NLP), для изучения и извлечения информации из устных и письменных слов людей.

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

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

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

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

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

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

Расчет коэффициентов
Традиционно казино использовали высококвалифицированных актуариев, чтобы они считали вероятности и помогали соответствовать слогану "казино всегда выигрывает". Тем не менее, этот процесс медленный и дорогостоящий. Вместо этого AI может анализировать тысячи транзакций за доли секунды и, исходя из этого, экстраполировать результаты для подсчета соответствующих коэффициентов.
Новое электричество pinned «Многие подписчики заметили, что мы снизили частоту постов последнее время. Всё потому, что наша команда с головой погрузилась в AI Tech-стартап, и мы очень близки к запуску! Подписчики НЭ могут первыми посмотреть Демо нашего продукта — персонального продакт…»
Летом Цукерберг в обращении к сотрудникам Facebook сказал, что планирует не просто развивать социальные сети, но собирается превратить компанию в оператора на рынке метавселенной. Затем он с большим увлечением рассказывал об этом в подкасте The Verge и вообще много общался с медиа.

Кажется, что концепция метавселенной может стать the next big thing после AI (который, кстати, в 2017 году популяризовал Сундар Пичаи, лидер другого техгиганта), ведь ею занимается Facebook, имеющий огромную капитализацию и ресурсы. Наверняка и другие FAMGA-компании не захотят отставать.

Что такое метавселенная? Это объединение, суперпозиция мира физического, реального — и виртуального: мир, где границы между реальностью и виртуальностью стираются.

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

Зачем метавселенная нужна Facebook? Марк говорит о том, что она даст равные возможности людям из разных точек планеты: доступ к образованию, к работе, к продуктам, но, конечно, важно и то, что это огромный новый неосвоенный рынок, потенциальные триллионы долларов в value.

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

В следующий раз поговорим, где ещё виртуальность вплетается в реальность, и как это может развиваться дальше.
Понравился пост?
Сегодня продолжим разговор про метавселенную.

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

Сейчас для доступа в виртуальность мы используем прежде всего смартфоны, и кажется, что это довольно неэффективная штука — сосредотачивать такие большие возможности в маленьком светящемся прямоугольнике: технологии позволяют создавать куда более полноценные миры. Мы умеем делать реалистичное 3D, мы можем быстро передавать большие объёмы данных благодаря интернету — вопрос в том, как всё это передать нам в глаза (ну и вообще в голову).

Технологии VR и AR — важный двигатель метавселенной, и именно поэтому, вероятно, Facebook купил и активно развивает Oculus VR, занимающуюся шлемами виртуальной реальности. Раньше они позиционировались как устройства для геймеров, но, кажется, могут использоваться намного шире.

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

Раньше мы звонили близким в другой город по междугородней связи, затем появились мобильные телефоны, затем — видеозвонки. Скоро мы сможем вместе встречаться в виртуальной комнате, сидеть рядом. Потом мы научимся передавать и чувствовать прикосновения, ощущать запахи — наши виртуальные встречи с близкими будут всё более близкими к встречам вживую.

Кажется, что с участием Facebook все эти штуки полноценно появятся в нашей жизни уже в ближайшие 3-5 лет.

Кстати, кроме уже упоминавшегося подкаста The Verge рекомендую послушать подкаст о метавселенной Себранта — мне он отлично зашёл.

А вы слышали про метавселенную?
Понравился пост?
#funky_ai

ᛗ ᚫᚾᛞᛟ
Последние исследования показывают, что на большинстве когда-либо существовавших языков больше не говорят. Десятки из этих мертвых языков также считаются потерянными, или "нерасшифрованными", то есть мы не знаем достаточно об их грамматике, лексике или синтаксисе, чтобы понимать их тексты.

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

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

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

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

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

В дальнейшей работе команда надеется расширить свою работу, выйдя за рамки акта соединения текстов с родственными словами в известном языке - новый подход команды предполагает выявление семантического значения слов, даже если непонятно, как их читать.
Понравился пост?
HTML Embed Code:
2024/05/15 20:32:19
Back to Top