終於到最後一天了,可喜可賀可喜可賀!其實我也知道在這30天的期間內還有很多沒能講到的東西,既然都到最後一天了,那今天就來大概介紹一下那些沒能提到的事情吧!
然後在國慶連假時我們小組裡有人忘記發文,明明都寫到26天結果卻因此斷賽了,哭阿。
其實現在想想,在介紹自然處理(Natural Language Processing,簡稱 NLP)的方法時,也許應該先提一下這個方法的...畢竟 N-gram 是一種基於機器學習的語言模型。要知道所有的語言模型 (Language Model)在做的其實都是一件事,那就是「預測一個句子/詞的機率」說。比方說:
眾上所述,而 N-gram 模型是一種語言概率模型,它的輸入是一句話,輸出則是這句話出現的概率。常用的有二元語法 Bi-gram(n=2)和三元語法 Tri-gram(n=3),它會將文本里面的內容按照字節進行大小為 N 的滑動窗口操作,形成了長度是 N 的字節片段序列。
舉個例子,假設我們輸入的句子是『 I am a student 』,則:
Bi-gram:{(I,am),(am,a),(a,stuedent)}
Tri-gram:{(I,am,a),(am,a,student)}
而每一個字節片段稱為 gram,我們會對所有 gram 的出現頻率進行統計。之後假設第 N 個詞的出現只與前面 N-1 個詞相關,而與其它任何詞都不相關,則整句話的機率就是各個詞出現機率的乘積。
既然都提到 N-gram 了,那就順便來介紹一下 TF-IDF 好了。因為 TF-IDF 很常和 N-gram 搭配在一起來做像是文章的關鍵字提取或是文章的相似度比較、文章分類之類的任務。
TF-IDF 是一種統計方法,主要是用來評估一個詞對於一篇文章的重要程度。TF-IDF 演算法包含了兩個部分:詞頻(term frequency,TF)跟逆向文件頻率(inverse document frequency,IDF)。
我們將第 個詞彙對於第 篇文件的 TF-IDF 權重定義為 = x 。當辭彙 很常出現在文章 內卻不常出現在其他文章內時, 和 相乘起來就會很大,我們就能夠知道說辭彙 對於文章 而言非常重要了。
因為傳統的神經網路只能處理一維資料的緣故,因此它有個問題就是他往往會忽略資料的形狀。如果我們使用傳統的神經網路去做圖像識別的話,就需要將2維的圖片打散成1維。而 CNN 就是為了處理這類問題而被開發出來的架構。
(還記得我們在介紹 Self-Attention 時有提到,有人打算用 CNN 的架構來處理 RNN 的問題嗎? 這下你就知道 CNN 的架構有多靈活了吧)
CNN 相較傳統的架構多了 Convolutional layer(卷積層)及 Pooling layer (池化層),用來維持形狀資訊並且避免參數大幅增加。其中,卷積層主要負責做特徵擷取;池化層負責降低參數。在加入此兩層後,最後再加入全連結層並搭配 Softmax 函式來決定輸出結果。
https://zhuanlan.zhihu.com/p/32829048
https://taweihuang.hpd.io/2017/03/01/tfidf/
https://chtseng.wordpress.com/2017/09/12/%E5%88%9D%E6%8E%A2%E5%8D%B7%E7%A9%8D%E7%A5%9E%E7%B6%93%E7%B6%B2%E8%B7%AF/
不知不覺30天就過去了,雖然我們介紹的東西可能很簡單,但是我其實也不過是個嫩嫩的學生,可能很多東西的內容介紹的並不完善,還可能講錯,但是透過這些回顧,我也理解了自己哪些地方不足,也算是一次難能可貴的經驗。