Как стать автором
Обновить

Заменяем Google Assistant на нейросеть Порфирьевич и троллим Алису

Время на прочтение4 мин
Количество просмотров51K
Всего голосов 43: ↑42 и ↓1+41
Комментарии22

Комментарии 22

НЛО прилетело и опубликовало эту надпись здесь
настроить Порфирьевича на автоответчик назойливым рекламным звонкам, а то отвлекают почем зря, а так отдохнуть можно будет с юмором
уже хочу
НЛО прилетело и опубликовало эту надпись здесь
ИИИИИИИгорь)))… есть еще всякие Романы и т.п… а вообще много реальных задач которые даже нужно поручить скриптам с автоответчиками, но все руки не доходят хотябы тестовый вариант реализовать…

Да уж. Эльдар сделал Ииигоря до того как это стало мэйнстримом ))

Да, было бы круто =)
НЛО прилетело и опубликовало эту надпись здесь

Видимо не за горами время, когда условная Алиса будет спрашивать толерантного совета у условного Порфирьича, как ей правильно подкатить к условной Siri (Алексе или Кортане). И тогда психоаналитики и другие психологи станут не нужны ;-)

Было бы неплохо вырезать начало фразы Алисы из озвучки ответа. Стало бы еще задорнее и интересней имхо.

Порфирьевич именно дописывает фразу, сказанную человеком (или нечеловеком). Поэтому вырезать не получится — иначе предложение Порфирьевича будет неправильным.

Да его предложения и так не особо-то интересны и/или остроумны, если честно.

Они интересны настолько, насколько интересно начало вашего рассказа.


Ведь нейросети нужно вникнуть в смысл происходящего.

Сужу по приведенному видео. Чего-то забавного/интересного я там не вижу. Возможно, есть где-то примеры действительно остроумных «дописываний», но сомнительно.
НЛО прилетело и опубликовало эту надпись здесь

Клево. Возможно, что нибудь ещё интересное из этого получится.


А я на днях эту же нейронку прям в Алису запихал (линк). Правда, API с нейронкой не укладывается в отведенные навыку три секунды, и приходиться костылять и просить юзеров вводить капчу :)

Немного оффтопик. Давно у меня блуждает идея написать расширение к браузеру, которое на новостных сайтах будет автоматически дописывать ко всем заголовкам новостей желтушные окончания вроде:
— "… и попала на видео"
— "… и сгорел от стыда"
— "… и опозорились"
— "… и был пристыжен"
— "… и была высмеяна в соцсетях"
и так далее.
Может кто-то имеет хороший опыт работы с нейронками и знает, как это делается быстро?

Это делается без нейронки.

Конечно можно и без. Только в любом случае нужен анализ текста, чтобы определять род, склонение, отсутствие уже существующих окончаний и так далее. Мне кажется тут есть место и для варианта с нейронками.
Думаю, это действительно достаточно хорошо решается даже простыми эвристиками и NLP *pасчехляет pymorphy2*

  • Самая красивая женщина в мире показала фото в бикини и приспущенных шортах и попала на видео
  • Boeing рекордно провалился в борьбе с Airbus и был высмеян в соцсетях
  • В России ответили на территориальные претензии Эстонии и были высмеяны в соцсетях
  • ГИБДД изменит практическую часть экзамена на права и опозорится
  • Двое россиян прыгнули с парашютом с 24 этажа и были пристыжены
  • Норвежская биатлонистка объяснила традицию «сильно напиваться» в новогоднюю ночь и немедленно выпила
  • Депутат-единоросс расстрелял двух собак и был высмеян в соцсетях

Код
import pymorphy2
import random
from pymorphy2.tagset import OpencorporaTag as Tag

class Inflectable: 
    def __init__(self, value, allowed_gramemmes=set()):
        self.value = value
        self.allowed_gramemmes = allowed_gramemmes

    def inflect(self, morph, grammemes):        
        if self.allowed_gramemmes:
            grammemes = grammemes.intersection(self.allowed_gramemmes)
        return morph.parse(self.value)[0].inflect(grammemes)

headings = [
    'Самая красивая женщина в мире показала фото в бикини и приспущенных шортах',
    'Boeing рекордно провалился в борьбе с Airbus',
    'В России ответили на территориальные претензии Эстонии',
    'ГИБДД изменит практическую часть экзамена на права',
    'Двое россиян прыгнули с парашютом с 24 этажа',
    'Норвежская биатлонистка объяснила традицию «сильно напиваться» в новогоднюю ночь',
    'Депутат-единоросс расстрелял двух собак',    
]

endings = [
    ("и", Inflectable("попал"), "на видео"),
    ("и", Inflectable("сгорел"), "от стыда"),
    ("и", Inflectable("опозорился")),
    ("и", Inflectable("был"), Inflectable("пристыжён", Tag.NUMBERS.union(Tag.GENDERS))),
    ("и", Inflectable("был"), Inflectable("высмеян", Tag.NUMBERS.union(Tag.GENDERS)), "в соцсетях"),
    ("и", "немедленно", Inflectable("выпил")),
]

def guess_inflect(morph, words):
    for word in words:
        p = morph.parse(word)[0]
        if 'VERB' in p.tag:
            inflect = {p.tag.gender, p.tag.number, p.tag.tense, p.tag.person}
            inflect.remove(None)
            return inflect

def inflect_ending(morph, words, inflect):
    result = []
    for word in words:
        if(isinstance(word, Inflectable)):
            result.append(word.inflect(morph, inflect).word)
        else:
            result.append(word)
    return ' '.join(result)


morph = pymorphy2.MorphAnalyzer()
for heading in headings:    
    inf = guess_inflect(morph, heading.split(' '))
    if not inf:
        continue
    ending = inflect_ending(morph, random.choice(endings), inf)
    print(heading + ' ' + ending)


Для JS тут на хабре тоже что-то подобное было.
Вы мой герой! Отличный пример, спасибо! Будет теперь с чем поразвлекаться!
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Изменить настройки темы

Истории