会员中心 |  会员注册  |  兼职信息发布    浏览手机版!    精选9.9元!    人工翻译    英语IT服务 贫困儿童资助 | 留言板 | 设为首页 | 加入收藏  繁體中文
当前位置:首页 > 机翻技术 > 识别技术 > 正文

示例:在Twitter源中发现一些共现词

发布时间: 2023-03-30 09:27:31   作者:etogether.net   来源: 网络   浏览次数:


接下来要搜索一支名为RIMM的股票:

>>> lotsOtweets = fpGrowth.getLotsOfTweets('RIMM')

fetching page 1

fetching page 2


lotsotweets列表包含14个子列表,每个子列表有100条推文。可以输入下面的命令来查看推文的内容:

>>> lotsOtweets [0][4] .text

u"RIM: Open The Network, Says ThinkEquity: In addition, RIMM needs to reinvent its image, not only demonstrating ... http://bit.ly/lvlVlU"


正如所看到的那样,有些人会在推文中放人URL。这样在解析时,结果就会比较乱。因此必须去掉URL,以便可以获得推文中的单词。下面程序清单中的一部分代码用来将推文解析成字符串列表,另一部分会在数据集上运行FP-growth算法。将下面的代码添加到fpGrowth.py文件中。


程序清单2 文本解析及合成代码


程序清单2.png

上述程序清单中的第一个函数里添加了一行代码用于去除URL。这里通过调用正则表达式模块来移除任何URL。程序清单2中的另一个函数mineTweets()为每个推文调用textParse。最后,mineTweets()函数将命令封装到一起,来构建FP树并对其进行挖掘。最后返回所有频繁项集组成的列表。

下面看看运行的效果:


>>> reload(fpGrowth)

<module 'fpGrowth' from 'fpGrowth.py'>

Let's look for sets that occur more than 20 times:

>>> listOfTerms = fpGrowth.mineTweets(lotsOtweets, 20)

How many sets occurred in 20 or more of the documents?

>>> len(listOfTerms)

455


我写这段代码的前一天,一家以RIMM股票代码进行交易的公司开了一次电话会议,会议并没有令投资人满意。该股开盘价相对前一天封盘价暴跌22%。下面看下上述情况是否在推文中体现:


>>> for t in listOfTerms:

...           print t

set ([u'rimm', u'day'])

set ([u'rimm', u'earnings'])

set ([u'pounding', u'value'])

set ([u'pounding', u'overnight'])

set ([u'pounding', u'drops'])

set ([u'pounding', u'shares'])

set ([u'pounding', u'are'])

set ([u'overnight'])

set ([u'drops', u'overnight'])

set ([u'motion', u'drops', u'overnight'])

set ([u'motion', u'drops', u'overnight', u'value'])

set ([u'drops', u'overnight', u'research'])

set ([u'drops', u'overnight', u'value', u'research'])

set ([u'motion', u'drops', u'overnight', u'value', u'research'])

set ([u'motion', u'drops', u'overnight', u'research'])

set ([u'drops', u'overnight'; u'value'])


尝试一些其他的minSupport值或者搜索词也是蛮有趣的。


我们还记得FP树的构建是通过每次应用一个实例的方式来完成的。这里假设已经获得了所有数据,所以刚才是直接遍历所有的数据来构建Fp树的。实际上可以重写createTree()函数,每次读人一个实例,并随着Twitter流的不断输入而不断增长树。FP-growth算法还有一个map-reduce版本的实现,它也很不错,可以扩展到多台机器上运行。Google使用该算法通过遍历大量文本来发现频繁共现词,其做法和我们刚才介绍的例子非常类似。


责任编辑:admin


微信公众号

[上一页][1] [2] 【欢迎大家踊跃评论】
我来说两句
评分: 1分 2分 3分 4分 5分
评论内容:
验证码:
【网友评论仅供其表达个人看法,并不表明本站同意其观点或证实其描述。】
评论列表
已有 0 条评论(查看更多评论)