Search
Write a publication
Pull to refresh
0
0
Send message

А что именно вам не понравилось? Плохая рифма, неудачные образы или что-то еще?

По заданию Клод и должен был написать стихотворение, похожее на "А вы могли бы", в том же стиле.

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

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

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

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

Это перевод с помощью Клода 3.5 Я попросил написать аналогичное стихотворение на русском в стиле Ахматовой. Мне кажется, Клод замечательно справился. Может переписать в стилях практически любых писателей. И прозой и стихами. Может писать по примеру или с нуля. Вот Маяковский:

Я вывернул карманы улиц

Насыпав звёзды в тротуары

И в лужах зеркала согнулись

Под тяжестью небесной тары

На коже города-завода

Я высек азбуку прогресса

А вы прочесть смогли б восходы

По шрамам рельсового леса?

Семнадцать лет! — Как приговор. Как яд — под кожею. А ей — поклон, и ей — простор, И свет в прихожей!

Ей — сорок девять! — Сонм мужчин (Как пчёлы — к мёду!) А мне — краснеть без всех причин, Стоять у входа.

Ей — золотой водоворот, Ей — все поклоны! А мне — считать который год До царской кроны.

Но время — яростный поток! — Сметёт, развеет... Когда мой грянет сорок — срок, Она — истлеет!

— Как эта месть во мне горит! Как сердце бьётся! ...А время — мимо пролетит, Не оглянётся.

Было 4, стало 5. Некрасиво, конечно, что плавает, хотя постановке соответствует.

Интересно, что ИИ в качестве тестовых данных сам предложил пару одинаковых чисел.

Решение от Claude Sonet 3.5:

def find_closest(arr, k):
    left, right = 0, len(arr) - 1
    
    while left <= right:
        mid = (left + right) // 2
        if arr[mid] == k:
            return mid
        elif arr[mid] < k:
            left = mid + 1
        else:
            right = mid - 1
    
    if left == 0:
        return 0
    if left == len(arr):
        return len(arr) - 1
    
    return left - 1 if k - arr[left - 1] <= arr[left] - k else left

# Примеры использования
print(find_closest([1, 3, 4, 7, 9, 12], 5))  # Должно вывести 2
print(find_closest([1, 3, 4, 12, 15, 15, 18], 14))  # Должно вывести 4

От ChatGPT:

def closest_number(arr, k):
    left, right = 0, len(arr) - 1
    
    while left <= right:
        mid = (left + right) // 2
        
        if arr[mid] == k:
            return mid  # Если нашли точное совпадение, сразу возвращаем индекс
        
        if arr[mid] < k:
            left = mid + 1  # Ищем в правой части
        else:
            right = mid - 1  # Ищем в левой части
    
    # После завершения бинарного поиска, left указывает на первый элемент, больше или равный k,
    # а right указывает на последний элемент, меньше или равный k.
    
    # Проверим границы, чтобы выбрать наиболее близкий элемент
    if left >= len(arr):
        return right
    if right < 0:
        return left
    
    # Выбираем ближайшее число, сравнивая arr[left] и arr[right]
    if abs(arr[left] - k) < abs(arr[right] - k):
        return left
    else:
        return right

# Примеры:
arr1 = [1, 3, 4, 7, 9, 12]
k1 = 5
print(closest_number(arr1, k1))  # Ожидается: 2 (число 4)

arr2 = [1, 3, 4, 12, 15, 15, 18]
k2 = 14
print(closest_number(arr2, k2))  # Ожидается: 4 (первое число 15)

И с bisect-ом от Claude:

import bisect

def find_closest(arr, k):
    pos = bisect.bisect_left(arr, k)
    
    if pos == 0:
        return 0
    if pos == len(arr):
        return len(arr) - 1
    
    before = arr[pos - 1]
    after = arr[pos]
    
    if after - k < k - before:
        return pos
    else:
        return pos - 1

# Примеры использования
print(find_closest([1, 3, 4, 7, 9, 12], 5))  # Должно вывести 2
print(find_closest([1, 3, 4, 12, 15, 15, 18], 14))  # Должно вывести 4

Автомат с роботом-барменом: для приготовления коктейлей. Можно в бары продавать

Со мной просто досрочно односторонне разорвали ОСАГО. Из-за того, что были указаны неверные данные по мощности двигателя. В полисе 120, а в СТС 120.1

Машину с самого начала страховал в Альфе, все данные вводили ее агенты в офисе.

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

Конечно, я никогда больше ничегос Альфе не буду страховать и вам не советую.

Information

Rating
Does not participate
Registered
Activity