写点什么

Serverless 实践系列(一):如何通过 SCF 与自然语言处理为网站赋能

2019 年 8 月 16 日

Serverless实践系列(一):如何通过SCF与自然语言处理为网站赋能

自然语言的内容有很多,本文所介绍的自然语言处理部分是“文本摘要”和“关键词提取”。在做博客的时候,经常会发一些文章,这些文章发出去了,有的很容易被搜索引擎检索,有的则很难,那么有没有什么方法,让博客对搜索引擎友好一些呢?


一个比较好的方法就是填写网页的 Description 还有 Keywords。但是每次都需要我们自己去填写,比较繁琐,本文将会分享一种方法:通过 Python 的 jieba 和 snownlp 实现关键词和文本摘要的自动提取。


准备资源

下载以下资源:


https://github.com/fxsjy/jieba


https://github.com/isnowfy/snownlp


下载之后,新建文件夹,将这些文件中对应的文件拷贝:



拷贝之后,建立文件index.py


# -*- coding: utf8 -*-import jsonimport jieba.analysefrom snownlp import SnowNLP
def FromSnowNlp(text, summary_num): s = SnowNLP(text) return s.summary(summary_num)
def FromJieba(text, keywords_type, keywords_num): if keywords_type == "tfidf": return jieba.analyse.extract_tags(text, topK=keywords_num) elif keywords_type == "textrank": return jieba.analyse.textrank(text, topK=keywords_num) else: return None
def main_handler(event, context): text = event["text"] summary_num = event["summary_num"] keywords_num = event["keywords_num"] keywords_type = event["keywords_type"]
return {"keywords": FromJieba(text, keywords_type, keywords_num), "summary": FromSnowNlp(text, summary_num)}
复制代码


上传文件

在 SCF 网页上面建立一个项目:




提交方法选择上传 zip,然后压缩文件,并改名为 index.zip:



测试

测试之前可以适当调整一下配置:



然后进行 input 模板的输入:



模板可以是:


{  "text": "前来参观的人群络绎不绝。在“两弹历程馆”里,讲解员龚照怡正在给参观的学生介绍:“这是我国第一颗核航弹的模型,长3米、直径1.5米左右,后面就是它爆炸时产生的蘑菇云。”学生们一边听一边认真记录。记者看到,馆内利用声、光、电等手段,通过实物、模型、影像资料和场景复原,展现“两弹”研制工作的艰辛历程。“算盘、计算尺这些文物都是激励后人艰苦奋斗的好教材。我们让文物‘回家’,让观众看到当年科研人员住什么样的房子,用什么样的用具,了解在那么艰苦的环境下,他们是怎样研制‘两弹’的,怎么样让中国挺起了民族的脊梁。”四川省梓潼两弹城红色旅游开发有限公司副总经理贾鲁蓉告诉记者,作为爱国主义教育基地,这里目前存有2万多份图片资料、500多万字文字资料、3000余件实物。在“两弹历程馆”的不远处是“将军楼”。1983年5月20日,时任国防部部长张爱萍将军来到长卿山视察中物院,看到科学家们在大山沟里艰苦卓绝地工作,即兴赋诗一首:“二十二年难忘情,崎岖道路信踏平。屡建奇功震寰宇,更创奇迹惊鬼神。”",  "summary_num": 5,  "keywords_num": 5,  "keywords_type": "tfidf"}
复制代码


然后点击测试:



应用

至此,我们完成了简单的关键词提取功能和简单的抽取式文本摘要过程。当然,这部分依旧是一个简单的抛砖引玉,因为摘要这里还要声称是文本摘要,而且抽取式摘要也可能会根据不同的文章类型,有着不同的特色方法,所以这里只是通过一个简单的 Demo 来实现一个小功能,帮助大家做一个简单的 SEO 优化,大家可以在做博客的时候,增加 keywords 或者 description 字段,然后每次从 sql 获得文章数据的时候,将这两个部分放到 meta 中,会大大提高页面被索引的概率。


作者介绍:


刘宇,腾讯云 Serverless 团队后台研发工程师。毕业于浙江大学,先后参与腾讯云云函数产品研发、自动扩缩容、CLI 等模块建设以及社区相关工作。本文转载自微信公众号 ServerlessCloudNative(ID:ServerlessGo)


相关文章:


《Serverless 实践系列(二):为 Python 云函数打包依赖》


《Serverless 实践系列(三):突破传统 OJ 瓶颈,“判题姬”接入云函数》


《Serverless 实践系列(四):网站监控脚本的实现》


2019 年 8 月 16 日 15:3413696

评论

发布
暂无评论
发现更多内容

“复制”马斯克(一):全世界都会为“自大狂”让路吗?

脑极体

产品训练营-第五课

Geek_娴子

智能汽车为什么新势力有胜算(28天写作 Day20/28)

mtfelix

28天写作 新能源汽车 智能汽车 造车新势力

一个 3 年 Java 程序员 5 家大厂的面试总结(已拿Offer)

Java架构之路

Java 程序员 架构 面试 编程语言

开发质量提升系列:问题登记列表(下)

罗小龙

生产事故 28天写作 解决思路

Libra演进与数字货币国际化

CECBC区块链专委会

区块链

教你用Java字节码做点有趣的事

比伯

Java 编程 架构 程序人生 计算机

10 个 JavaScript 简洁代码小技巧(文末彩蛋)

零和幺

JavaScript 前端 CleanCode

5年Java经验不会源码被拒,苦学这些Spring源码笔记后,面试不再慌

Java架构之路

Java 程序员 架构 面试 编程语言

“区块链新闻编辑部”: 从“云媒体”到“链媒体”的现实跨越

CECBC区块链专委会

区块链技术

nodejs的调试debug

程序那些事

debug 调试 nodejs 程序那些事 程序调试

4位阿里架构师共著的《深入浅出Java多线程》,膜拜大佬

Java成神之路

Java 程序员 架构 面试 编程语言

这是阿里技术专家对 SRE 和稳定性保障的理解

阿里巴巴云原生

项目管理 运维 云原生 安全 监控

KubeVela:标准化的云原生平台构建引擎

阿里巴巴云原生

容器 云原生 k8s API OAM

3年JAVA开发经验成功入职美团,面试回顾及个人总结:算法+框架+Redis+分布式+JVM

Java成神之路

Java 程序员 架构 面试 编程语言

阿里四年技术 TL 的得失总结:如何做好技术 Team Leader

阿里巴巴云原生

云计算 项目管理 程序员 微服务 云原生

模块分解 - 微服务架构认识与思考

raox

精彩的封面 | 视频号 28 天(20)

赵新龙

28天写作

9个REST API设计的基本准则

devpoint

APi设计 RESTf

一文搞懂“技术债”

李忠良

28天写作

质量管理工作者的三重境界

俊毅

同事跳槽京东后,分享给我一份JAVA核心开发手册(架构筑基+开源框架+分布式架构+微服务架构+性能调优)

Java成神之路

Java 程序员 架构 面试 编程语言

30天消化MyBatis源码解析笔记,吊打面试官,offer接到手软

Java架构之路

Java 程序员 架构 面试 编程语言

程序员入职新公司,只需8步,直接凸显出个人价值

Java架构师迁哥

CSS(六)——用CSS设置图像效果

程序员的时光

程序员 前端 七日更 28天写作

拍乐云 Flutter SDK 全新发布,跨平台音视频开发更easy

拍乐云Pano

flutter 音视频 WebRTC RTC

淦!阿里P9加班4个多月肝出这份包含了30多个技术点的Java核心笔记

Java成神之路

Java 程序员 架构 面试 编程语言

Dubbo 3.0 前瞻之对接 Kubernetes 原生服务

阿里巴巴云原生

容器 运维 云原生 k8s dubbo

Elasticsearch 基于脚本进行 partial update

escray

elastic 七日更 28天写作 死磕Elasticsearch 60天通过Elastic认证考试

Flink可靠性的基石-checkpoint机制详细解析

五分钟学大数据

大数据 flink

三张图解释静态NAT、动态NAT、PAT

边缘计算隔离技术的挑战与实践

边缘计算隔离技术的挑战与实践

Serverless实践系列(一):如何通过SCF与自然语言处理为网站赋能-InfoQ