※ 引述《blessthefall (花 请听我说话)》之铭言:
: 板上女版友收到的约砲信
: 来来去去大概就是那个样子八九不离十
: 有没有男版友收过什么很特别/意外/恐怖
: 之类的性骚扰或是约砲信啊
: 求众男神出来分享一下意见
在板上待久,难免会收到一些来信
后来留下深刻印象的,多半来信简短
像是简单一句"Hi,我想认识你",或是"单挑?"
当资讯量太少时,会面临选择上的困难
是要回信? 还是当做没看到?
直接忽略,可能会错失一些什么
往返联络,可能会浪费一些时间
于是我在想,是否有个简便方式,能自动分析来信者背景资料
因为我很懒惰,懒惰的人只想一劳永逸
稍微查阅网络资料后,写了程式自动抓站内文章
站内看板数量太多,资源有限,无法每个看板都追踪
可以先用 google 进阶搜寻,看看哪些看板值得纳入追踪
接着将文章一一写入 SQL 数据库
这样就能简便搜寻 ID、暱称、文章标题、日期、IP、推文数和内文
有了这些资料,终于可以尝试解决几个问题:
1.对方的性别
2.对方的兴趣项目
3.对方和哪些项目最有关联
4.与对方的关联度
5.依照特定项目筛选对象
先从分析文章内容做起,首先进行中文分词,这已经有许多开源专案可用
背后原理主要是基于 TF-IDF 算法提取关键词,并取得每个词出现的频率
对于未登录词,则用 Hidden Markov model(HMM) 和 Viterbi 算法挖掘出来
分词过程将根据词频,查找出最大机率路径,找出基于词频的最大机率分词组合
例如: 西斯板为批踢踢站内讨论与性知识、性爱及相关议题之看板
分词后:
西斯板 为 批踢踢 站内 讨论 与 性知识 、 性爱 及 相关 议题 之 看板
将一篇文章分词后,可以再用 TF-IDF 算法提取出权重高的关键词
例如将某篇文章提出权重最高的前 15 个关键词,得到:
裤子 / 单挑 / 阴蒂 / 内裤 / 变态 / 寄信 / 可以 / 站内信 /
平胸 / 感觉 / XD / 磨破 / 有图 / 哩金 / 跪求 /
现在将对方每一篇文章提出前 15 个关键词,加总并排序,可得到类似这样的结果:
======= 出现次数 =======
寄信 5
男友 5
主人 4
西斯 3
调教 3
=========================
然而,每个关键词在每篇文章出现顺序不一,也就是权重是有差别
如果考量权重,给予加权计算,那关键词权重次数可能是这样:
======= 出现权重 =======
男友 41
寄信 40
调教 28
单挑 28
主人 25
母狗 22
前男友 21
下体 20
=========================
如此一来,只要看对方有哪些高权重关键词,就可以略知兴趣、偏好
有了这份关键词权重表,可以计算自己和对方的关联度
例如比对关键词,一致则加计关联度
实务上,分词系统仍有不完美之处
像可能出现两个关键词分别是 "轮班星人"、"轮班",两者有一定的关联
如果只有关键词完全一致才加计,那会流失一些关联度
因此,当某一个关键词是另一个关键词子集,可以考虑纳入平均化后的关联度
公式为:
关联度(A,B) =
Σ(FreqA + (FreqA * FreqB /100) + ( (FreqA * FreqBofA + FreqBofA)/(100+100) )
但有一些人很少贴文章,甚至没贴过任何文章,此时要如何计算关联度?
可尝试筛选对方推过的所有文章,理论上这些文章会与对方的兴趣较有关联
例如某个人文章数只有 3 篇,计算关联度只有 31.571
但推过的文章有 132 篇,计算关联度,上升到 97.832
试运算关联度:
================= 关联度 =================
100.278 = Hokusai 与 Hokusai 的关联度
079.104 = Hokusai 与 g****** 的关联度
068.253 = Hokusai 与 B****** 的关联度
065.965 = Hokusai 与 L****** 的关联度
055.688 = Hokusai 与 n****** 的关联度
033.252 = Hokusai 与 T****** 的关联度
028.984 = Hokusai 与 s****** 的关联度
027.882 = Hokusai 与 a****** 的关联度
004.734 = Hokusai 与 g****** 的关联度
==========================================
关联度的运用或许可划分为:
a.撷取对方po过的所有文章,"不纳入" 底下推文
计算与自己文章的关联度 = 找出近似文风
假设 文风 = 常见用语 + 独特用语
如果两者常见用语和独特用语都很接近,那可能文章风格接近,甚至可能是同一人
b.撷取对方po过的所有文章,"纳入" 底下推文
计算与自己文章的关联度 = 找出个人特质以及众人评语
例如: 从推文提取出高权重关键词 "好大"、"想揉",那或许发文者有大胸部
或是 "美腿"、"丝袜",那或许发文者有一双美腿
c.撷取对方推过的所有文章,"不纳入" 底下推文
计算与自己文章的关联度 = 找出有兴趣的主题
例如: 对方完全没发过文,但推过许多文章,这些文章主题都跟丝袜有关
那或许对方是个丝袜控
d.撷取对方推过的所有文章,"纳入" 底下推文
计算与自己文章的关联度 = 找出有兴趣的主题以及众人评语
例如: 对方推的文章没什么内容,只有贴图或贴网址
但底下推文高权重关键词是 "想要"、"湿了"
或许这些文章都是高度情欲相关,可彰显出对方的偏好
关键词的另一项运用是计算对方和某些关键词的关联度
例如设定这些有点糟糕的关键字:
"主人,调教,奴,肉棒,穴,绳,鞭,屁股"
选定一些对象后,计算可得:
======= 特定关键词关联度 =======
050.495 = 与 B***** 的关联度
050.477 = 与 L***** 的关联度
050.079 = 与 Hokusai 的关联度
025.395 = 与 a***** 的关联度
012.523 = 与 r***** 的关联度
000.000 = 与 t***** 的关联度
000.000 = 与 g***** 的关联度
================================
如此一来,就能迅速找出所有板友当中,与特定关键词高度关联的人
至于该如何得知对方性别呢?
直觉想法是找出对方所有文章,根据文章内容人工解读
但懒人并不这么做,懒人想要电脑自动根据算法计算出对方性别机率
要计算这样的机率,就得用到词向量
背后数学原理,有兴趣可自行上网找,实作上已经有开源项目,直接使用即可
将西斯板,甚至是全站主要板面所有文章一一分词,放入神经网络模型训练
得到的是许多关键词以及它们的词向量,词向量相近的词可能是近似词,或有关联
例如:
约炮