面向读者:nlp入门,python选手,对word embedding(词嵌入)有大概了解。
本文是基于doc2vec的一个关于延禧攻略剧情文本的小demo。doc2vev基于word2vec,它俩很像,使用方法也很像。有空再把原理补上。
语料文本yxgltext.txt点这里下载,其实就是从百度上复制粘贴的前20集左右的剧情文字,大家可以随意更改语料文字。文件结构如下,记得下载yxgltext.txt。
1 | |-nlp //新建文件夹 |
Talk is cheap, show me the code! 上代码~~
输入:
1 |
|
输入:
1 |
|
输入:
1 | cut_files() |
输出:
1 | 娴妃 提议 让 从 江南 请来 名医 叶天士 为 五 阿哥 医治 皇上 应允 叶天士 肯定 五 阿哥 患 黄疸 保证 用退 黄方 就 可治好 弘历 松 口气 高 贵妃 见风使舵 向 皇上 告罪 皇上 表示 谅解 这时 纯妃 带 人 抬 此前 照料 愉 贵人 饮食 一名 蒙古 厨师 尸体 上来 了解 过愉 贵人 孕期 饮食习惯 后 叶天士 禀报 弘历 婴儿 瞳孔 金黄 怪病 多因 母体 湿热 胆汁 淤积 而生 孕妇 应当 注意 饮食 不过 分 食用 甜食 烫食 腥膻 之物 璎珞 意有 所指 是 高 贵妃 想 对付 愉 贵人 五 阿哥 高 贵妃 辩驳 纯妃 却 呈 上 证据 是 厨师 死前 留下 一封 指认 高 贵妃 血书 弘历 大为 恼火 软禁 高 贵妃 皇上 准备 离开 时 明玉 拦住 皇上 告发 璎珞 盗用 皇后 金印 璎珞 打开 匣子 里面 只是 一块 砚台 明玉因 诬告 而 受罚 随后 璎珞 拦住 纯妃 与 说话 指出 厨师 自尽 留下 血书 一事 是 策划 纯妃 提醒 璎珞 别站 错 队 0.17824654281139374 160 |
输入:
1 | print(model_dm.wv['璎珞']) |
输出’璎珞’的200维词向量:
1 | [ 1.32339250e-03 -4.36101720e-04 8.61682580e-04 -5.60876098e-04 |
输入:
1 | #可以用句向量模型直接根据词向量查询相似度 |
输出跟“璎珞”最相关的前10个词,以及相关系数:
1 | [('庆锡', 0.36982783675193787), |
看完与“璎珞”强相关的词后,也可以尝试看看“傅恒”,“皇上”的相关词。(还是心疼傅恒😭)
“傅恒”的输出结果是:
1 | [('谣言', 0.25737541913986206), |
语料库是前20集的内容,可以看下在前20集“傅恒”与“璎珞”的相关程度,输入:
1 | print(model_dm.similarity('璎珞', '傅恒')) |
输出:
1 | 0.23082738 |
同理输入看看与富察皇后和大猪蹄子的缘分:
1 | print(model_dm.similarity('璎珞', '皇后')) |
查询字典的样子,输入:
1 | print(model_dm.wv.vocab) |
输出:
1 | {... |
查询字典大小:
1 | print(len(model_dm.wv.vocab)) |
同样,也可以把后面的剧情加进去,看看会发生什么变化😁
其余操作参考链接: