切詞工具結巴 Jeiba 優化標籤關鍵字

切詞工具結巴 Jeiba 優化標籤關鍵字
切詞工具結巴 Jeiba 優化標籤關鍵字

切詞功能 幫你找到適合的標籤

最近寫文發現會遇到一個問題,就是每篇文章都需要下標籤(Tags),有時會不知道要下哪些,或是這個詞是不是大家比較常搜尋的關鍵字。WordPress 會把每個標籤獨立成一頁,所以想把標籤盡量設成跟關鍵字有關,以利 SEO。

這幾天有朋友在問切詞工具的事,才發現原來有切詞的套件可以用,就是把文字丟進去,他就會回傳這些文字裡出現的關鍵字是什麼,也會照著關鍵字的權重來排列。

本篇筆記用的是這套:NodeJieba “结巴”分词的 Node.js 版本

會選它的原因是因為,Google 來 Google 去就是找到這套,星星數也算多,應該是蠻實用的。


結巴 Jieba 基本使用

結巴這套切詞工具,有多種程式語言版本,因為後端的部份 August 主要用 Node.js,所以就選用 Node Jieba。

先輸入指令安裝:

npm install nodejieba

接著 require 後就可以開始使用了:

const nodejieba = require('nodejieba');

文件說明結巴的切詞有分為幾種,範例使用了以下:

const txt = 'August, 前端工程師的學習筆記。希望可以幫上你的忙,也閃掉我曾踩過的坑。';
const result1 = nodejieba.cut(txt); // 切詞
const result2 = nodejieba.cut(txt, true); // 切詞 + 精準模式
const result3 = nodejieba.extract(txt, max); // 關鍵字抽取。 max:Number 最多顯示幾筆

讀出來的結果如下圖:

結巴的切詞結果
結巴的切詞結果

文件上說還可以加上字典,像這樣:

nodejieba.load({
  userDict: './test/testdata/userdict.utf8',
});

另外也提供了默認的字典介紹:

nodejieba.load({
  // 主詞典,帶權重和詞性標籤,建議使用替代詞典。
  dict: nodejieba.DEFAULT_DICT,

  // 隱式馬爾科夫模型,建議使用替代字典。
  hmmDict: nodejieba.DEFAULT_HMM_DICT,

  // 用戶詞典,建議自己根據需要定制。
  userDict: './test/testdata/userdict.utf8',

  // 關鍵詞抽取所需的idf信息。
  idfDict: nodejieba.DEFAULT_IDF_DICT,

  // 關鍵詞撤除所需的終止詞列表。
  stopWordDict: nodejieba.DEFAULT_STOP_WORD_DICT,
});

關於字典的說明,應該就是切詞的大宇宙了,看不太出來背後的意思。

本篇會實作的是 jieba.extract這個,它會回傳像關鍵字列表的陣列,並且依照權重排序,就是這一段:

結巴的切關鍵字結果
結巴的切關鍵字結果

切詞功能實際應用

因為之後想優化的是下標籤的部份,所以實作一個功能,就是查某篇網址底下內文中的關鍵字。步驟如下:

  1. 網址帶入一個參數 url,如:https://xxxxx.xxx.xx/tags?url=要抓關鍵字的網址
  2. 抓 url 的值,寫一隻爬蟲去爬內文。
  3. 把爬到的內文存成 string,丟給結巴去取出關鍵字。

因為是用 Node.js 的,所以可以寫在本機,或是放在 Google Cloud Platform 上。

如何在 GCP 上放 Node.js 的檔案可參考這篇:用 Google Cloud Platform(GCP)建 Node.js 網站

引用的套件有:express、axios、cheerio、nodejieba。

因為必須等爬蟲爬完,回傳了關鍵字後再 send 到頁面上,所以用的是 Async 的寫法,如果對 Async 還不太熟的話可參考這篇:Promise, Async, Await 基本使用筆記

最後完成的 code 如下:

最後先拿本機來測試,輸入網址:

http://localhost:8080/tags?url=https://letswrite.tw/promise-async-await/

就會看到結果了:

切詞功能實際應用
切詞功能實際應用

呵呵,竟然切了一個 XXX 出來,但 Promiseasyncawait 確實是文章裡最常出現的,可以當個參考。


參考資料

結巴 Jieba 的 GitHub:nodejieba

結巴 Jieba 的 NPM:nodejieba

Summary
切詞工具結巴 Jeiba 優化標籤關鍵字
Article Name
切詞工具結巴 Jeiba 優化標籤關鍵字
Description
本篇大綱:切詞功能 幫你找到適合的標籤、結巴 Jieba 基本使用、切詞功能實際應用、參考資料。每篇文章都需要下標籤(tags),有時會不知道要下哪些,或是這個詞是不是大家比較常搜尋的關鍵字。WordPress會把每個標籤獨立成一頁,所以想把標籤盡量設成跟關鍵字有關,以利 SEO。
August
Let's Write
Let's Write
https://letswritetw.github.io/letswritetw/dist/img/logo_512.png
訂閱
通知
guest

0 Comments
最舊
最新
Inline Feedbacks
看所有留言