2015年7月29日 星期三

對某個目錄下所有檔案作某個動作的指令

參考 http://stackoverflow.com/questions/29232229/how-to-couple-xargs-with-pdftotext-converter-to-search-inside-multiple-pdf-files

主角是 find ,不使用 xargs 時,搭配 -exec 指令:

find ~/.personal/tips \
    -type f \
    -iname "*.pdf" \
    -exec pdftotext '{}' - ';' \
  | grep hot

使用 xargs 時,搭配 -print0 指令:

find ~/.personal/tips \
    -type f \
    -iname "*.pdf" \
    -print0 \
  | xargs -0 -J % -n 1 pdftotext % - \
  | grep hot

看來前者是比較簡潔一點

ubuntu上把pdf轉成純文字的解決方案

pdftotext


使用說明參考 http://linux.die.net/man/1/pdftotext

Options

-f number
Specifies the first page to convert.
-l number
Specifies the last page to convert.
-r number
Specifies the resolution, in DPI. The default is 72 DPI.
-x number
Specifies the x-coordinate of the crop area top left corner
-y number
Specifies the y-coordinate of the crop area top left corner
-W number
Specifies the width of crop area in pixels (default is 0)
-H number
Specifies the height of crop area in pixels (default is 0)
-layout
Maintain (as best as possible) the original physical layout of the text. The default is to 'undo' physical layout (columns, hyphenation, etc.) and output the text in reading order.

2015年7月24日 星期五

R存取期刊論文全文的介面:fulltext

https://github.com/ropensci/fulltext

真心希望早日打破各出版社聯合壟斷的局面

2015年7月20日 星期一

" 大數據(big data)"之"方法論(methodology)"

http://www.36dsj.com/archives/247 這篇講得不錯,四平八穩

http://www.36dsj.com/archives/8911 這篇從ML的角度來講,所以偏向AI

在規則的發現上,有兩種方式,一種從統計的角度出發(Association Rules),一種從NLP的角度下手(Grammar Induction)

關聯式規則(Association Rules, AR)

https://zh.wikipedia.org/wiki/%E5%85%B3%E8%81%94%E5%BC%8F%E8%A7%84%E5%88%99

http://blog.csdn.net/gjwang1983/article/details/45015203

http://blog.csdn.net/qq_25684755/article/details/46584805

https://github.com/dengyishuo/Top10Algorithm/blob/master/apriori/arules.md

應用在文字探勘,有以下應用

http://blog.csdn.net/u013946794/article/details/44246569

http://qxde01.blog.163.com/blog/static/6733574420132915952828/

http://qxde01.blog.163.com/blog/static/673357442013355192638/

2015年7月19日 星期日

程式語言間的語法比較: RosettaCode.org

以 perl 常用的 map / grep 為例

http://rosettacode.org/wiki/List_comprehensions#Perl

有中文的介紹可參考

这个网站的要旨到底是什么?比如说你会 A 语言,又想看看如果用 B 语言写的话会如何。那么通过很多问题的解决的对比,你应该可以了解到 B 语言的语法,以及它跟你会的 A 语言的关系了。然后你就会注意到语言的设计模式和行为——也就是这门语言的习惯。你也会看到哪些习惯你已经有了,哪些习惯正则阻碍你的发展。

2015年7月18日 星期六

ubuntu下對應到ultraedit的find in files的指令

http://edsionte.com/techblog/archives/3164

以前只會一招,就是用find搭配grep xargs,但是語法不好記,指令又長

這篇介紹的 grep -R -w -n "關鍵字" "目錄",非常好用

現在我幾乎找不到任何原因在 windows 下寫程式了…

2015年7月17日 星期五

heatmap究竟能畫得多複雜?


heatmap 的語法可參考

http://bioconductor.org/packages/devel/bioc/vignettes/ComplexHeatmap/inst/doc/ComplexHeatmap.html

提到的"微博"(大陸的山寨版tweet)有以下幾個

http://www.weibo.com/fly51fly

http://www.weibo.com/haoawesome

https://github.com/PuddingNnn/Rweibo/blob/master/topic/topicmodel.R
組織學、胚胎學可以利用大量的基因序列來做分析

http://www.slideshare.net/jvhemert/escience-research

2015年7月14日 星期二

R的語法之"快快樂樂學"(喵的該不會真有這本書吧XD)

http://joe11051105.gitbooks.io/r_basic/content/variable_and_data/vector.html

我最欣賞這段講下標的部分


所以從 perl 的角度來看,它既是 array 又是 hash 囉?!

2015年7月11日 星期六

在ubuntu上用R進行中文 Text Mining


  1. 先備知識:R语言环境下的文本挖掘 , R之文本挖掘 , 数据科学18:文本挖掘1 。嚴格來說這幾篇都是翻譯自 tm 模組作者的這篇文章: Introduction to the tm Package Text Mining in R
  2. 範例: https://github.com/JohnsonHsieh/ecfa/blob/master/myText2.R ,是一個完整的專案
  3. 上述github專案主要參考這篇文章 ;基本上文章寫成至今已經兩年多了,ptt的一些網頁協定(https)可能有改(推測在2014年的4月到8月間,如 "www.ptt.cc/bbs/StupidClown/index" 改成 "https://www.ptt.cc/bbs/StupidClown/index") , 因此抓取文章的部分建議參考以下所列的網頁
  4. https://www.snip2code.com/Snippet/143970/-anted-Sna ,特色在於未使用 rwordseg ,單純看推文者和作者間的關係
  5. https://github.com/agilearning/RPTT/blob/master/R/RPTT.R ,有三個函數可供使用,以抓取索引頁、文章連結、文章內容 ; 同作者另起了新的專案,附上函數的使用範例,可參考 https://github.com/agilearning/RTextMining
  6. 其它潛在應用可參考 rfacebook ,可以抓 FB 上的文章

英文 text mining 資源


https://cran.r-project.org/web/views/NaturalLanguageProcessing.html

http://www.rdatamining.com/examples/text-mining

http://faculty.chicagobooth.edu/matt.taddy/teaching/text.R

與 perl 的協作


http://search.cpan.org/~davor/Statistics-R-IO-0.101/lib/Statistics/R/IO.pm

http://search.cpan.org/dist/Statistics-RserveClient-0.12/lib/Statistics/RserveClient.pm

http://search.cpan.org/~fangly/Statistics-R-0.33/lib/Statistics/R.pm

計算語言學


http://www.amazon.com/Roger-Bilisoly/e/B001JSCDN4/ref=ntt_dp_epwbk_0

http://lopen.linguistics.ntu.edu.tw/PTT/

這個網站很有趣,是台大語言所架設的,包含了2014年起收集的 ptt 語料,中文斷字詞的線上查詢。

其它服務還有:前後綴、相關字、情緒判別, api 要註冊才能用來下載 ptt 文章(還好目前看來是免費的), wordcloud 目前提供 gossiping / hate 兩個版的輸出。看來用的是中研院的斷詞,搭配自建字庫不是經常更新的樣子。


2015年7月10日 星期五

在ubuntu 14.04上安裝 R & RStudio

第一步要安裝 R ,參考 http://taiwanrusergroup.github.io/DSC2014Tutorial/ 輸入以下指令

sudo sh -c 'echo "deb http://cran.csie.ntu.edu.tw/bin/linux/ubuntu trusty/" >> /etc/apt/sources.list'
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys E084DAB9
sudo apt-get update && sudo apt-get install -y r-base libcurl4-openssl-dev libxml2-dev espeak

標紅色的指令應是網頁上筆誤,要加一下

第二步要安裝 RStudio , 到以下網頁抓合用的下來,我抓的是 RStudio 0.99.464 - Ubuntu 12.04+/Debian 8+ (64-bit)

https://www.rstudio.com/products/rstudio/download/

http://www.cc.ntu.edu.tw/chinese/epaper/0030/20140920_3006.html 快速上手,花個幾分鐘看看

http://taiwanrusergroup.github.io/DSC2014Tutorial/ 另有不少教學資源,我相信是目前為止最好的網頁,有空的話我也想好好看看~

以下為非必要步驟,想玩玩 text mining 文字探勘的話可以試試…

第三步裝 jdk (不要裝oracle的哦,否則…), 參考 http://linuxpilot.com/ubuntu-java 輸入:

sudo apt-get install default-jdk

第四步,"用R進行中文 text Mining"

按他介紹的步驟玩玩,但請先詳讀以下附註。

PS.
1. DSC2014網頁中提到"如果是其他版本的使用者,請修改上述 trusty 的部份。"這對ubuntu 的初學者來說還滿容易發生問題,參考以下連結以了解版本號對應的命名(就像是iOS 的 snow leopard,你懂的)

https://wiki.ubuntu.com/Releases

2. /usr/lib/R/etc/javaconf 這個檔案,在安裝R時寫入了預設值 JAVA_HOME ,如果日後安裝了新的 java 版本,這個值是不會自動更新的。怎麼處理?你懂的~

3. 安裝 rJava 時發生任何問題,請參考 http://stackoverflow.com/questions/12872699/error-unable-to-load-installed-packages-just-now ; 反正我現在都是執行 sudo R CMD javareconf && rstudio &

4. 安裝 rwordseg 時,如果在非 windows 平台上會有問題。上述網頁的作者應該是使用 windows 的環境,壓縮檔是 zip 格式, rstudio 預設解壓要的是 .tar.gz ,所以無法自動安裝。解決方式就是把 zip 檔抓回來,解壓後再壓成 .tar.gz ,然後用 rstudio 的選單 Tools -> Install Packages... 手動安裝; twcn 的安裝也有類似問題,也是抓 zip 檔安裝就解決了

2015年7月6日 星期一

在heroku的app中整合FB或google帳號

首先要先了解heroku新增app的整個流程

再來要了解FB新建app認證的流程,強烈建議參考以下教學:

建置一個支援google、Facebook帳號可登錄的MVC5應用程式

有一步"Valid OAuth redirect URIs"是最重要的,這最後我們再談,詳細說明在官方網頁:

Lock Down Your Facebook App Settings

以現成的登入套件為例:

https://github.com/jaredhanson/passport-facebook

把它的登入範例抓下來,之後有三個檔案要新增/修改:

(參考 Hosting a Node app on Heroku , How to Deploy a Node.js App to Heroku )
  1. 新增檔案Procfile,告訴 heroku 如何啟動,內容就一行:web: node web.js
  2. 本地端環境設定,新增檔案.env,告訴 heroku 要開那個port,內容就一行:PORT=80。遠端環境設定,命令列下執行 heroku config:set PORT=80
  3. 改 app.js 中的對應內容,callbackURL 中的主機要改成app的網址,FACEBOOK_APP_ID / FACEBOOK_APP_SECRET 要改成FB給你的值;最重要的是,app.listen 那行要改成 app.listen(process.env.PORT); 沒改的話 APP 啟動都會逾時

這樣就成功了嗎?不,登入鍵按下後會出現以下錯誤訊息:

應用程式的設定不接受這個網址。: 應用程式的設定不接受所提供之一或多個網址。網址必須符合網站網址或畫布(Canvas)應用程式網址;或者,網域必須是應用程式網域的子網域之一
這就是魔鬼中的細節啦,請把 app.js 中的 callbackURL 回填到FB的"Valid OAuth redirect URIs" 並儲存,之後就OK了



2015年7月2日 星期四

javascript框架回顧:Backbone – React & Angular – Ember – Meteor

http://www.chriskrycho.com/2015/unsurprisingly-in-flux.html

這篇文章中作者的好惡非常明顯,目前的情況他最推薦的是 Ember

https://help.optimizely.com/hc/en-us/articles/203326524-AngularJS-Backbone-js-React-and-Single-Page-Applications

從SPA(single page application)的角度所做的評析,目前流行部分更新網頁以加快速度