前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >学习笔记CB005:关键词、语料提取

学习笔记CB005:关键词、语料提取

原创
作者头像
利炳根
发布2018-03-06 10:00:09
8520
发布2018-03-06 10:00:09
举报
文章被收录于专栏:利炳根的专栏

关键词提取。pynlpir库实现关键词提取。

代码语言:txt
复制
# coding:utf-8
代码语言:txt
复制
import sys
代码语言:txt
复制
import importlib
代码语言:txt
复制
importlib.reload(sys)
代码语言:txt
复制
import pynlpir
代码语言:txt
复制
pynlpir.open()
代码语言:txt
复制
s = '怎么才能把电脑里的垃圾文件删除'
代码语言:txt
复制
key_words = pynlpir.get_key_words(s, weighted=True)
代码语言:txt
复制
for key_word in key_words:
代码语言:txt
复制
    print(key_word[0], 't', key_word[1])
代码语言:txt
复制
pynlpir.close()

百度接口:https://www.baidu.com/s?wd=机器学习 数据挖掘 信息检索

安装scrapy pip install scrapy。创建scrapy工程 scrapy startproject baidu_search。做抓取器,创建baidu_search/baidu_search/spiders/baidu_search.py文件。

代码语言:txt
复制
# coding:utf-8
代码语言:txt
复制
import sys
代码语言:txt
复制
import importlib
代码语言:txt
复制
importlib.reload(sys)
代码语言:txt
复制
import scrapy
代码语言:txt
复制
class BaiduSearchSpider(scrapy.Spider):
代码语言:txt
复制
    name = "baidu_search"
代码语言:txt
复制
    allowed_domains = ["baidu.com"]
代码语言:txt
复制
    start_urls = [
代码语言:txt
复制
            "https://www.baidu.com/s?wd=电脑 垃圾 文件 删除"
代码语言:txt
复制
    ]
代码语言:txt
复制
    def parse(self, response):
代码语言:txt
复制
        filename = "result.html"
代码语言:txt
复制
        with open(filename, 'wb') as f:
代码语言:txt
复制
            f.write(response.body)

修改settings.py文件,ROBOTSTXT_OBEY = False,USER_AGENT = 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/50.0.2661.102 Safari/537.36' ,DOWNLOAD_TIMEOUT = 5 ,

进入baidu_search/baidu_search/目录,scrapy crawl baidu_search 。生成result.html,正确抓取网页。

语料提取。搜索结果只是索引。真正内容需进入链接。分析抓取结果,链接嵌在class=c-container Div h3 a标签 href属性。url添加到抓取队列抓取。提取正文,去掉标签,保存摘要。提取url时,提取标题和摘要,scrapy.Request meta传递到处理函数parse_url,抓取完成后能接到这两个值,提取content。完整数据:url、title、abstract、content。

代码语言:txt
复制
# coding:utf-8
代码语言:txt
复制
import sys
代码语言:txt
复制
import importlib
代码语言:txt
复制
importlib.reload(sys)
代码语言:txt
复制
import scrapy
代码语言:txt
复制
from scrapy.utils.markup import remove_tags
代码语言:txt
复制
class BaiduSearchSpider(scrapy.Spider):
代码语言:txt
复制
    name = "baidu_search"
代码语言:txt
复制
    allowed_domains = ["baidu.com"]
代码语言:txt
复制
    start_urls = [
代码语言:txt
复制
            "https://www.baidu.com/s?wd=电脑 垃圾 文件 删除"
代码语言:txt
复制
    ]
代码语言:txt
复制
    def parse(self, response):
代码语言:txt
复制
        # filename = "result.html"
代码语言:txt
复制
        # with open(filename, 'wb') as f:
代码语言:txt
复制
        #     f.write(response.body)
代码语言:txt
复制
        hrefs = response.selector.xpath('//div[contains(@class, "c-container")]/h3/a/@href').extract()
代码语言:txt
复制
        # for href in hrefs:
代码语言:txt
复制
        #     print(href)
代码语言:txt
复制
        #     yield scrapy.Request(href, callback=self.parse_url)
代码语言:txt
复制
        containers = response.selector.xpath('//div[contains(@class, "c-container")]')
代码语言:txt
复制
        for container in containers:
代码语言:txt
复制
            href = container.xpath('h3/a/@href').extract()[0]
代码语言:txt
复制
            title = remove_tags(container.xpath('h3/a').extract()[0])
代码语言:txt
复制
            c_abstract = container.xpath('div/div/div[contains(@class, "c-abstract")]').extract()
代码语言:txt
复制
            abstract = ""
代码语言:txt
复制
            if len(c_abstract) > 0:
代码语言:txt
复制
                abstract = remove_tags(c_abstract[0])
代码语言:txt
复制
            request = scrapy.Request(href, callback=self.parse_url)
代码语言:txt
复制
            request.meta['title'] = title
代码语言:txt
复制
            request.meta['abstract'] = abstract
代码语言:txt
复制
            yield request
代码语言:txt
复制
    def parse_url(self, response):
代码语言:txt
复制
        print(len(response.body))
代码语言:txt
复制
        print("url:", response.url)
代码语言:txt
复制
        print("title:", response.meta['title'])
代码语言:txt
复制
        print("abstract:", response.meta['abstract'])
代码语言:txt
复制
        content = remove_tags(response.selector.xpath('//body').extract()[0])
代码语言:txt
复制
        print("content_len:", len(content))

参考资料:

《Python 自然语言处理》

http://www.shareditor.com/blogshow/?blogId=43

http://www.shareditor.com/blogshow?blogId=76

欢迎推荐上海机器学习工作机会,我的微信:qingxingfengzi

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
腾讯云 TI 平台
腾讯云 TI 平台(TencentCloud TI Platform)是基于腾讯先进 AI 能力和多年技术经验,面向开发者、政企提供的全栈式人工智能开发服务平台,致力于打通包含从数据获取、数据处理、算法构建、模型训练、模型评估、模型部署、到 AI 应用开发的产业 + AI 落地全流程链路,帮助用户快速创建和部署 AI 应用,管理全周期 AI 解决方案,从而助力政企单位加速数字化转型并促进 AI 行业生态共建。腾讯云 TI 平台系列产品支持公有云访问、私有化部署以及专属云部署。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档