Pull to refresh

Comments 22

UFO just landed and posted this here
настроить Порфирьевича на автоответчик назойливым рекламным звонкам, а то отвлекают почем зря, а так отдохнуть можно будет с юмором
UFO just landed and posted this here
ИИИИИИИгорь)))… есть еще всякие Романы и т.п… а вообще много реальных задач которые даже нужно поручить скриптам с автоответчиками, но все руки не доходят хотябы тестовый вариант реализовать…

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

UFO just landed and posted this here

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

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

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

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

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


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

Сужу по приведенному видео. Чего-то забавного/интересного я там не вижу. Возможно, есть где-то примеры действительно остроумных «дописываний», но сомнительно.
UFO just landed and posted this here

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


А я на днях эту же нейронку прям в Алису запихал (линк). Правда, 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 тут на хабре тоже что-то подобное было.
Вы мой герой! Отличный пример, спасибо! Будет теперь с чем поразвлекаться!
Sign up to leave a comment.

Articles