about 4 years ago

0.Introduction

argparse是用來處理command line的argument所使用的
例如執行一個程式, 比如說 mv

在Terminal輸入 mv --help 之後
顯示如下:

$ mv --help
Usage: mv [OPTION]... [-T] SOURCE DEST
  or:  mv [OPTION]... SOURCE... DIRECTORY
  or:  mv [OPTION]... -t DIRECTORY SOURCE...
Rename SOURCE to DEST, or move SOURCE(s) to DIRECTORY.

Mandatory arguments to long options are mandatory for short options too.
      --backup[=CONTROL]       make a backup of each existing destination file
  -b                           like --backup but does not accept an argument
  -f, --force                  do not prompt before overwriting
  -i, --interactive            prompt before overwrite
......

由此可知, mv 後面可以有很多種argument
那要寫程式去parse這些command line的argument很麻煩
如果用了 argparse 這個module
就不用自己寫程式去parse這些argument了

Read on →
 
about 4 years ago

1.Intoduction

今天來看看 python 的 difflib ,
difflib 常常用於字串處理,
例如可以用來比較兩個 string , 或兩個 list 有哪些不一樣

Read on →
 
about 4 years ago

1.Model and Satisfiability

可滿足性(Satisfiability)是在探討, 邏輯式子所建立出的模型(Model),
可不可以找到一組解, 使得這個 Model 算出來的值可以是
例如:

則當 時,
Model Satisfiable
另一例子:

這種情形,不論 的值, 永遠都是
Model Unsatisfiable

Read on →
 
about 4 years ago

以下為我對於 Ngram Smoothing 這個章節的公式所做的筆記

Introduction

Ngram Smoothing 是用於出現在 Training Corpus 中沒有的 Ngram,
它的機率會是0
本文以 Bigram 為例, Bigram 的機率如下:

如果 , 則
為了避免probability為0, 我們要做 Ngram Smoothing

Read on →
 
about 4 years ago

1. Introduction

Discourse 的意思是對話
在對話中,常常會用到 代名詞 ,像是 he, sheit.
我們把這種代名詞叫做 anaphoric pronouns
因為要從前面的句子去判斷,這些代名詞代表什麼
比如有個句子 A woman walks. She smokes.
在下一句的 She 是指前一句提到的 A woman

那要怎麼讓電腦去判斷, 代名詞 到底代表前面提到的什麼?
這就要用到 Discourse Representation Theory (DRT) 來處理了
例如 A woman walks 這句話,用 DRT 可以表示成這樣:

Read on →
 
about 4 years ago

用Functional Programming style來寫程式的時候
可以大幅減少行數和變數的數量
本文接續上一篇:http://cpmarkchang.logdown.com/posts/178995-python-functional-programming-style-1
繼續探討這種Functional Programming style在python中的應用

1. operator

首先,載入 operator 這個模組

>>> import operator

然後,來介紹到底要怎麼使用

Read on →
 
about 4 years ago

今天來看看如何用python的Functional Programming tool來簡化程式碼
所謂的Functional Programming, 是指像是Lisp或Haskell這樣的程式語言
python所提供的Functional Programming tool
可以用Functional Programming這些語言的風格來寫python

Read on →
 
about 4 years ago

1.Introduction

這次來講一下機器學習(Machine Learning)

簡而言之,Machine Learning是一種讓機器根據已知的data,預測出未知的data情形如何
現在,來看看一種簡單的Machine Learning演算法
叫作Perceotron Algorithm

Peceptron Algorithm要做的事
就是要讓電腦學習,怎樣畫一條線,把兩群不同的資料分開

Read on →
 
about 4 years ago

1.Introduction

這次來講一下機器學習(Machine Learning)的Logistic Model

至於機器學習(Machine Learning)是什麼?
簡而言之,Machine Learning是一種讓機器根據已知的data,預測出未知的data情形如何
Logistic Regression是一種機器學習的Model,可以用來處理分類問題
從input data的feature,可以判斷出output data該歸到那一類
Logistic Regression的model如下

其中 是hypothesis,藉由hypothesis,可以用已知的data來預知未知的data
是input data, 是weight,這兩者皆是矩陣

Read on →
 
about 4 years ago

本篇介紹如何用python nltk 的應用,邏輯語意與lambda calculus

1.introduction

邏輯語意學在語意推導方面,通常會用到
使用就可以把一個句子的語意,從個別單字中推導出來
至於 是什麼呢?
簡而言之,lambda calculus是一種數學運算,由以下三種元素組成


,就是把function中的variable拿到前面,加個
是將另一個 放到 後面
然後可以進行一種運算,叫做 ,如下

還有另一種運算叫做 ,其實就是更改變數名稱而已

Read on →