专栏首页Tencent Serverless 官方专栏SCF与自然语言处理为你的网站赋能
原创

SCF与自然语言处理为你的网站赋能

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

那就是填写网页的Description还有Keywords。难道每次都需要我们自己去填写么?还是说有一些奇淫巧技可以尝试。

本文将会通过Python的jieba和snownlp进行关键词提取和文本摘要实现。

准备资源

下载以下资源:

https://github.com/fxsjy/jieba
https://github.com/isnowfy/snownlp

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

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

# -*- coding: utf8 -*-
import json
import jieba.analyse
from 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中,会大大的提高页面被索引的概率哦~!

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

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

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Serverless架构与资源评估:性能与成本探索

    在很多的场合中,Serverless的布道师常常说Serverless架构和云主机等区别的时候,都会有类似的描述:

    Dfounderliu
  • SCF-Python依赖小工具

    Hi,各位小伙伴,近期我也写过一个关于如何打包Python依赖的小文章:https://cloud.tencent.com/developer/article/...

    Dfounderliu
  • 【尝鲜】全新SCFCLI帮你快速部署自己的云函数

    SCFCLI想必很多小伙伴都知道了,也都用过了,作为一个可以提高开发者效率的工具,CLI还是很有价值的。本次给大家介绍一下,新版SCFCLI增加的有趣的功能和优...

    Dfounderliu
  • Linux环境基本设置

    安装好Linux系统后,通常要做一些基本设置,比如网络,防火墙等。 1.修改ip地址,执行如下命令: vi /etc/sysconfig/network-sc...

    sparkle123
  • 2019二级C题库及解析(7)

    此题为if...else...语句的嵌套,第二if...else...作为第一个if...else...语句else部分的复合语句。

    用户6755376
  • 一级指针简单理解

    在 C 中操作地址就可以操作值,就跟 java 中两个引用类型拿到引用可以操作内一个对象一样。

    潇洒
  • 需求与匹配 | 从数据挖掘角度看世纪佳缘推荐系统

    昨天看到同事在朋友圈的这篇文章:《佳缘用户推荐系统》,再结合自己之前的几年的推荐系统经验,以及在婚恋网站半年多的经验,来谈谈我眼中的婚恋市场的推荐系统。 如作者...

    机器学习AI算法工程
  • O、Θ、Ω、o、ω,别再傻傻分不清了!

    前面几节,我们一起学习了算法的复杂度如何分析,并从最坏、平均、最好以及不能使用最坏情况全方位无死角的剖析了算法的复杂度,在我们表示复杂度的时候,通常使用大O来表...

    彤哥
  • 为什么大家都说Java中只有值传递?

    最近跟Java中的值传递和引用传递杠上了,一度怀疑人生。查了很多资料,加上自己的理解,终于搞清楚了,什么是值传递和引用传递。也搞明白了,为什么大家都说Java只...

    烟雨星空
  • 关于errno头文件

    EEXIST 是个宏定义,是Error EXIST 的缩写,EXIST 是“存在”的意思。errno是个全局变量,在errno.h头文件中定义,用于保存错误码,...

    于小勇

扫码关注云+社区

领取腾讯云代金券