about 4 years ago

1.Introduction

在自然語言處理中, 想要探討兩個字之間, 是否存在某種關係, 例如某些字比較容易一起出現, 這些字一起出現時, 可能帶有某種訊息

例如, 在新聞報導中, 有 New , York , 這兩個字一起出現, 可以代表一個地名 New York , 所以當出現了 New 這個字, 則有可能出現 York

這可以用 Pointwise Mutual Information(PMI) 計算

Pointwise Mutual Information 的公式如下:

Read on →
 
about 4 years ago

1.Introduction

如果要把 string 的內容, 當成程式碼來執行, 可以用到 evalexec

例如有個 string , 為 s1="3+5" 我們想要算它執行的結果, 可用

>>> s1="3+5"
>>> eval(s1)
8

來看一下怎麼用 evalexec

2. eval

eval 是當我們要計算某一個字串中的運算, 並且 會回傳計算結果 ,如下

>>> eval('3+1')
4
Read on →
 
about 4 years ago

1.Motivation

本文接續先前提到的 Overfitting and Regularization
Machine Learning -- Overfitting and Regularization
探討如何避免 Overfitting 並選出正確的 Model

因為 Overfitting 的緣故, 所以無法用 來選擇要用哪個 Model

在上一篇文章中, 可以把 最小的 Model 當成是最佳的 Model , 但是在現實生活的應用中, 無法這樣選擇, 因為, 在訓練 Model 時,無法事先知道 Testing Data 的預測結果是什麼 ,所以就不可能用 來選擇 Model

既然這樣, 要怎麼辦呢? 既然不可以用 來選擇 Model , 又無法事先算出

Read on →
 
over 4 years ago

1.Introduction

所謂的 TF-IDF , 是用來找出一篇文章中, 足以代表這篇文章的關鍵字的方法

例如, 有一篇新聞, 是 nltkReuters Corpus 中的文章, 這篇文章被歸類在 grain , ship 這兩種類別下, 文章的內容如下:

GRAIN SHIPS LOADING AT PORTLAND
There were three grain ships loading and two ships were waiting to load at Portland , according to the Portland Merchants Exchange .

假設不知道什麼是 TF-IDF, 先用人工判別法試看看, 這篇新聞的關鍵字, 應該是 Portland , ship , grain 之類的字, 而不會是 to , at 這種常常出現的字
為什麼呢?因為 toat 雖然在這篇文章中出現較多次, 但其他文章中也常有這些字, 所謂的關鍵的字, 應該是在這篇文章中出現較多次, 且在其他文章中比較少出現的字

所以,如果要在一篇文章中, 尋找這樣的關鍵字, 要考慮以下兩個要素:

Read on →
 
over 4 years ago

1.Introduction

在自然語言處理的應用, 常常有分類的問題, 例如把某篇新聞分到哪一類
處理分類問題, 有種簡單的方法, 就是看這篇文章有哪些關鍵字, 根據這些關鍵字的出現與否, 用 Naive Bayes Classifier 做分類

要講 Naive Bayes Classifier 之前, 首先, 要知道 Bayes rule 是什麼, Bayes rule 很簡單, 如下

這個公式, 高中數學應該都有教過 , 如果 Independence , 則

所謂的 Naive Bayes Classifier , 其實就是應用 Bayes rule 來處理分類問題

Read on →
 
over 4 years ago

1.Overfitting

所謂 Overfitting 指的就是過度訓練, 意思就是說機器學習所學到的 Hypothesis 過度貼近 Training Data , 而導致和
Testing Data 的時候, Error 變得更大

假設有一筆資料如下圖, 藍色的為 Training Data , 紅色的為 Testing Data ,

想要用高次多項式的 Hypothesis ,, 做 Linear Regression

其中, weight, 表示這個多項式的次數 ( Order )

Read on →
 
over 4 years ago

1.Introduction

本文接續先前提到的 Hidden Markov Model
Natural Language Processing -- Hidden Markov Model
繼續探討 part of speech tagging 的演算法

先前提到, 如果要在 Hidden Markov Model 找出一個機率最大的 tagging sequence
則必須把每一個序列都列出來, 看哪一個是機率最大的
但如果 Tag 種, 那麼長度為 的序列, 就有 種可能的 tagging sequence
由此可知, 暴力列舉的演算法非常沒有效率

Read on →
 
over 4 years ago

1.Introduction

所謂的形式語義學( Formal Semantics ), 是在研究, 如何把自然語言用邏輯形式來表達

例如以下句子

傳統上, 用一皆邏輯 First Order Logic 可以把這個句子表示成這樣

Read on →
 
over 4 years ago

1.Markov Model

Hidden Markov Modelnatural language processing 中,
常用於 part-of speech tagging

想要了解 Hidden Markov Model ,就要先了解什麼是 Markov Model

例如, 可以把語料庫中,各種字串的機率分佈,
看成是一個Random varaible 的 sequence ,
其中, 的值是 alphabet (字)的集合 :

如果想要知道一個字串出現的機率, 則可以把字串拆解成Bigram, 逐一用前一個字,來推估下一個字的機率是多少
但是要先假設以下的 Markov Assumption

Read on →
 
over 4 years ago

1.Introduction

在python裡面, = 這個符號,
有可能是 pass by value 或是 pass by reference
如果 = 右方的 variablevalue , 例如 int
=pass by value ,如下

>>> x1=1
>>> x2=x1
>>> x1+=1
>>> print x1
2
>>> print x2
1

Read on →