Комментарии 22
настроить Порфирьевича на автоответчик назойливым рекламным звонкам, а то отвлекают почем зря, а так отдохнуть можно будет с юмором
уже хочу
Да, было бы круто =)
Видимо не за горами время, когда условная Алиса будет спрашивать толерантного совета у условного Порфирьича, как ей правильно подкатить к условной Siri (Алексе или Кортане). И тогда психоаналитики и другие психологи станут не нужны ;-)
Было бы неплохо вырезать начало фразы Алисы из озвучки ответа. Стало бы еще задорнее и интересней имхо.
Порфирьевич именно дописывает фразу, сказанную человеком (или нечеловеком). Поэтому вырезать не получится — иначе предложение Порфирьевича будет неправильным.
Да его предложения и так не особо-то интересны и/или остроумны, если честно.
Немного оффтопик. Давно у меня блуждает идея написать расширение к браузеру, которое на новостных сайтах будет автоматически дописывать ко всем заголовкам новостей желтушные окончания вроде:
— "… и попала на видео"
— "… и сгорел от стыда"
— "… и опозорились"
— "… и был пристыжен"
— "… и была высмеяна в соцсетях"
и так далее.
Может кто-то имеет хороший опыт работы с нейронками и знает, как это делается быстро?
— "… и попала на видео"
— "… и сгорел от стыда"
— "… и опозорились"
— "… и был пристыжен"
— "… и была высмеяна в соцсетях"
и так далее.
Может кто-то имеет хороший опыт работы с нейронками и знает, как это делается быстро?
Это делается без нейронки.
Думаю, это действительно достаточно хорошо решается даже простыми эвристиками и NLP *pасчехляет pymorphy2*
Для JS тут на хабре тоже что-то подобное было.
- Самая красивая женщина в мире показала фото в бикини и приспущенных шортах и попала на видео
- 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 тут на хабре тоже что-то подобное было.
Зарегистрируйтесь на Хабре, чтобы оставить комментарий
Заменяем Google Assistant на нейросеть Порфирьевич и троллим Алису