Serverless實踐系列(一):如何通過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中,會大大提高頁面被索引的概率。

作者介紹:

劉宇,騰訊雲Serverless團隊後臺研發工程師。畢業於浙江大學,先後參與騰訊云云函數產品研發、自動擴縮容、CLI等模塊建設以及社區相關工作。本文轉載自微信公衆號 ServerlessCloudNative(ID:ServerlessGo)

相關文章:

《Serverless 實踐系列(二):爲 Python 雲函數打包依賴》
《Serverless 實踐系列(三):突破傳統 OJ 瓶頸,“判題姬”接入雲函數》
《Serverless 實踐系列(四):網站監控腳本的實現》

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章