2013年11月10日 星期日

[Ubuntu] 在Ubuntu中將mp4轉成mp3

安裝pacpl

sudo apt-get install pacpl

pacpl 的用法

pacpl --to mp3 srcdir/*mp4 --outdir destdir

2013年9月26日 星期四

在Ubuntu server上安裝gensim

gensim是一個不錯的topic modeling python套件,它包含了LSA及LDA的模型建立,但它的安裝並不如網站所提如此簡易 (http://radimrehurek.com/gensim/) ,除了numpy及scipy外,在Ubuntu server還需要其他套件。

假設你是這樣安裝numpy及scipy
sudo apt-get install python-numpy
sudo apt-get install python-scipy

還需要
sudo apt-get install libblas-dev
sudo apt-get install liblapack-dev
sudo apt-get install gfortran

以上都是compile source code時所需要的

2013年6月3日 星期一

[Python] 合併兩個Dictionary

a={1:2}
b={2:3}
c = dict(a.items() + b.items())
# c = {1:2 2:3}

如果有重複鍵值(Key),則以後者為主

a={1:2, 2:4}
b={2:3}
c = dict(a.items() + b.items())
# c= {1:2, 2:3}


c = dict(b.items() + a.items())
# c= {1:2, 2:4}




2013年5月20日 星期一

[NLP] [Python] 正確安裝 pylinkgrammar

雖然官方網頁提供了安裝方法,但缺少了幾個步驟,

官方網頁
https://pypi.python.org/pypi/pylinkgrammar
https://bitbucket.org/metametrics/pylinkgrammar/

在執行 pip install pylinkgrammar 之前,

請先安裝以下套件
sudo apt-get install swig
sudo apt-get install python-dev (取得 Python.h)
sudo apt-get install liblink-grammar4-dev (取得編譯link-grammar相關程式)

[Python] 排除 fatal error: Python.h: No such file or directory

Python.h 是一個gcc在編譯時所需的Header(標頭)檔,附在python-dev這個套件中,所以只要執行

sudo apt-get install python-dev

即可。

2013年4月18日 星期四

[Python] 將有完整路徑的檔案名稱切分為路徑及檔案

> file_name = "/home/your_name/myfile.txt"

> import os

> os.path.split(file_name)

('/home/your_name', 'myfile.txt')

注:這是在Unix-like的輸出結果,"聽說"Windows下會多一個磁碟名稱在Tuple的最前面,如 ("c:\", ...

[Python] 取得程式執行所在目錄

import os

current_exec_path = os.getcwd()

2013年4月5日 星期五

[Python] 時間物件及時間字串的轉換

因為時間表示法的不同,所以不同的時間字串要作比較時,就需要轉換成datetime物件,先介紹如何將datetime物件轉換為字串的方法。雖然有很多方法可以將datetime轉化為字串,但以下是我最喜歡用的方法。

from datetime import datetime

datetime.now().strftime("%Y-%m-%d %H-%M-%S")
> '2013-04-05 13-53-20'

第一,這個方法可以去除掉微秒(microsecond),如果直接用str(datetime.now()),秒後面會有一個很長的數字,對我而言不太機會用到。

第二,雖然可以用datetime.now.hour等屬性組合出想要的字串格式,但不可諱言以上的方法要簡潔的多,至於那些%Y %m等等代表甚麼,可以參考這裡

另外,格式可以儲存成常數參數,便於轉換,如下例:

DATETIME_FORMAT = "%Y-%m-%d %H-%M-%S"
datetime.now().strftime(DATETIME_FORMAT)

當有其他時間字串需要轉換成datetime物件時,使用strptime

s = '2013-04-03 13-53-20'
datetime.strptime(s, DATETIME_FORMAT)
> datetime.datetime(2013, 4, 3, 13, 53, 20)

這樣就可以比較或運算不同的時間字串格式了

[Python] 原來字串格式映對 (String format mapping) 也可以這樣作

一個dictionary
d={"name": "Bill", "age": 55}

一個字串格式
s = "%(name)s is %(age)s"
其中name跟age為dictionary的key,注意不要加任何引號

組合
s%d
注意d前後不用括號

輸出為
> Bill is 55

2013年4月2日 星期二

[HTML5] 去除contentEditable的框線 (border)

HTML5中的contentEditable很好用,可以讓多數HTML元件變成可編輯元件,但預設的框線卻很礙眼。這時可以設定outline-width為0將框線去除,範例如下:


<div contenteditable="true" style="outline-width: 0;">
這可以編輯,也沒有框線喔! </div>

2013年3月29日 星期五

[Ubuntu] 新增目錄至PATH環境變數

在 .profile最後加入

PATH="$PATH:/path/you/add"

(注意:profile前面有一點 (dot),不要忘了前後的雙引號,不要傻傻的輸入 /path/you/add ,輸入你要的路徑)

儲存後記得更新

> source .profile

最後檢查是否成功

> $PATH

如果看到輸入的路徑就成功了

[Python] 所使用Python的版本

python -V (注意是大寫的V)

2013年3月9日 星期六

[Ubuntu] too many opened files

1. 用 ulimit -n 檢查,預設是1024

2. 修改 /etc/security/limits.conf 加入以下兩行

* soft nofile 8192
* hard nofile 65535

 3. 重開