Forwarded from People Analytics
📌 Классифицируем отзывы сотрудников о работодателе с помощью R, rollama и Ollama
В предыдущем посте мы научились устанавливать и пользоваться LLM локально. Теперь знакомимся с практическим примером.
@people_analytics
#LLM #БЯМ #AI #R #people_analytics #отзывы_сотрудников
В предыдущем посте мы научились устанавливать и пользоваться LLM локально. Теперь знакомимся с практическим примером.
@people_analytics
#LLM #БЯМ #AI #R #people_analytics #отзывы_сотрудников
Teletype
Классифицируем отзывы сотрудников о работодателе с помощью R, rollama и Ollama
Анализ отзывов сотрудников помогает HR-менеджерам выявлять ключевые проблемы в компании, оценивать уровень удовлетворенности персонала...
Что ни говори, а инфраструктура под недружественные интеллекты очень дружественная, и для тех, кому машина нужна не под капотом возиться, а ехать, Хадли делает классные продукты.
Его
Записывайте: перечислить файлы, придумать тип данных для выхода, запустить чат. На выходе таблица: в одном столбце текст, в другом — перевод.
В промышленных масштабах пока не пробовала.
Его
{ellmer}
позволяет без особых усилий извлекать структурированные данные из изображений. Что это такое — решайте сами; в моем случае — распознанный текст и перевод. OpenAI: распознавание на 5, перевод на русский на 3+.Записывайте: перечислить файлы, придумать тип данных для выхода, запустить чат. На выходе таблица: в одном столбце текст, в другом — перевод.
library(ellmer)
library(tidyverse)
# придумываем, какие нужны столбцы
type_text <- type_object(
"Latin text and Russian translation of the text. Occasionally, you might see some Ancient Greek.",
text = type_string("Latin text"),
translation = type_string("Russian translation")
)
# список изображений
my_images <- list.files(pattern = "png")
# рабочая функция для purrr
process_image <- function(image_path) {
response <- chat$extract_data(
content_image_file(image_path),
type = type_text
)
return(response)
}
# еще спроси, а где здесь вожжи
all_responses <- map_dfr(my_images, process_image)
В промышленных масштабах пока не пробовала.
RAntiquity
Сегодня пришли результаты студенческой оценки преподавания (СОП), из которых следует, что с первым своим курсом по программированию на R я вроде бы справилась. Спасибо, дорогие студенты, за ваши отзывы. Я их все прочитала, а некоторые даже по два раза 🧡
Недавно пришли отзывы студентов на первую часть курса “Компьютерный анализ текста” #tar2024 , общая оценка 4.93 из 5, мой личный рекорд.
Очень приятно, что курс приносит удовлетворение не только мне — и, конечно, такие отзывы вдохновляют и заставляют стремиться к большему.
На облаке слов — основные биграмы из отзывов. Спасибо 🤗
Очень приятно, что курс приносит удовлетворение не только мне — и, конечно, такие отзывы вдохновляют и заставляют стремиться к большему.
На облаке слов — основные биграмы из отзывов. Спасибо 🤗
Латинский гиперкуб — обобщение латинского квадрата Эйлера на произвольное число измерений. Используется для поиска оптимальных параметров в МО. А латинским называется потому, что Эйлер (про которого недавно писал дружественный канал) использовал латинские буквы. Пакет {dials} версии 1.3.0 отказался от такого названия функции, а жаль. Так в нашей жизни стало еще меньше латыни.
Вообще в МО есть множество _просто красивых_ вещей, прекрасных самих по себе, а не ради пресловутого скоринга.
Вообще в МО есть множество _просто красивых_ вещей, прекрасных самих по себе, а не ради пресловутого скоринга.
В копилку инструментов и методов цифровой истории философии: https://www.group-telegram.com/Philosophytoday/15267 Снова сети. Эyхенио Петрович, один их хедлайнеров проекта, благодаря @curiousonya уже некоторое время в поле моего зрения, в 2022 г. у него была любопытная статья о сетях благодарностей, о которой см. https://www.group-telegram.com/curiousonya/217 А вот ссылка на сам проект: https://edhiphy.org/network Очень милое онлайн-приложение. Молодцы, чо.
Telegram
PhilosophyToday
Библиометрия за пределами цитирования: индекс упоминаний
Современные практики цитирования появились относительно недавно, из-за чего научные базы данных сталкиваются с проблемой неполноты учтенных ссылок: например, WoS гарантирует достоверность ссылок…
Современные практики цитирования появились относительно недавно, из-за чего научные базы данных сталкиваются с проблемой неполноты учтенных ссылок: например, WoS гарантирует достоверность ссылок…
RAntiquity
В копилку инструментов и методов цифровой истории философии: https://www.group-telegram.com/Philosophytoday/15267 Снова сети. Эyхенио Петрович, один их хедлайнеров проекта, благодаря @curiousonya уже некоторое время в поле моего зрения, в 2022 г. у него была любопытная статья…
Please open Telegram to view this post
VIEW IN TELEGRAM
Кажется, знаешь человека давно, уже и Цицерона вместе читали, и Цезаря, и Лукреция, и даже немного Августина — и тут выясняется, что этот человек опубликовал огненный лонгрид на “Системном блоке” про цифровые просопографии и графовые модели в изучении античности. https://www.group-telegram.com/antibarbari/3006
Тут и методология исторической науки, и реляционные БД, и несколько фирменных шуток от @patroclusisnotdead Просто именины сердца, Ксюша, поздравляю!
Тут и методология исторической науки, и реляционные БД, и несколько фирменных шуток от @patroclusisnotdead Просто именины сердца, Ксюша, поздравляю!
Telegram
Antibarbari HSE
🖥 Жизнь и связи древних римлян: о чем могут рассказать просопографические базы данных?
Наш постоянный автор, а также руководитель и участник семинаров Ксения Дмитриева @patroclusisnotdead рассказала в “Системном Блоке” о том, как используются цифровые базы…
Наш постоянный автор, а также руководитель и участник семинаров Ксения Дмитриева @patroclusisnotdead рассказала в “Системном Блоке” о том, как используются цифровые базы…
RAntiquity
GIF
Студенты прислали валентинку, сделанную в
{ggplot}
. А вот и источник! Невероятно трогательно, спасибо 🥰🥰🥰Как объяснить герменевтический круг аналитику данных
Герменевтический круг — это философская концепция, описывающая процесс понимания текста, явления или смысла, при котором целое интерпретируется через его части, а части – через целое. Это означает, что понимание любого отдельного элемента требует понимания контекста, а сам контекст, в свою очередь, формируется через понимание отдельных элементов.
Как правило, приступая к чтению текста, мы имеем очень отдаленное представление о «целом», и из этого несовершенного представления сооружаем такое же несовершенное понимание «частей», которое, однако, позволяет немного уточнить исходное «целое», а от него опять вернуться к «частям». Так мы двигаемся туда-сюда (или по кругу) очень долго, пока, наконец, все или почти все не складывается как надо.
Как понять, что это произошло? По-моему, так: каждая новая итерация уже не производит значительных смысловых сдвигов, плюснеземной свет.
А похоже это на алгоритм кластеризации. Сначала каждому наблюдению присваивается случайно выбранное число из интервала от 1 до K (число кластеров). Это исходные метки. Дальше вычисляется центроид для каждого из кластеров (это мы вернулись к «целому»). Центроид k-го класса – вектор из p средних значений признаков, описывающих наблюдения из этого кластера. Идем обратно к «частям»: каждому наблюдению присваивается метка того кластера, чей центроид находится ближе всего к этому наблюдению. Повторяем шаги 2-3 до тех пор, пока метки классов не перестанут изменяться.
А еще это похоже на градиентный спуск и постепенную минимизацию функции потерь, но эту метафору вы разверните сами. Правда, в искусстве интерпретации «алгоритму» бывает трудно остановиться, так что весь Google Scholar переполнен публикациями, которые уводят вас все дальше от наилучшего прочтения.
Осталось найти аналитика данных, которому это интересно.
Герменевтический круг — это философская концепция, описывающая процесс понимания текста, явления или смысла, при котором целое интерпретируется через его части, а части – через целое. Это означает, что понимание любого отдельного элемента требует понимания контекста, а сам контекст, в свою очередь, формируется через понимание отдельных элементов.
Как правило, приступая к чтению текста, мы имеем очень отдаленное представление о «целом», и из этого несовершенного представления сооружаем такое же несовершенное понимание «частей», которое, однако, позволяет немного уточнить исходное «целое», а от него опять вернуться к «частям». Так мы двигаемся туда-сюда (или по кругу) очень долго, пока, наконец, все или почти все не складывается как надо.
Как понять, что это произошло? По-моему, так: каждая новая итерация уже не производит значительных смысловых сдвигов, плюс
А похоже это на алгоритм кластеризации. Сначала каждому наблюдению присваивается случайно выбранное число из интервала от 1 до K (число кластеров). Это исходные метки. Дальше вычисляется центроид для каждого из кластеров (это мы вернулись к «целому»). Центроид k-го класса – вектор из p средних значений признаков, описывающих наблюдения из этого кластера. Идем обратно к «частям»: каждому наблюдению присваивается метка того кластера, чей центроид находится ближе всего к этому наблюдению. Повторяем шаги 2-3 до тех пор, пока метки классов не перестанут изменяться.
А еще это похоже на градиентный спуск и постепенную минимизацию функции потерь, но эту метафору вы разверните сами. Правда, в искусстве интерпретации «алгоритму» бывает трудно остановиться, так что весь Google Scholar переполнен публикациями, которые уводят вас все дальше от наилучшего прочтения.
Осталось найти аналитика данных, которому это интересно.
Ютуб все понял про редактора этого канала и порекомендовал видео: НИЧЕГО НЕ ДАНО А НАДО. Красивая, кстати, задача, но лучше всего в ней название. Эпиграф к книге жизни.
YouTube
Задача, в которой ничего не дано, а надо найти угол
Телеграм "Этому не учат в школе" — https://www.group-telegram.com/yellow_school
Найди угол альфа, если прямая a параллельна прямой b, а остальные данные отмечены на рисунке.
Найди угол альфа, если прямая a параллельна прямой b, а остальные данные отмечены на рисунке.
Между тем, февральское обновление в пакете
{ellmer}
: появились долгожданные функции content_pdf_file()
and content_pdf_url()
. Правда, пока их поддерживают не все модели, только Gemini & Claude. Будем ждать развития событий!ellmer.tidyverse.org
Changelog
Forwarded from Гуманитарии в цифре
Весна все ближе: и мы готовимся к путешествию в «Лес за деревьями…» с уже знакомой постоянным участникам онлайн-семинара «Цифровая среда» Ольгой Алиевой.
Кандидат филологических наук, доцент Школы философии и культурологии Факультета гуманитарных наук НИУ ВШЭ, автор телеграм-канала RAntiquity («Об античности на языке R и не только») Ольга Валерьевна Алиева расскажет в своем докладе об особенностях методов консенсусных деревьев и сетей, их реализациях в программной среде R и результатах применения к анализу платоновского корпуса.
🔜 Присоединяйтесь к семинару в следующую среду.
Дата: 5 марта
Начало: 14.00 (мск)/ 18.00 (крск)
🔗 Зарегистрироваться и добавить в календарь здесь ←
#цифроваясреда #смотреть #слушать #платоноведение #языкR
Кандидат филологических наук, доцент Школы философии и культурологии Факультета гуманитарных наук НИУ ВШЭ, автор телеграм-канала RAntiquity («Об античности на языке R и не только») Ольга Валерьевна Алиева расскажет в своем докладе об особенностях методов консенсусных деревьев и сетей, их реализациях в программной среде R и результатах применения к анализу платоновского корпуса.
Дата: 5 марта
Начало: 14.00 (мск)/ 18.00 (крск)
🔗 Зарегистрироваться и добавить в календарь здесь ←
#цифроваясреда #смотреть #слушать #платоноведение #языкR
Please open Telegram to view this post
VIEW IN TELEGRAM
RAntiquity
Весна все ближе: и мы готовимся к путешествию в «Лес за деревьями…» с уже знакомой постоянным участникам онлайн-семинара «Цифровая среда» Ольгой Алиевой. Кандидат филологических наук, доцент Школы философии и культурологии Факультета гуманитарных наук НИУ…
одна алиева весны не делает, но надо же с чего-то начинать 😅
RAntiquity
Весна все ближе: и мы готовимся к путешествию в «Лес за деревьями…» с уже знакомой постоянным участникам онлайн-семинара «Цифровая среда» Ольгой Алиевой. Кандидат филологических наук, доцент Школы философии и культурологии Факультета гуманитарных наук НИУ…
Дорогие друзья, сегодня в 14-00 мск презентую итоги стилометрического исследования платоновского корпуса, которым я занималась последние несколько лет.
Это последняя статья в серии, которая, по моему замыслу, должна подвести некоторый итог всей работе. После этого, надеюсь, в моей жизни наступит сплошнаяметафизика .
Судя по рецензии, которую я на днях получила, поспорить сегодня будет о чем. Зарегистрироваться и подключиться можно по ссылке выше.
В согласии с принципами reproducible research делюсь репозиторием с данными, кодом, а также ссылкой на сегодняшнюю презентацию: https://github.com/locusclassicus/plato_new_model_2024
Это последняя статья в серии, которая, по моему замыслу, должна подвести некоторый итог всей работе. После этого, надеюсь, в моей жизни наступит сплошная
Судя по рецензии, которую я на днях получила, поспорить сегодня будет о чем. Зарегистрироваться и подключиться можно по ссылке выше.
В согласии с принципами reproducible research делюсь репозиторием с данными, кодом, а также ссылкой на сегодняшнюю презентацию: https://github.com/locusclassicus/plato_new_model_2024
GitHub
GitHub - locusclassicus/plato_new_model_2024: Project presentation
Project presentation. Contribute to locusclassicus/plato_new_model_2024 development by creating an account on GitHub.
🔍 Как собрать датасет на основе библиографических данных Скопуса*
Понадобятся:
- API (https://dev.elsevier.com/),
- VPN
- пакет {rscopus} и обычный {tidyverse}
Отправляем запрос. Я ищу по слову Plato в заголовке и предметной области ARTS. Уменьшите max_count или count, если функция капризничает.
Тайдифицируем. Я забираю не все поля, посмотрите сами, что вам может быть интересно. Векторизованное переименование всех столбцов — разве это не красиво?
Повторить. Забрав первую сотню/тысячу описаний, можно использовать аргумент start = 1001 и т.п. Так вы начнете выгрузку со второй тысячи. Полученные датафреймы легко слепить воедино.
Исследовать. У меня получилось 5000 публикаций со словом Plato в заглавии, от 2025 до 1973 г. Что с ними делать, пока не решила. Может и не буду ничего делать🤩 Публиковать датасеты Elsevier не разрешает, так что я просто сижу ищу друзей и знакомых
Понадобятся:
- API (https://dev.elsevier.com/),
- VPN
- пакет {rscopus} и обычный {tidyverse}
install.packages("rscopus")
library(rscopus)
library(tidyverse)
Sys.setenv(Elsevier_API = "0a0a0a0a0a0")
# проверяем
have_api_key()
Отправляем запрос. Я ищу по слову Plato в заголовке и предметной области ARTS. Уменьшите max_count или count, если функция капризничает.
res = scopus_search(query = "TITLE(Plato) AND SUBJAREA(ARTS)", max_count = 1000, count = 10, view = "STANDARD")
Тайдифицируем. Я забираю не все поля, посмотрите сами, что вам может быть интересно. Векторизованное переименование всех столбцов — разве это не красиво?
entries_df <- res$entries |>
gen_entries_to_df()
entries_df <- entries_df$df |>
select(`dc:title`, `dc:creator`,
`prism:publicationName`, `prism:coverDate`,
`subtypeDescription`) |>
rename_with(~ str_remove(., "^.*:"))
Повторить. Забрав первую сотню/тысячу описаний, можно использовать аргумент start = 1001 и т.п. Так вы начнете выгрузку со второй тысячи. Полученные датафреймы легко слепить воедино.
Исследовать. У меня получилось 5000 публикаций со словом Plato в заглавии, от 2025 до 1973 г. Что с ними делать, пока не решила. Может и не буду ничего делать
Please open Telegram to view this post
VIEW IN TELEGRAM
Elsevier
Elsevier Developer Portal
Elsevier APIs Developer Portal
RAntiquity
🔍 Как собрать датасет на основе библиографических данных Скопуса* Понадобятся: - API (https://dev.elsevier.com/), - VPN - пакет {rscopus} и обычный {tidyverse} install.packages("rscopus") library(rscopus) library(tidyverse) Sys.setenv(Elsevier_API = "0a0a0a0a0a0")…
Ну вот например. И это только публикации с вхождением “Платон” в названии, то есть лишь некоторая часть того, что о нем пишется.
Сравниваем тексты с
Ссылка на техническую документацию. Результат можно встраивать в markdown и shiny.
p.s. первая-то редакция получше будет
{diffobj}
ed1 <- "В начале было Слово, и Слово было у Бога, и Слово было Бог."
ed2 <- "Вначале было Слово, и Слово было к Богу, и Бог был Слово."
# Визуализация изменений
library(diffobj)
diffChr(ed1, ed2, mode = "sidebyside")
Ссылка на техническую документацию. Результат можно встраивать в markdown и shiny.
p.s. первая-то редакция получше будет
Гераклит называл Пифагора κοπίδων ἀρχηγός, “предводитель мошенников”, а всякий уважающий себя философ, как говорил Ямвлих, должен взять себе в руководители “родоначальника и отца божественной философии”.
Поэтому сегодня маленькая хитрость для тех, кто уже научился реферировать статьи с чатом GPT, но еще не придумал, как безболезненно скормить ему монографию. Для этого придется разрезать ее на главы, и самый простой способ это сделать в R — пакет
Дальше вы знаете что делать 🐳 Но, как показывает практика, надо хорошо подумать над промптом, т.е. по сути сначала прочесть источник, а потом уже задавать вопросы машине. Иначе получится обо всем и ни о чем.
Поэтому сегодня маленькая хитрость для тех, кто уже научился реферировать статьи с чатом GPT, но еще не придумал, как безболезненно скормить ему монографию. Для этого придется разрезать ее на главы, и самый простой способ это сделать в R — пакет
{qpdf}
library(qpdf)
pdf_subset(input = “book.pdf",
output = "chapter.pdf",
pages = 10:20)
Дальше вы знаете что делать 🐳 Но, как показывает практика, надо хорошо подумать над промптом, т.е. по сути сначала прочесть источник, а потом уже задавать вопросы машине. Иначе получится обо всем и ни о чем.