Readme- 老司机版
CORPUS + CODE + Trained Model для «Пропустите его на» билибили.
Этот репозиторий может помочь изучить слухи о слухах, особенно в том, как люди переформутируют и делают слухи (или факт) все более и более шокирующим (иногда смешным), когда они передают его и снова ...
Между тем, «Переход на него» также является мемом билибили. Люди писали комментарии на видео или сообщениях, пытающихся сознательно неверно истолковывать то, что изначально означает загрузчик, что приводит к забавному распространению из уст в уста.
python 3.6
tensorflow 1.14.0
bert4keras 0.10.6
jieba
Мы предоставляем корпус с комментариями 3W Bilibili, используя шаблон «Переход его на» билибили (а именно, комментарии, которые начинаются с «Перепись»,)
В основном мы заполнили видео/комментарии по публикации из «100 лучших загрузчиков года» за последние 3 года. Также также включены несколько каналов с миллионами последователей, таких как воздействие геншина. Обратите внимание, что корпус далеко не большой, чтобы представлять полное распределение пользователей/комментариев Bilibili.
Исходные данные сохраняются как «corpus.json» в папке данных, и это список словаря.
{
"context": {
"bvid": "BV1Gb4y167gE",
"uid": "476704454"
},
"rumors": [
{
"source": "热情的舟山人民把小文哥当海鲜吃了",
"propagations": []
},
{
"source": "5147779123",
"propagations": [
"舟山的海鲜把小文哥吃了",
"舟山的海鲜想让小文哥吃人",
"热情的小文哥把海鲜当成舟山人民吃了",
"小文哥热情地把舟山上的海鲜吃了",
"热情的海鲜在舟山到处吃小文哥",
"热情的舟山海鲜把小文哥给吃了。",
"舟山的热情海鲜把小文哥吃了",
"小文哥带着热情的海鲜把舟山吃了"
]
},
{
"source": "小文哥把舟山人民配海鲜吃了",
"propagations": []
}
]
},
{
"context": {
"bvid": "BV1Bw411d7r8",
"uid": "476704454"
},
"rumors": [
{
"source": "小文哥吃了兄弟家一山头的桃",
"propagations": []
}
]
}
Все данные собираются из видео Bilibili или публиковать комментарии. Когда кто-то пишет комментарий с шаблонами «Пройдите его», другие часто следуют и оставляли суб-романы с той же схемой. Например,
a comment : pass it on, the uploader says he likes this girl.
sub-comment-1: pass it on, the uploader likes to be a girl
sub-comment-2: pass it on, the uploader likes to be a boy
sub-comment-3: pass it on, the uploader is a girl
...
Для каждого элемента в данных/corpus.json
context: # so that one could refer to source page
bvid: # video (post) id
uid: # user (uploader) id
rumors: # a list containing rumors
[
{
source: # source of rumors, might be a comment or just a comment_id (if source has no "pass it on" pattern)
propagations: # list of sub-comments, spreading the source in time order
},
{source, propagations},
{source, propagations},
...
]
Мы также получаем «Data/Train.samples», учебные данные с общим форматом линии «Предложение1 t предложение2» по линии. Он содержит 290 000 пар предложений.
Мы рассматриваем задачу просто как типичную генерацию текста:
Задача аналогична перефразированию текста (генерируя похожие предложения), но на этот раз, несмотря на аналогичную формулировку предложений, мы также хотим нарочно семантического сдвига.
Кроме того, есть еще одна проблема, которая заключается в отношениях между источником и распространением.
Мы пользуемся преимуществами, предварительно предварительно проведенным поколением-моделью, в качестве нашей основы, так как это хороший текст, перефразирующий базовую линию. Кроме того, для того, чтобы моделировать соотношение разпробранных разрокаций от одного ко многим, как отмечалось ранее, мы добавляем скрытую переменную путем Платона, где специальный токен готовятся к вводу текста, представляющего скрытую переменную. Следовательно, обучение также немного отличается.
Примечание: мы не уверены на 100%, что наша реализация модели, подобной Платону, верна [дог]
Мы открываем нашу модель для общественного пользования. Это 12-слойная модифицированная модель Roformer.
Google Drive
Примечание $ your_model_path Модельный каталог загруженной модели, затем вы можете использовать командную строку для выполнения вывода следующим образом:
python train_latent.py --do_predict --model_dir=$your_model_path --n=1 --topp=0.8 --text=any_text
input: up主喜欢小天使
========== predict:
传下去,up主疑似在天堂被天台感动
传下去,up喜欢天穹
传下去,up主家里有天星
传下去,天使喜欢戴眼镜的up主
传下去,up没有天堂
传下去,up叫天台来烤粉丝。
传下去,up每天早上要直播露脸
传下去,up下天生孩子
传下去,up到天台高产了
传下去,up上天堂了
传下去,up和天使吃了
传下去,楼主的那个帅小伙要穿天堂
传下去,up要cos女巫直播
传下去,天堂大up要爽了
传下去,up下天生孩子翻车了
传下去,up不是人
传下去,天天抽一个up吃8个小孩
传下去,三天之后,up主要被魅魔掏心脏了
input: 帝君喜欢吃花生米
========== predict:
传下去,帝君喜欢吃干净的小孩子。
传下去,帝君喜欢捆绑
传下去,帝君用生煎包吃花生米
传下去,帝君吃傻子吃腻了
传下去,喜欢帝君的来自花生米
传下去,花生米吃帝君
传下去,神像吃吃沙子
传下去,我吃帝君屁股
传下去,帝君身边有个米哈游
传下去,帝君只剩干了
传下去,仙跳墙使帝君心疼
传下去,帝君今天上了小通宵
传下去,帝君上床了
传下去,帝君没有下半身
传下去,帝君要炸百京贵妇
传下去,十个视频有了帝君
传下去,帝君会喂食尘神当生日礼物
传下去,视频下一次更新十个帝君
传下去,这个视频里有一年的课代表
input: 川建国要复辟了
========== predict:
传下去,川建国想要
传下去,川宝上任国君了
传下去,川宝变艾伦了
传下去,《不要传传》
传下去,川宝有天火了。
传下去,阿舅变成了川宝
传下去,川宝长大了也不会忘开
传下去,《川宝要制杖》
传下去,总之,川宝喜欢新衣服
传下去,齐格飞要斩四郎
传下去,老八要吃了川宝
传下去,川普不喜欢制杖
传下去,川团老表是孙笑川
传下去,三叔写盗墓笔记
传下去,川宝没有才浅是制杖
传下去,《川宝喜欢才浅制杖》
传下去,我要吃川宝老爷子
传下去,《我才是川宝喜欢的人》
传下去,全世界辣鸡都不用吃川宝!
传下去,有人冒充川宝想被粉丝上
По умолчанию мы тренируемся на 10 эпох с помощью batch_size = 128. Это рекомендуется применить предварительную контрольную точку. (Например, в строке 30, Checkpoint_path = "cilina_roformer-sim-char-ft_l-12_h-768_a-12")
python train_latent.py --model_dir=$your_model_dir --train=data/train.samples
Поскольку это полностью метод, управляемый данными, эта модель может генерировать странные или нефть предложения для невидимых или вне доменных входов, что является вполне разумным.
Кстати, приветствуется любой дополнительный интересный корпус.