總結與心得 本來想分兩個段落來寫總結和心得,只是寫著寫著發現,這兩個段落相輔相成。這次我的主題是關於我個人非常喜歡的自然語言處理,儘管內容沒有太多涉入當今的st...
總覽 今天我們要使用昨天說到的Lin similarity來計算字與字之間的相似度。我們將會使用Brown Corpus作為訓練文集,以及Wordnet中的文字...
當我們在進行字義分析時可能會遇到一種狀況: "This is a good movie." → :)"This is a gre...
除了考慮字母出現的機率和在各種長度中各個字母出現的機率,今天我們也把字母的排列順序列入考量。例如,我們看到一個字 m _ s s,我們知道他有很高的機率會是母音...
Day 24時結尾提到幾個存在的問題:「(1) 當文集資料量變大時,每個東西出現的機率會將得非常低,所得到的最終機率也會非常低;(2) 若是有個東西出現在文集的...
第一種猜字方法:隨機猜字 為了設下一個基準,我們先設計一種AI方法--每次從26個字母中隨機選取一個字母來猜。這裡我先將26個字母存到 list 中,再用 nu...
距離完成我的三十天鐵人賽剩下最後的七篇文章了。我打算用一個遊戲--Hangman猜字遊戲來結束這個系列。昨天說到語言模型,語言模型可以以字詞為單位作N-gram...
如同我們在Day 4講到自然語言生成時提到的,語言模型在做的就是將機率指向一個序列的文字。 語言模型有許多延伸的應用,例如:語音辨識、拼字檢查、機器翻譯、查詢...
雖然在現代,機器翻譯是個常見的功能(Google翻譯、Bing、...等),但事實上機器翻譯至今仍是個AI-hard的挑戰。 根據Vaquios三角形,翻譯被...
問答系統是一個自動為一自然語言問題找出答案(組)的任務。 這是Google的問答系統(我也不知道為什麼Google會幫歐巴馬放上這張圖XD)。 我們能夠用資...
The president of the United States is Donald Trump. (美國總統是川普。) 資訊抽取技術在看到這句話時,會...
過去12天都在講搜尋引擎技術和資訊檢索,這幾天要拉回來繼續介紹自然語言處理界的常見任務了! 命名實體辨識(Named Entity Recognition),顧...
昨天說到使用三種統計方法來評估搜尋引擎,分別是準確率、精確率以及召回率。今天我們要接著說到幾個搜尋引擎的衡量指標。 第一個方法稱為Precision@k,它衡量...
今明兩天要來說說,我們可以如何判斷和評估一個搜尋引擎的效果。 先從三個在統計學和機器學習領域基礎而重要的評估方式說起:準確率(Accuracy)、精確率(Pre...
日常生活中,當我們在用搜尋引擎查詢時應該都經常受一個功能的輔助: 預測查詢,或稱為完成查詢,顧名思義,這功能用於輔助使用者完成他們的查詢。 完成查詢除了能輔助...
今天我們要介紹用來提升查詢效率的WAND演算法。 在這個演算法中我們會為每一個字詞記錄一個數值,這個數值稱為maximum contribution。一個字詞的...
搜尋的速度是影響使用者對一個搜尋引擎體驗的一個因素,對於活在2019的你來說,很難想像在Google Search時你要等兩秒(不包含網路封包傳送的時間)才能等...
這幾天我們都在「靜態」的情況下建構倒排索引,文集中的文件數不變、空間使用不會有太大變化,也沒有及時新增或修改。即便如此,要建構這樣的靜態索引還是可能會出現一些難...
今天我們要來實作倒排索引的空間壓縮。這裡我們會利用昨天文中介紹的VByte壓縮法壓縮倒排索引中的文件ID doc_ids 以及文件-詞頻列表 doc_term_...
如同我們前幾天所寫的倒排索引,多數搜尋引擎為了查詢的效率,會將索引儲存在記憶體當中。如此,需要足夠的記憶體才能夠將所有索引儲存起來。如果我們能夠從索引的資料型態...
在搜尋技術中TF-IDF是個很基礎而重要的統計方式。什麼是TF-IDF呢?而又為什麼需要TF-IDF? TF-IDF的全名是Term Frequency - I...
1. 預處理 今天的實作我們會使用華爾街日報的的文件集,我有預先將文件集切割成只有兩萬份文件的集合,這份文件集能夠從以下的code中下載。在今天的實作中,我們會...
在Day 6的文章中,我們說到在進行搜尋時,我們首要關心的是查詢的詞與文件間的相似度。我用一個例子作為開端:假如我們有三個檔案,分別叫做doc1, doc2以及...
語言是由文字組合出來的。作為一個人類,我們能夠將一篇文章分割成好幾個部分來閱讀和理解,為了讓電腦理解一篇文章,它也必須能夠這麼做。 第一步就在於文字的預處理和正...
什麼是資訊檢索呢?大家最清楚的例子莫過於網路搜尋引擎了。當你在Google Search上輸入一段你想查詢的字,作為一個使用者通常會跟搜尋引擎有以下的互動: (...
昨天說到語言模型,今天要來介紹另一個模型--主題模型(Topic Model)。主題模型能夠幫助人們短時間理解原本幾乎不可能讀得完的大型非結構化的文集,例如科學...
今天介紹NLP常見任務的第三項:自然語言生成(Natural Language Generation) 自然語言處理的一大目標是要讓電腦讀懂人類在說什麼,就如同...
昨天的文中我們說到詞性標註,今天讓我們透過NLP界經典的Python Library-NLTK,親手讓電腦幫我們標注文中的詞性。如系列簡介所說,在這30天中,我...
還記得第一次使用手機上的「Hey, Siri」或是「Ok, Google」功能時的自己有多興奮嗎?在接下來幾天的文中,我會講解昨天提到的幾個自然語言處理主要課題...
明明整個網路中有成千上萬的資料,為什麼Google能在一秒內告訴我答案?搜尋引擎以及各網站的搜尋功能到底是怎麼運作的?為什麼我在搜尋列輸入一大串字之後,搜尋引擎...