Telegram Group Search
Что ни говори, а инфраструктура под недружественные интеллекты очень дружественная, и для тех, кому машина нужна не под капотом возиться, а ехать, Хадли делает классные продукты.

Его {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 Очень милое онлайн-приложение. Молодцы, чо.
Кажется, знаешь человека давно, уже и Цицерона вместе читали, и Цезаря, и Лукреция, и даже немного Августина — и тут выясняется, что этот человек опубликовал огненный лонгрид на “Системном блоке” про цифровые просопографии и графовые модели в изучении античности. https://www.group-telegram.com/antibarbari/3006

Тут и методология исторической науки, и реляционные БД, и несколько фирменных шуток от @patroclusisnotdead Просто именины сердца, Ксюша, поздравляю!
RAntiquity
GIF
Студенты прислали валентинку, сделанную в {ggplot}. А вот и источник! Невероятно трогательно, спасибо 🥰🥰🥰
Как объяснить герменевтический круг аналитику данных

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

Как правило, приступая к чтению текста, мы имеем очень отдаленное представление о «целом», и из этого несовершенного представления сооружаем такое же несовершенное понимание «частей», которое, однако, позволяет немного уточнить исходное «целое», а от него опять вернуться к «частям». Так мы двигаемся туда-сюда (или по кругу) очень долго, пока, наконец, все или почти все не складывается как надо.

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

А похоже это на алгоритм кластеризации. Сначала каждому наблюдению присваивается случайно выбранное число из интервала от 1 до K (число кластеров). Это исходные метки. Дальше вычисляется центроид для каждого из кластеров (это мы вернулись к «целому»). Центроид k-го класса – вектор из p средних значений признаков, описывающих наблюдения из этого кластера. Идем обратно к «частям»: каждому наблюдению присваивается метка того кластера, чей центроид находится ближе всего к этому наблюдению. Повторяем шаги 2-3 до тех пор, пока метки классов не перестанут изменяться.

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

Осталось найти аналитика данных, которому это интересно.
Ютуб все понял про редактора этого канала и порекомендовал видео: НИЧЕГО НЕ ДАНО А НАДО. Красивая, кстати, задача, но лучше всего в ней название. Эпиграф к книге жизни.
Между тем, февральское обновление в пакете {ellmer}: появились долгожданные функции content_pdf_file() and content_pdf_url(). Правда, пока их поддерживают не все модели, только Gemini & Claude. Будем ждать развития событий!
Весна все ближе: и мы готовимся к путешествию в «Лес за деревьями…» с уже знакомой постоянным участникам онлайн-семинара «Цифровая среда» Ольгой Алиевой.

Кандидат филологических наук, доцент Школы философии и культурологии Факультета гуманитарных наук НИУ ВШЭ, автор телеграм-канала RAntiquity («Об античности на языке R и не только») Ольга Валерьевна Алиева расскажет в своем докладе об особенностях методов консенсусных деревьев и сетей, их реализациях в программной среде R и результатах применения к анализу платоновского корпуса.

🔜 Присоединяйтесь к семинару в следующую среду.

Дата: 5 марта
Начало: 14.00 (мск)/ 18.00 (крск)
🔗 Зарегистрироваться и добавить в календарь здесь

#цифроваясреда #смотреть #слушать #платоноведение #языкR
Please open Telegram to view this post
VIEW IN TELEGRAM
RAntiquity
Весна все ближе: и мы готовимся к путешествию в «Лес за деревьями…» с уже знакомой постоянным участникам онлайн-семинара «Цифровая среда» Ольгой Алиевой. Кандидат филологических наук, доцент Школы философии и культурологии Факультета гуманитарных наук НИУ…
Дорогие друзья, сегодня в 14-00 мск презентую итоги стилометрического исследования платоновского корпуса, которым я занималась последние несколько лет.

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

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

В согласии с принципами reproducible research делюсь репозиторием с данными, кодом, а также ссылкой на сегодняшнюю презентацию: https://github.com/locusclassicus/plato_new_model_2024
🔍 Как собрать датасет на основе библиографических данных Скопуса*

Понадобятся:
- 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 г. Что с ними делать, пока не решила. Может и не буду ничего делать 🤩 Публиковать датасеты Elsevier не разрешает, так что я просто сижу ищу друзей и знакомых
Please open Telegram to view this post
VIEW IN TELEGRAM
RAntiquity
🔍 Как собрать датасет на основе библиографических данных Скопуса* Понадобятся: - API (https://dev.elsevier.com/), - VPN - пакет {rscopus} и обычный {tidyverse} install.packages("rscopus") library(rscopus) library(tidyverse) Sys.setenv(Elsevier_API = "0a0a0a0a0a0")…
Ну вот например. И это только публикации с вхождением “Платон” в названии, то есть лишь некоторая часть того, что о нем пишется.
Сравниваем тексты с {diffobj}


ed1 <- "В начале было Слово, и Слово было у Бога, и Слово было Бог."
ed2 <- "Вначале было Слово, и Слово было к Богу, и Бог был Слово."

# Визуализация изменений
library(diffobj)
diffChr(ed1, ed2, mode = "sidebyside")


Ссылка на техническую документацию. Результат можно встраивать в markdown и shiny.

p.s. первая-то редакция получше будет
Гераклит называл Пифагора κοπίδων ἀρχηγός, “предводитель мошенников”, а всякий уважающий себя философ, как говорил Ямвлих, должен взять себе в руководители “родоначальника и отца божественной философии”.

Поэтому сегодня маленькая хитрость для тех, кто уже научился реферировать статьи с чатом GPT, но еще не придумал, как безболезненно скормить ему монографию. Для этого придется разрезать ее на главы, и самый простой способ это сделать в R — пакет {qpdf}


library(qpdf)

pdf_subset(input = “book.pdf",
output = "chapter.pdf",
pages = 10:20)


Дальше вы знаете что делать 🐳 Но, как показывает практика, надо хорошо подумать над промптом, т.е. по сути сначала прочесть источник, а потом уже задавать вопросы машине. Иначе получится обо всем и ни о чем.
Вот такую чудесную мимозу подарили сегодня студенты. С радостью делюсь и желаю, чтобы всем нам удавалось, подобно мифическому Орфею, оживлять пением камни и данные. С праздником 🌼
2025/03/09 03:33:04
Back to Top
HTML Embed Code: