本港台开奖现场直播 j2开奖直播报码现场
当前位置: 新闻频道 > IT新闻 >

报码:如何用Python从海量文本抽取主题?(2)

时间:2017-07-02 22:05来源:本港台直播 作者:j2开奖直播 点击:
阿富汗猎狗(Afghan Hound)是一种猎犬,也是最古老的狗品种。阿富汗猎狗外表厚实,细腻,柔滑,它的尾巴在最后一环卷曲。阿富汗猎狗生存于伊朗,阿富

阿富汗猎狗(Afghan Hound)是一种猎犬,也是最古老的狗品种。阿富汗猎狗外表厚实,细腻,柔滑,它的尾巴在最后一环卷曲。阿富汗猎狗生存于伊朗,阿富汗东部的寒冷山上,阿富汗猎狗最初是用来狩猎野兔和瞪羚。阿富汗猎狗其他名称包含巴尔赫塔子库奇猎犬,猎犬,俾路支猎犬,喀布尔猎犬,或非洲猎犬。

选项2:

1989年夏天,奥巴马在西德利·奥斯汀律师事务所担任暑期工读生期间,结识当时已是律师的米歇尔·鲁滨逊。两人于1992年结婚,现有两个女儿——大女儿玛丽亚在1999年于芝加哥芝加哥大学医疗中心出生,而小女儿萨沙在2001年于芝加哥大学医疗中心出生。

给你30秒,思考一下。你的答案是什么?

我的答案是——不确定。

人类天生喜欢把复杂问题简单化。我们恨不得把所有东西划分成具体的、互不干扰的分类,就如同药铺的一个个抽屉一样。然后需要的时候,从对应的抽屉里面取东西就可以了。

报码:如何用Python从海量文本抽取主题?

这就像是职业。从前我们说“三百六十行”。随便拿出某个人来,我们就把他归入其中某一行。

现在不行了,反例就是所谓的“斜杠青年”。

主题这个事情,也同样不那么泾渭分明。介绍小狗Bo的文章虽然不长,但是任何单一主题都无法完全涵盖它。

如果用户是因为对小狗的喜爱,阅读了这篇文章,那么显然你给他推荐选项1会更理想;但是如果用户关注的是奥巴马的家庭,那么比起选项2来,选项1就显得不是那么合适了。

我们必须放弃用一个词来描述主题的尝试,转而用一系列关键词来刻画某个主题(例如“奥巴马”+“宠物“+”狗“+”第一家庭“)。

在这种模式下,以下的选项3可能会脱颖而出:

据英国《每日邮报》报道,美国一名男子近日试图绑架总统奥巴马夫妇的宠物狗博(Bo),不惜由二千多公里远的北达科他州驱车往华盛顿,但因为走漏风声,被特勤局人员逮捕。奥巴马夫妇目前养有博和阳光(Sunny)两只葡萄牙水犬。

讲到这里,你大概弄明白了主题抽取的目标了。可是面对浩如烟海的文章,我们怎么能够把相似的文章聚合起来,并且提取描述聚合后主题的重要关键词呢?

主题抽取有若干方法。目前最为流行的叫做隐含狄利克雷分布(Latent Dirichlet allocation),简称LDA。

LDA相关原理部分,置于本文最后。下面我们先用Python来尝试实践一次主题抽取。如果你对原理感兴趣,不妨再做延伸阅读。

准备

准备工作的第一步,还是先安装Anaconda套装。详细的流程步骤请参考《 如何用Python做词云 》一文。

文章链接:

从微信公众平台爬来的datascience.csv文件,也可以下载。你可以用Excel打开,看看下载是否完整和正确。

下载地址:

https://s3-us-west-2.amazonaws.com/notion-static/8426b8d7145a4c898566145621b4b906/datascience.csv

报码:如何用Python从海量文本抽取主题?

如果一切正常,请将该csv文件移动到咱们的工作目录demo下。

到你的系统“终端”(macOS, Linux)或者“命令提示符”(Windows)下,进入我们的工作目录demo,执行以下命令。

报码:如何用Python从海量文本抽取主题?

运行环境配置完毕。

在终端或者命令提示符下键入:

报码:如何用Python从海量文本抽取主题?

Jupyter Notebook已经正确运行。下面我们就可以正式编写代了。

我们在Jupyter Notebook中新建一个Python 2笔记本,起名为topic-model。

报码:如何用Python从海量文本抽取主题?

为了处理表格数据,我们依然使用数据框工具Pandas。先调用它。

(责任编辑:本港台直播)
顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------
栏目列表
推荐内容