iT邦幫忙

2021 iThome 鐵人賽

DAY 11
0
自我挑戰組

30天初步了解自然語言處理-自學筆記系列 第 11

[Day11] 文本/詞表示方式(二)-BOW與TFIDF

  • 分享至 

  • xImage
  •  

一. BOW

BOW的全名為Bag-of-words,中文是'一袋文字',意思就是將詞都丟進一個袋子裡,所以又稱'詞袋'模型,假設有n個句子(或文章),總共有m個詞,最後會形成nxm的矩陣,如下圖:

每個句子會有m個元素,若有出現在這個句子的詞,該詞的位置的地方會加1,以上圖為例,S1這個句子中出現1次W1,W2出現0次,W3出現3次,以此類推。

雖然這樣的表示方式非常簡便且快速,但缺點也是滿多的:

  1. 無法取得前後文的關係
  2. 無法解決一詞多義的問題
  3. 形成稀疏矩陣,0的元素過多

二. TF-IDF
全名為 Term Frequency - Inverted Document Frequency,其實就是由兩個部分相乘。分別為'Term Frequency(詞頻)'與 'Inverted Document Frequency(逆詞頻)',通常表示文本/句子中的每個詞的重要程度為何,也滿多人利用BOW與TFIDF的方式來表示文本/句子。

  1. 詞頻(TF):
    這個代表的意思就是詞出現的頻率,越多代表越重要,公式為: 一個詞出現在某一文件的次數/該文件中所有單詞的數量,如下圖,該圖為維基提供的圖,i表示第i個詞,j表示第j篇文章,k表示第j篇文章的所有詞,舉一個例子,若'優秀'在一篇文章文章出現20次,但這篇文章有5000個字,另一篇文章'優秀'出現10次,但這篇只有100個字,所以 tf('優秀', '文件一'): 為 1/250,tf('優秀', '文件二'): 為 1/10
    https://ithelp.ithome.com.tw/upload/images/20210911/20140426iwtrBnzg7k.png

  2. 逆詞頻(IDF):
    這個是用來制衡詞頻帶來的一些負面影響,像是'的'這個詞出現非常多次而且每篇文章都有,但這個詞本身比不重要。用idf來抑制剛剛的情況,每個「詞」在所有「文件」站的重要性為何,公式如下該圖為維基提供的圖,D表示所有的文件,分母表示這個詞出現在幾篇文章當中,這樣像是'的',他的IDF都很低
    https://ithelp.ithome.com.tw/upload/images/20210911/20140426yiBHyMbti7.png

  3. TF-IDF
    將上述2者相乘即可~~


明天會利用python來實作TFIDF~


上一篇
[Day10] 文本/詞表示方式(一)-前言
下一篇
[Day12] 文本/詞表示方式(三)-TFIDF實作
系列文
30天初步了解自然語言處理-自學筆記30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言