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

简介:

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

# coding:utf-8

import sys
import importlib
importlib.reload(sys)

import pynlpir

pynlpir.open()
s = '怎么才能把电脑里的垃圾文件删除'

key_words = pynlpir.get_key_words(s, weighted=True)
for key_word in key_words:
    print(key_word[0], 't', key_word[1])

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文件。

# coding:utf-8

import sys
import importlib
importlib.reload(sys)

import scrapy

class BaiduSearchSpider(scrapy.Spider):
    name = "baidu_search"
    allowed_domains = ["baidu.com"]
    start_urls = [
            "https://www.baidu.com/s?wd=电脑 垃圾 文件 删除"
    ]

    def parse(self, response):
        filename = "result.html"
        with open(filename, 'wb') as f:
            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。

# coding:utf-8

import sys
import importlib
importlib.reload(sys)

import scrapy
from scrapy.utils.markup import remove_tags

class BaiduSearchSpider(scrapy.Spider):
    name = "baidu_search"
    allowed_domains = ["baidu.com"]
    start_urls = [
            "https://www.baidu.com/s?wd=电脑 垃圾 文件 删除"
    ]

    def parse(self, response):
        # filename = "result.html"
        # with open(filename, 'wb') as f:
        #     f.write(response.body)
        hrefs = response.selector.xpath('//div[contains(@class, "c-container")]/h3/a/@href').extract()
        # for href in hrefs:
        #     print(href)
        #     yield scrapy.Request(href, callback=self.parse_url)
        containers = response.selector.xpath('//div[contains(@class, "c-container")]')
        for container in containers:
            href = container.xpath('h3/a/@href').extract()[0]
            title = remove_tags(container.xpath('h3/a').extract()[0])
            c_abstract = container.xpath('div/div/div[contains(@class, "c-abstract")]').extract()
            abstract = ""
            if len(c_abstract) > 0:
                abstract = remove_tags(c_abstract[0])
            request = scrapy.Request(href, callback=self.parse_url)
            request.meta['title'] = title
            request.meta['abstract'] = abstract
            yield request

    def parse_url(self, response):
        print(len(response.body))
        print("url:", response.url)
        print("title:", response.meta['title'])
        print("abstract:", response.meta['abstract'])
        content = remove_tags(response.selector.xpath('//body').extract()[0])
        print("content_len:", len(content))

参考资料:

《Python 自然语言处理》

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

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

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

目录
相关文章
|
3月前
|
人工智能 自然语言处理 API
给 Claude Code 省 97% Token 是真的吗?我把 caveman 装上跑了一周
caveman 是一款专为 Claude Code 等 AI 编码助手设计的省 token 插件,通过强制 AI 以极简“原始人式”语言输出(砍客套、留代码),平均压缩输出 token 65%。但它不省输入 token,甚至每轮多耗1–1.5k输入token,故短问答任务可能反增费用。实测显示:长文档/解释类任务真省钱,调试类任务慎用。省 token 的关键,在于上下文压缩+模型分级+输出优化三者协同,而非单靠插件。(239字)
670 1
|
4月前
|
数据采集 机器学习/深度学习 人工智能
数据清洗怎么做?一文讲清十大数据清洗常用方法!
AI落地成败,关键在数据质量!本文系统梳理数据清洗十大核心方法:缺失值智能填补、重复数据识别、异常值处置、标准化/归一化、连续变量离散化、文本深度清洗、类型统一转换、多源数据对齐、特征筛选构造、敏感信息脱敏。直击企业AI项目卡点,助你夯实AI地基。
|
4月前
|
人工智能 自然语言处理 运维
2026出海海外客服机器人怎么选?五家厂商多语言能力与全球号码接入横评
iiMedia Research(艾媒咨询)数据显示,2024年中国跨境电商市场规模突破2.4万亿元,预计2025年达到3万亿元;第一新声《2025年中国智能体客服市场发展研究报告》指出,互联网行业智能客服渗透率已超80%,跨境电商成为AI客服落地的核心战场之一。中国企业出海客服选型的关键判断已不是"哪家系统国际化能力最强",而是"哪家能同时满足海外多语言覆盖、全球号码接入、海外社媒渠道整合、跨境数据贯通和国内中台同源"五项核心要求。本文按五个维度横评五家厂商。
436 0
|
人工智能 边缘计算 搜索推荐
AI产品测试学习路径全解析:从业务场景到代码实践
本文深入解析AI测试的核心技能与学习路径,涵盖业务理解、模型指标计算与性能测试三大阶段,助力掌握分类、推荐系统、计算机视觉等多场景测试方法,提升AI产品质量保障能力。
|
9月前
|
JSON 人工智能 自然语言处理
基于Qwen-3B-Raw的本地化SD Prompt生成器研究
本项目用NLP技术把人类的模糊美学意图,蒸馏成可重复、可微调、可部署的图像生成指令引擎。
569 13
|
8月前
|
存储 Java 测试技术
阿里云服务器迁移架构参考:从x86到ARM架构倚天实例的适配教程参考
随着企业对云计算平台的要求不断提高,阿里云的倚天实例,采用ARM架构的倚天710处理器,提供更高能效比和计算性能。由于x86与ARM架构存在差异,将基于x86平台的应用迁移到倚天实例需进行适配和优化。迁移过程包括迁移准备、环境资源准备、应用测试与验证以及根据应用类型(编译型或解释型语言)进行源码迁移实践。充分准备和细致操作可助用户成功迁移,享受倚天实例卓越性能。
570 3
|
iOS开发 CDN Python
“企业微信iPad协议”沉默72小时后,一条群公告把掉粉率拉回0%
周三社群掉粉12%,因“福利推送”被刷屏折叠。接手后48小时内,发现企微未文档化接口:利用CDN预加载、iPad端特殊流控,拆分推送时段。27行Python脚本实现错峰发送,券核销率反升8%,掉粉率降至0.3%。私域从打扰变精准。
756 1
|
人工智能 监控 Python
[AI Embedchain] 集成 Langsmith
[AI Embedchain] 集成 Langsmith
[AI Embedchain] 集成 Langsmith
|
消息中间件 NoSQL Kafka
从 Redis 开源协议变更看开源软件与云计算巨头之间的竞争博弈
Redis将从BSD许可证转向RSALv2和SSPLv1的双重许可,以应对云时代挑战,保护开源精神,防止云厂商垄断。这一变化旨在确保开源软件的公平竞争,类似过去IE浏览器与操作系统绑定的情况。Redis的CEO指出,旧开源概念已不合时宜,云厂商应为使用开源项目做出贡献。AutoMQ作为云原生Kafka,采用BSL协议,旨在平衡开源与商业竞争,坚持可持续发展和开源初心。
523 2
从 Redis 开源协议变更看开源软件与云计算巨头之间的竞争博弈
|
算法 测试技术 C语言
优秀电源工程师需要的必备技能
本文介绍了成为优秀电源工程师所需掌握的技能。新手需具备扎实的理论基础,包括电路原理、编程和控制理论。进阶技能包括电路建模仿真(如PSIM、Matlab),器件参数选型(如二极管、MOSFET、电容、电感的选型),PCB绘制(使用Protel等软件),以及嵌入式程序开发(如DSP、MCU编程)。电源调试是关键步骤,包括功能验证、EMC测试和效率测试等。通过学习和实践,电源工程师可以不断提升自己,实现专业成长。
1534 1

热门文章

最新文章