NLP 系列-2:文字向量化 - tfidf

閱讀時間約 4 分鐘

文字資料該怎麼分析?

文字屬於非結構化資料,不像正常身高、體重、年紀等是直接的數值型結構化資料,無法直接在資料科學、機器學習中使用。
因此,需要將文字轉成數值才能進行後續處理,而此轉換又稱為向量化。

目錄

  • 文字資料該怎麼分析?
  • 文字向量化
  • tf-idf 簡介
  • 如何在 Python 中使用
  • 最後

文字向量化

最簡單的文字向量化方法就屬於 BoW(Bag of Word) 了,又稱為詞袋模型。
詞袋模型是一個基於單詞出現頻率來表示文字的方法,它並不考慮單詞的排列順序、或甚至是文法結構。
比如說一個分詞後的幾個句子:
原始句子:「每天努力學習資料科學,是為了成為一個資料科學家。」經過分詞後(jieba),會變成「每天/努力/學習/資料/科學/是/為/了/成為/一個/資料/科學家/」,此時每一個/分隔而成的就是一個詞,就可以用 BoW 來表示。
「每天」:1, 「努力」: 1, 「資料」: 2,以此類推。
就可以將上面這句話用向量表示為11維的向量[1,1,1,2,1,1,1,1,1,1],後續就可以使用任何ML的模型作為特徵輸入了。
但是這個方法有一個巨大的缺陷,隨著句子變長,重複的詞其特徵值會越來越大,在遇到許多贅詞的時候會顯得不符使用。
因此,為了平衡權重的調整,在不同長度的句子都可以更好地表示,也就是 tf-idf 的出現了!

tf-idf 簡介

tf-idf wiki 說明
有興趣可以去看看tf-idf定義,wiki講得很清楚!
這邊想與大家介紹的是 tf-idf 的背後直覺,tf 就是詞頻,也就是去數「詞」出現的頻率(機率),跟 BoW 沒有不同,而 idf 則是會根據該「詞」在各個檔案中出現的頻率倒數取 log,比如說我有 100 篇文章,而詞「科學家」只出現過 1 遍,那麼其 idf = log (100 / 1) = 2,如果在該篇文章中出現了 3 次(該文章總字數假設為100),則 tf = 3/100 = 0.03,就會得到 tf-idf = tf*idf = 0.03*2 = 0.06。
那我們可以看看相同另一個例子,如詞「是」可能就大量出現在各個文章中,比如 100 次,那麼 idf = log(100 / 100) = 1,而假設其中一篇文章的 tf 也為 0.03,其 tf-idf = 0.03*1 = 0.03。
可以發現,其數值在詞頻相同的情況下,因為出現在更多的文章中,就被限制了大小,可以達到贅詞會被限縮,而像「科學家」這樣比較有代表意義的則會給予比較大的權重。
tf-idf 背後的精神非常直覺,透過數學計算,將常出現在「各文章」的「詞」視為辨別度不高(idf),給予較低權重,但在「同一篇文章」中如果出現次數高(tf),可能具有代表意義,給予較高的權重,兩者互相平衡來表示。

如何在 Python 中使用(code snippet)

Python 的 sklearn 套件已經幫我們製作好了模組,其向量化只需要數行即可。後續即可輸入 ML 模型或者其他方法去分析。
ps: 還有許多超參數可供調整,可參考官方文件去研究唷!另外,此處套件會忽略「單字」,如果需要單字可以去更多研究唷!
from sklearn.feature_extraction.text import TfidfVectorizer# 已中文分詞
corpus = [
'我 是 優秀的 資料 科學 家',
'每天 學習 資料 科學 很 有趣']
vectorizer = TfidfVectorizer()
X = vectorizer.fit_transform(corpus)
vectorizer.get_feature_names() # ['優秀的', '學習', '有趣', '每天', '科學', '資料']
print(X.shape) # (2, 6)

最後

但 tf-idf 也有它自身的缺陷,如不考慮詞的擺放順序、詞與詞之間是獨立的、隨著詞庫增加,維度會爆炸且稀疏等等,不過在很多情況下,是一個非常實用的技術!
那這次的 NLP 系列就到這邊告一段落了!希望大家有學會一個新的文字向量化方法,也可以了解其背後的直覺!

如果覺得文章有幫助,也希望可以給我一些掌聲👏讓我更有動力繼續分享類似的主題,也歡迎提供任何主題想法哦!

參考
喜歡資料科學的朋友應該都有聽過 NLP(自然語言處理)的大名,日常生活的Gmail、Google Search、Spotify等等應用都有使用這個技術。希望透過這個系列與大家稍微分享一下我個人對於 NLP 的看法,讓我們一起探索這個有趣、迷人的領域吧!
留言0
查看全部
avatar-img
發表第一個留言支持創作者!
資料週週New的沙龍 的其他內容
文字、語言是生活中不可或缺的一部分,而隨著網路時代的開始,我們更多的活動轉往網路、手機中,而最常見的媒介就是文字(語言)了,不論是新聞、個人心得、心情分享、論文等等,都是透過文字來表達想法。而這麼多的內容,電腦是如何呈現出我們感興趣的內容呢?那首先就是需要讓電腦能夠去解讀、使用文字這種非結構化資料,
文字、語言是生活中不可或缺的一部分,而隨著網路時代的開始,我們更多的活動轉往網路、手機中,而最常見的媒介就是文字(語言)了,不論是新聞、個人心得、心情分享、論文等等,都是透過文字來表達想法。而這麼多的內容,電腦是如何呈現出我們感興趣的內容呢?那首先就是需要讓電腦能夠去解讀、使用文字這種非結構化資料,
你可能也想看
Google News 追蹤
Thumbnail
Hi 我是 VK~ 在 8 月底寫完〈探索 AI 時代的知識革命:NotebookLM 如何顛覆學習和創作流程?〉後,有機會在 INSIDE POSSIBE 分享兩次「和 NotebookLM 協作如何改變我學習和創作」的主題,剛好最近也有在許多地方聊到關於 NotebookLM 等 AI 工具
Thumbnail
國泰CUBE App 整合外幣換匯、基金、證券等服務,提供簡便、低成本的美股定期定額投資解決方案。 5分鐘開戶、低投資門檻,幫助新手輕鬆進軍國際股市;提供人氣排行榜,讓投資人能夠掌握市場趨勢。
Thumbnail
這是張老師的第三本書,我想前二本應該也有很多朋友們都有讀過,我想絕對是受益良多,而這次在書名上就直接點出,著重在從投資的角度來切入
Thumbnail
那天看到NLP(Neuro-Linguistic Programming)這個字忽然閃現。 這是一套以「科學」自居,聲稱能在短時間內轉變人的思想、情緒、行為的技巧。 爾後,我忽然看到一個畫面,是蜥蜴人。 蜥蜴人善於偽裝並在人群中穿梭,操控著世界擁有頂尖流量的人,甚至各國大領導都是蜥蜴人
Thumbnail
溝通的目的不是僅僅提供信息,而是讓對方接收並理解信息。 NLP的兩個假設前提:溝通的意義決定於對方的回饋、沒有失敗,只有回饋。
Thumbnail
NLP是什麼?因為我們過往的經驗漸漸形成潛意識,往後我們再回想相關經驗時,會勾起回憶裡的感受,而我們該怎麼將負面回憶的感受改寫,進而突破自己的現有的思考方式呢?
Thumbnail
NLP式溝通適用於各種溝通領域,包括家庭(親子)溝通、職場溝通、業務溝通甚至自我溝通,內文為陶玉銘老師的六個NLP經典短課程大綱(同時也提供客製課程主題)。
Thumbnail
放馬後炮的人在想什麼?老二哲學怎麼回事? 你身邊有沒有這種人?不管你做什麼決定,他都有意見。 ​不是說你這樣不對那樣不好、要嘛就是喜歡馬後炮。 ​事情當發生了、結果明朗了,他才補一句「早就跟你說過聽我的....」 ​ ​這種看起來只會出一張嘴的人,心裡在想什麼呢? ​他其實對自己的判斷頗
Thumbnail
前言 文章內容皆來自「NLP超強溝通術」這本書籍的讀後心得,吸收、內化後透過作者自己的理解進行整理與輸出。 建議您,可以先閱讀以下四篇文章: NLP溝通系列(一) - 什麼是NLP,如何幫助我們與他人互動更加順利? NLP溝通系列(二) - 溝通過程的誤區有哪些?
Thumbnail
前言 文章內容皆來自「NLP超強溝通術」這本書籍的讀後心得,吸收、內化後透過作者自己的理解進行整理與輸出。 建議您,可以先閱讀以下三篇文章: 【NLP溝通系列】EP.1 - 什麼是NLP,如何幫助我們與人互動更加順利? 【NLP溝通系列】EP.2 - 溝通過程的誤區有哪些? 觀察 與對方的步調同步
Thumbnail
前言 文章內容皆來自「NLP超強溝通術」這本書籍的讀後心得,吸收、內化後透過作者自己的理解進行整理與輸出。 建議您,可以先閱讀以下兩篇文章: 【NLP溝通系列】EP.1 - 什麼是NLP,如何幫助我們與人互動更加順利? 【NLP溝通系列】EP.2 - 溝通過程的誤區有哪些? 建立信賴關係 重點回顧
Thumbnail
前言 職場老是犯小人、與客戶溝通總是不順利、常常否定自己...,問問自己有這幾種狀況嗎? 如果有的話那麼表示我們的溝通能力需要改善,所謂的溝通也包含與自己的對話,而溝通其實是有一套邏輯的,我們只要能夠瞭解這樣的邏輯,並持續練習,相信溝通能力會越來越進步。 為什麼對方就是聽不懂? 雞同鴨講?
Thumbnail
前言 文章內容皆來自「NLP超強溝通術」這本書籍的讀後心得,吸收、內化後透過作者自己的理解進行整理與輸出。 什麼是NLP? 其實就很像我們的電腦程式一般,以眼睛、鼻子接收輸入(N),藉由經驗化為程式並透過思考判斷產生出決策的過程(P),透過語言或肢體進行輸出(L),這就是NLP的基本運作模式。
Thumbnail
Hi 我是 VK~ 在 8 月底寫完〈探索 AI 時代的知識革命:NotebookLM 如何顛覆學習和創作流程?〉後,有機會在 INSIDE POSSIBE 分享兩次「和 NotebookLM 協作如何改變我學習和創作」的主題,剛好最近也有在許多地方聊到關於 NotebookLM 等 AI 工具
Thumbnail
國泰CUBE App 整合外幣換匯、基金、證券等服務,提供簡便、低成本的美股定期定額投資解決方案。 5分鐘開戶、低投資門檻,幫助新手輕鬆進軍國際股市;提供人氣排行榜,讓投資人能夠掌握市場趨勢。
Thumbnail
這是張老師的第三本書,我想前二本應該也有很多朋友們都有讀過,我想絕對是受益良多,而這次在書名上就直接點出,著重在從投資的角度來切入
Thumbnail
那天看到NLP(Neuro-Linguistic Programming)這個字忽然閃現。 這是一套以「科學」自居,聲稱能在短時間內轉變人的思想、情緒、行為的技巧。 爾後,我忽然看到一個畫面,是蜥蜴人。 蜥蜴人善於偽裝並在人群中穿梭,操控著世界擁有頂尖流量的人,甚至各國大領導都是蜥蜴人
Thumbnail
溝通的目的不是僅僅提供信息,而是讓對方接收並理解信息。 NLP的兩個假設前提:溝通的意義決定於對方的回饋、沒有失敗,只有回饋。
Thumbnail
NLP是什麼?因為我們過往的經驗漸漸形成潛意識,往後我們再回想相關經驗時,會勾起回憶裡的感受,而我們該怎麼將負面回憶的感受改寫,進而突破自己的現有的思考方式呢?
Thumbnail
NLP式溝通適用於各種溝通領域,包括家庭(親子)溝通、職場溝通、業務溝通甚至自我溝通,內文為陶玉銘老師的六個NLP經典短課程大綱(同時也提供客製課程主題)。
Thumbnail
放馬後炮的人在想什麼?老二哲學怎麼回事? 你身邊有沒有這種人?不管你做什麼決定,他都有意見。 ​不是說你這樣不對那樣不好、要嘛就是喜歡馬後炮。 ​事情當發生了、結果明朗了,他才補一句「早就跟你說過聽我的....」 ​ ​這種看起來只會出一張嘴的人,心裡在想什麼呢? ​他其實對自己的判斷頗
Thumbnail
前言 文章內容皆來自「NLP超強溝通術」這本書籍的讀後心得,吸收、內化後透過作者自己的理解進行整理與輸出。 建議您,可以先閱讀以下四篇文章: NLP溝通系列(一) - 什麼是NLP,如何幫助我們與他人互動更加順利? NLP溝通系列(二) - 溝通過程的誤區有哪些?
Thumbnail
前言 文章內容皆來自「NLP超強溝通術」這本書籍的讀後心得,吸收、內化後透過作者自己的理解進行整理與輸出。 建議您,可以先閱讀以下三篇文章: 【NLP溝通系列】EP.1 - 什麼是NLP,如何幫助我們與人互動更加順利? 【NLP溝通系列】EP.2 - 溝通過程的誤區有哪些? 觀察 與對方的步調同步
Thumbnail
前言 文章內容皆來自「NLP超強溝通術」這本書籍的讀後心得,吸收、內化後透過作者自己的理解進行整理與輸出。 建議您,可以先閱讀以下兩篇文章: 【NLP溝通系列】EP.1 - 什麼是NLP,如何幫助我們與人互動更加順利? 【NLP溝通系列】EP.2 - 溝通過程的誤區有哪些? 建立信賴關係 重點回顧
Thumbnail
前言 職場老是犯小人、與客戶溝通總是不順利、常常否定自己...,問問自己有這幾種狀況嗎? 如果有的話那麼表示我們的溝通能力需要改善,所謂的溝通也包含與自己的對話,而溝通其實是有一套邏輯的,我們只要能夠瞭解這樣的邏輯,並持續練習,相信溝通能力會越來越進步。 為什麼對方就是聽不懂? 雞同鴨講?
Thumbnail
前言 文章內容皆來自「NLP超強溝通術」這本書籍的讀後心得,吸收、內化後透過作者自己的理解進行整理與輸出。 什麼是NLP? 其實就很像我們的電腦程式一般,以眼睛、鼻子接收輸入(N),藉由經驗化為程式並透過思考判斷產生出決策的過程(P),透過語言或肢體進行輸出(L),這就是NLP的基本運作模式。