我们能在朋友圈看到的许多传阅多的公众号文章,通常都是阅读量达到10万以上的热文。即使是讨论同样的事情,为什么这些文章能够被广泛传阅从而让你忍不住点进去?我们不妨用大数据加上AI的方法来分析一下这个问题。

为了回答这个问题,我们需要介绍一下中文分词这个AI相关的语言处理技巧。对分析结果更感兴趣的读者可以直接跳到文章后面部分先睹为快。

AI原理:

汉语里面的单个汉字在语境中有很多歧义,只有组合成词语以后,才更加有意义。这个是汉语和英语不一样的一个地方。3000多个汉字就能组合非常非常多的词汇,从而帮助我们表达。我们个人阅读句子时候,会自然而然的把字分成词语,但是在计算机算法里面,必须要从新学习这个技巧。

按照从易到难的顺序有下面几种技术来分词:

  1. 使用预先准备的词典,查找词典,把句子中的词汇找到
  2. 使用AI中的HMM算法
  3. 使用AI中的CRF算法
  4. 使用AI中的RNN/LSTM等深度学习算法

词典的方法比较好理解。假如我们预先收集了所有的中文词汇,那么对于任何一个新的句子,我们要做的就是把句子的各种词的组合拿到词典里面去验证,如果正好在词典里面找到了这个词,那说明测试的词汇是正确的。 这个方法的运用难点在于计算的效率。如果每次拿到一个新的疑似词汇,都和词典的词挨个比较,那么是相当花费时间的。计算机学科里面讲求算法的时间复杂度。简单来说,如果循环一次数据能搞定的事情,就绝对不会循环两次。因此词典应该实现做好索引,从而使得寻找某个词时候,我们能够用一次查找(几乎)的时间就准确回答出这个词到底在不在词典里面。

假设我们要对 "李白不是我。”这个句子进行分词,找到其中的所有词汇,使用词典找词汇的算法步骤如下。

  1. 假设词典里面的词的最长长度为M, 那么从句子的最开始,数M个汉字出来,拿到词典里面去比对,看看这个词是否存在。
  2. 如果该词存在,那么记录下来。同时从第M+1个汉字开始重复上述过程。
  3. 如果该词不存在,从句子最开始数M-1个汉字出来,重新去词典里面比较。
  4. 如果M减小到1以后(即句子的第一个字),那显然该字只能单独成词。这个时候我们把这个单词记录下来。然后从句子的第二字开始重复上述过程。
  5. 重复以上过程,直到整个句子分析完成。

以上面的句子为例,当我们比较长度为2个字的词时候,我们应该找到“李白”这个词。然后,我们从“不”开始,能找到“不是”第二个词。最后我们会找到“我”这个词。

其余的分词方法为AI相关算法。一般来说,AI算法需要大量的标签,即大量经过人工加注标签的句子。了解AI算法训练过程的人可能会觉的头疼。这么多词语意味着成千上万的标签,AI算法对上万的标签进行分类。其实分词的标注技巧在于,并不要求算法直接学会辨别出各种各样的词汇,而是只需要学会在句子中判断哪里是一个的词的开始(B),词的中间(I),次的结尾(E),和单独成词 (S)四种情况。这样就把问题大大简化为4中学习情况。比如下面的表示:

句子: 李太白不是我。

标签: B  I  E  B E S

有了无数这样人工标注好的句子,就可以让机器学习算法去自动学习了。一旦学好,对于新的句子,算法可以判断每个字属于词首,词中,词尾等性质,自然我们也就分好了词。所有B和E中间的字都属于一个词。

HMM (Hidden Markov Chain) 隐藏马科夫链条算法,是一种机器学习算法。对于判断句子中每个词的性质特别合适。其原理是假设每一个字都有n个不同隐藏(未知)的状态,并且有可以测量的表现形式,这个表现形式只依赖这个字的隐藏状态和前面一些字的隐藏状态(最简单的情况,只依赖于当前这个字和前面一个字的隐藏状态)。对于分词应用而言,HMM的隐藏状态就是B,I,E,S中的一种,表现形式就是我们看到的是哪个汉字。HMM的训练非常简单,维特比(Viterbi)算法可以快速给出答案。

CRF(Conditional Random Field) 算法和HMM最大的区别在于,HMM有条件独立的假设,并且当前的节点只依赖于之前的节点。而CRM去掉这些假设,并且可以考虑更多的特征组合,包括后面的节点信息,因而效果通常更好。

深度学习中的循环神经网络结构(如RNN, 或者LSTM)在特征组合上更加灵活,预测效果会更上一层楼。

分析结果

这些热文的第一个特点是文章内容有趣。怎么才能有趣呢? 看读者一般喜欢什么主题。比如说60%的读者喜欢娱乐相关内容,那么跟你也基本上有60%的可能性会点击娱乐性相关的文章。

如上图所示,前10大主题依次是:(1)社会话题,(2)时事话题,(3)国际话题,(4)健康话题(5)情感话题,(6)财经话题,(7)文化话题,(8)娱乐话题,(9)体育话题,(10)教育话题。其中“社会”和“时事”两个主题加起来占比接近50%。这样10大主题比例是否接近你的阅读习惯呢?

2.

这些文章的第二个特点是引人注目的标题。为了达到最大化吸引读者点击的目的,公众号的作者们,绝对是付出了“两句三年得,一吟泪双流”的艰辛努力。

阅读这些热文的标题,首先让人印象深刻的是标点符号的运用。经过简单统计,笔者发现居然有一半左右的热文标题用了感叹号! 另外接近20%的人喜欢用问号。 插一句,笔者自我检查发现,感叹号用的不多,不过问号好像常用。看来笔者的风格还不是最俗(热)。

感叹号 !

50% 使用比例

问号 ?

20% 使用比例

第二,我们看看这些热文的标题字数多少,是否有规律可循。

标题的长度分布如下图, 从下图可以看出,一般标题的长度在20个字左右。看来取标题不能太长,也不能太短。不过20个字来说,感觉还是偏长的。看来,标题里面要把事情讲的恰到好处,既不能拖沓也不能透露太多,字数的把握是个技巧。从分布来看,有的文章标题超过了60个字!

第三,我们运用中文分词的技术,来看看这些标题都用了哪些耳熟能详的词汇?

我们感兴趣的是哪些有意思的词汇出现热文标题里面呢? 答案是一些副词和形容词等词汇。常见的词汇,排名靠前的一些例子如下:

什么

最新

这些

我们

这样

为什么

刚刚

如何

今天

网友

真的

一定

终于

到底

紧急

注意

搞笑

突然

好消息

突发

AI分析:微信热文有什么特点?兼谈中文分词算法相关推荐

  1. 用 Python 将微信热文转换成Word文档 | 神级操作

    不得不说微信公众号已经成为了一个开放平台,每天数以万计的微信公众号文章在这产生,我们关注一个微信公众号每天便可以看到新的文章,我们同时也不知不觉的将好的文章分享到给朋友. 那么如何保存一个好的文章呢? ...

  2. 神级操作丨用 Python 将微信热文转换成Word文档

    不得不说微信公众号已经成为了一个开放平台,每天数以万计的微信公众号文章在这产生,我们关注一个微信公众号每天便可以看到新的文章,我们同时也不知不觉的将好的文章分享到给朋友. 那么如何保存一个好的文章呢? ...

  3. 微信热文捕手使用说明

    微信热文捕手下载地址 http://pan.baidu.com/s/1qYHIS5u 微信热文捕手使用说明 官网地址:http://www.wxhand.com.cn/ 0. 简介 微信热文捕手是一款 ...

  4. WaveSwipeRefreshLayout实现微信热文精选,微信热文安卓app版,activity中viewpager套fragment

    微信热文安卓app版,微信热文精选. 安卓结合HTML5快速开发app应用,比原生写出来的效果还要好.极大的减小安卓app应用大小. 代码示例(演示apk):http://download.csdn. ...

  5. 入门科普:一文看懂NLP和中文分词算法(附代码举例)

    导读:在人类社会中,语言扮演着重要的角色,语言是人类区别于其他动物的根本标志,没有语言,人类的思维无从谈起,沟通交流更是无源之水. 所谓"自然"乃是寓意自然进化形成,是为了区分一些 ...

  6. AI 玩微信跳一跳的正确姿势:跳一跳 Auto-Jump 算法详解

    作者丨安捷 & 肖泰洪 学校丨北京大学硕士生 研究方向丨计算机视觉 本文经授权转载自知乎专栏「学术兴趣小组」. 最近,微信小游戏跳一跳可以说是火遍了全国,从小孩子到大孩子仿佛每一个人都在刷跳一 ...

  7. AI玩微信跳一跳的正确姿势:跳一跳Auto-Jump算法详解

    最近,微信小游戏跳一跳可以说是火遍了全国,从小孩子到大孩子仿佛每一个人都在刷跳一跳,作为无(zhi)所(hui)不(ban)能(zhuan)的 AI 程序员,我们在想,能不能用人工智能(AI)和计算机 ...

  8. 设计模式 分析模式 华容道 中文分词算法......

    为什么80%的码农都做不了架构师?>>>    http://www.cnblogs.com/zhenyulu/ http://www.dofactory.com/Patterns/ ...

  9. 想让微信公众号文章上“朋友圈热文”?看看这个

    本周三(15日)开始,微信悄悄上线了"朋友圈热文"的新功能:当你在微信消息和通讯录页面进入搜索框后,除了出现"朋友圈"."文章"." ...

最新文章

  1. HTTP协议,之入门初尝
  2. 窃喜,第一次修改开源的东西
  3. Android艺术——性能优化问题
  4. 20071103网工考试
  5. 01. 仔细区分pointer和references
  6. ubuntu备份与恢复
  7. java struts2 验证码,struts2中验证码的生成和使用
  8. 100%快速解决谷歌翻译无法使用的问题,附修复工具
  9. sublime php code sniffer,Sublime插件CodeSniffer配置
  10. MoleBox PRO build 2.3.054,, Latest , Private Member Build Edition
  11. 台式电脑出厂编号怎么查_出厂编号的查询方法
  12. 刘元普双生贵子(但行好事,莫问前程)
  13. 使用openlayers加载地图行政区域(结合百度云地图)
  14. 计算机网络的形成与发展
  15. jQuery基础教程
  16. IDEA安装vue开发插件
  17. 基于RFID技术的预制件管理系统的开发
  18. 小米3电信版 无服务
  19. 简单认识向上转型和向下转型
  20. 福特试验电子围栏限速

热门文章

  1. 搭建微信小程序转码机器人教程
  2. computed vue 不 触发_vue computed 无法触发 set
  3. SAP的萨班斯法案SOA解决方案
  4. 【转】人家在美国怎么过的,7年,我无比惭愧
  5. 按键精灵读取github page 网页,实现脚本远程控制功能
  6. 实时视频应用之QoS关键技术分析
  7. Java学完后就业方向有哪些呢?
  8. VS Code插件Code Runner使用python虚拟环境
  9. pythonopencv提取轮廓区域_Python + Opencv 实现轮廓提取,轮廓区域面积计算
  10. C/C++面试高频知识点八股文