虚假新闻/谣言检测--文本可读性度量

最近开始研究虚假新闻/谣言检测方面的内容,下载并且阅读了几篇论文,这篇博文首先介绍《A Stylometric Inquiry into Hyperpartisan and Fake News》。这篇论文首次分析了仅仅通过文章的行文风格(style)能不能区分超党派的新闻和主流新闻(能),能不能区分讽刺新闻和上述两类新闻(能),已经能不能区分真假新闻(不能)。
文中介绍了跟行文风格有关的特征,包括可读性(readability)的10个分值:Automated Readability Index, Coleman Liau Index, Flesh Kincaid Grade Level and Reading Ease, Gunning Fog Index, LIX, McAlpine EFLAW Score, RIX, SMOG Grade, Strain Index和Unmasking方法(一种判断两篇文章是否是同一作者的方法)。随后,笔者对可读性指标和Unmasking方法进行了实践,分享给大家。
首先从https://github.com/cdimascio/py-readability-metrics下载了计算可读性指标的代码,提供了Automated Readability Index, Coleman Liau Index, Flesh Kincaid Grade Level and Reading Ease, Gunning Fog Index, SMOG Grade,DALE_CHALL, Linsear_write和Flesh 这几个指标的代码。代码在python3.6下可以直接运行,测试了两个文本,一个是从中文文本数据集THUCNews(根据新浪新闻RSS订阅频道2005~2011年间的历史数据筛选过滤生成,包含74万篇新闻文档)中的星座类别中选了几段组成的正常文本,一个是从利用上述文本库中的所有星座文本对gpt-2微调后,自动生成的文本中选取了一些组成了一个虚假文本,分别用上述代码对正常文本和虚假文本进行了测试。
正常文本内容部分示例:“天蝎座的爱是彻底的、极端的,爱上了,便要全身心的付出。可距离一远TA会为自己什么也不能为对方做而懊恼,不如索性追过去,即使要面对很多困难,天蝎也越挫越勇,反正什么都不能阻挡TA跟随爱情的脚步。这样的妻子的高明之处就在于:不赌一时之气,懂得用迂回战术夺取最终的胜利。表面上她不争,但“不争乃争”,用在情场上是最厉害的兵法。如果和男人还有一份感情,不如以智取胜。 咆哮如雷的悍妇、哭哭啼啼的怨妇,只会把老公推向小三的身边,临危不乱的贵妇才是小三最恐惧的角色,男人因此也会发现妻子的气质。慢慢的,他开始向我抱怨他的女友有多糟糕有多烦人和不懂事,每次和他出去他都会提起他女友,提起他们一起做过的事情和他们的回忆,边提嘴角还会有微笑,我真的好难过,我真的恨不得自己就是他女朋友,他说他已经不爱他女友了,但每天提起她不是爱不是在乎又是什么呢。和他一起出去逛街,可以牵手可以拥抱可以亲吻但当别人问起我们的关系我们会异口同声的说他不是我男/女朋友!和他一起走过的下雪天的夜晚,两个人因为讲心里话一起难过到哭的夜晚,一起喝珍珠奶茶和吃小吃的店面。人的一生会遇上各种各样的应酬,结交各种各样的朋友。”
虚假文本内容部分示例:“鲜座未然不更加小一种过头,彼此我也会是一些季暧季的,所以我在圣诞贴他与跟财老服,也会让自己均财,任何自己把等理念的事情而指数,这做出现肋金子也会因为我都会发出害理了,但马子也会从我时习惯马子还要财会每晒暔完美沟选身体的阔局。 你的面子,有对拉黄蜂域,因为打实时还有信号,也善良、撞哦,又受实倒战,坐亡自己从会机会获得更好。 因为对理念总是双方的,放了放心须和那里的陪实。 一朝付消果,不管轻�需长久吞事感,对方问题做得落了,而追谋了,质疑宋推杀合。 不过,质疑又知道了! 其实,这些深爱无害,们都觉得这些爱敬,一切,又推视,这些爱在视爱情开始。 自由厚过儿的过些关注轻,但仍然,至处不想以及肌以吸引仅男。身代现在这些儿子服加的那服关注的猭种岮的暡上,吃事机折近晓玧。 约会的婚姻硬,毕竟折红犛入给守职爱的第五。”
说明:必须保证文中词的个数大于100才能计算出结果,SMOG要求句子数大于30(无论我放多少,程序总是判断只有一句,问题一直没有解决,所有没有这个数值),运行结果如下:
虚假新闻/谣言检测--文本可读性度量_第1张图片
由上表可以看出,除了flesch外,其余可读性指标,真实文本均要好于虚假文本,说明这个指标对于区分真假文本有意义(跟作者得出的不能区分真假新闻的结论好像有点不一样),具体的物理含义还待查。
Unmasking代码从https://github.com/hmnshu34/Unmasking_Procedure下载,调试过程中只需把“from sklearn import cross_validation”改成“from sklearn import model_selection”,运行结果如图。
虚假新闻/谣言检测--文本可读性度量_第2张图片
随后,为了验证Unmasking的效果,在三组数据上进行了试验,一是上述THUCNews数据集中取了两组98K的星座的文本进行了测试;二是一组THUCNews数据集中星座的文本和gpt-2生成的星座文本进行测试;三是一是上述THUCNews数据集中取了一组98K的星座文本和一组98K左右的时政的文本进行了测试。结果分别如下所示。
虚假新闻/谣言检测--文本可读性度量_第3张图片
虚假新闻/谣言检测--文本可读性度量_第4张图片
虚假新闻/谣言检测--文本可读性度量_第5张图片
通过图2、图3和图4可以看出,对于两组真实的星座文本,随着特征数的增加,得分逐步降低;但是对于真实星座文本和生成的虚假文本,还有真实星座文本和真实的政治文本,在特征数增加的过程中,得分曲线有较大的波动,所以可见Unmasking可以有效区分同类文本。至于对同一作者多个文本的检测效果,因为手头没有相关方面的中文数据集,所以没有进行。

你可能感兴趣的:(文本处理,虚假新闻/谣言检测)