readme- 老司机版
Corpus + Code + โมเดลที่ผ่านการฝึกอบรมสำหรับ "ส่งผ่าน" Bilibili Meme
พื้นที่เก็บข้อมูลนี้อาจช่วยศึกษาการแพร่กระจายข่าวลือแบบปากต่อปากโดยเฉพาะอย่างยิ่งเกี่ยวกับวิธีที่ผู้คนปฏิรูปและสร้างข่าวลือ (หรือความจริง) มากขึ้นเรื่อย ๆ (บางครั้งตลก) เมื่อพวกเขาผ่านไปเรื่อย ๆ ...
ในขณะเดียวกัน "Pass it on" ก็เป็น meme bilibili ผู้คนจะเขียนความคิดเห็นเกี่ยวกับวิดีโอหรือโพสต์ที่พยายามตีความผิดว่าผู้อัปโหลดหมายถึงอะไรในตอนแรกซึ่งส่งผลให้เกิดการเผยแพร่คำพูดจากปาก
python 3.6
tensorflow 1.14.0
bert4keras 0.10.6
jieba
เราให้บริการคลังข้อมูลที่มีความคิดเห็น 3W bilibili โดยใช้รูปแบบของ "Pass it on" bilibili meme (กล่าวคือความคิดเห็นที่เริ่มต้นด้วย "Pass It on")
เรารวบรวมความคิดเห็นวิดีโอ/โพสต์เป็นหลักจาก "ผู้อัปโหลด 100 อันดับแรกของปี" ในช่วง 3 ปีที่ผ่านมา หลายช่องทางที่มีผู้ติดตามหลายล้านคนเช่น Genshin Impact รวมอยู่ด้วยเช่นกัน โปรดทราบว่าคลังข้อมูลอยู่ไกลจากขนาดใหญ่พอที่จะเป็นตัวแทนการกระจายผู้ใช้/ความคิดเห็นของผู้ใช้ 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
...
สำหรับแต่ละองค์ประกอบใน data/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 คู่
เราปฏิบัติต่องานง่าย ๆ ว่าเป็นการสร้างข้อความทั่วไป:
งานนั้นคล้ายกับการถอดความข้อความ (สร้างประโยคที่คล้ายกัน) แต่คราวนี้แม้จะมีสูตรประโยคที่คล้ายกันเรายังต้องการการเปลี่ยนแปลงความหมายตามวัตถุประสงค์
นอกจากนี้ยังมีความท้าทายอีกประการหนึ่งที่อยู่ในความสัมพันธ์แบบหนึ่งต่อหลาย ๆ ระหว่างแหล่งที่มาและการเผยแพร่
เราใช้ประโยชน์จากรุ่น Roformer-Sim รุ่นที่ได้รับการจัดอันดับแล้วเป็นกระดูกสันหลังของเราเนื่องจากเป็นพื้นฐานการถอดความข้อความที่ดี นอกจากนี้เพื่อที่จะสร้างแบบจำลองความสัมพันธ์แบบหนึ่งถึงหนึ่งถึงหลายครั้งตามที่ระบุไว้ก่อนหน้านี้เราได้เพิ่มตัวแปรแฝงในแบบเพลโตซึ่งโทเค็นพิเศษจะถูกเตรียมไว้ให้กับข้อความอินพุตแทนตัวแปรแฝง ดังนั้นการเรียนรู้จึงแตกต่างกันเล็กน้อยเช่นกัน
หมายเหตุ: เราไม่แน่ใจ 100% ว่าการใช้งานแบบจำลองเหมือนเพลโตของเรานั้นถูกต้อง [Doge]
เราเปิดแหล่งที่มาของเราสำหรับการใช้งานสาธารณะ มันเป็นรุ่น roformer ที่ดัดแปลง 12 ชั้น
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 Epochs ด้วย batch_size = 128 ได้รับการสนับสนุนให้ใช้ด่านตรวจสอบก่อน (เช่นที่บรรทัดที่ 30, checkpoint_path = "chinese_roformer-sim-char-ft_l-12_h-768_a-12")
python train_latent.py --model_dir=$your_model_dir --train=data/train.samples
เนื่องจากเป็นวิธีการที่ขับเคลื่อนด้วยข้อมูลโดยสิ้นเชิงโมเดลนี้อาจสร้างประโยคแปลก ๆ หรือไม่ได้รับความสนใจสำหรับอินพุตที่มองไม่เห็นหรือนอกโดเมนซึ่งค่อนข้างสมเหตุสมผล
โดยวิธีการยินดีต้อนรับคลังข้อมูลที่น่าสนใจเพิ่มเติมใด ๆ