:::
顯示具有 Programing/PHP 標籤的文章。 顯示所有文章

如何從句子中的單字搜尋詞典中符合的詞彙? / How to search for the matching terms in the dictionary from a word in the sentence?

如何從句子中的單字搜尋詞典中符合的詞彙? / How to search for the matching terms in the dictionary from a word in the sentence?

21-How_to_search_for_the_matching_terms.png

如果我想要以一個字搜尋字典裡面有的詞彙,而這個詞彙又需要符合該字在句子構成的詞彙時,要怎麼做呢?舉例來說,我想在「清晨時去游泳池」這個句子裡,用「泳」來找出「游泳池」、「泳池」、「游泳」,但要排除掉「晨泳」、「泳褲」等詞彙。我整理了一套搜尋演算法來實作這個目標,這套搜尋演算法包括了過濾出現字、過濾相連順序、過濾相符詞彙、排序詞彙長度、排序錨點字位置這五個步驟。以下我將以JavaScript程式碼來講解各步驟的做法,最後附上JavaScript跟PHP兩種版本的實作程式碼。

(more...)

PHP文內關鍵字索引全文資料庫 / PHP KWIC Database

PHP文內關鍵字索引全文資料庫 / PHP KWIC Database

image

這個PHP KWIC Database是我在進行文本分析研究中的一個產物。文內關鍵字索引(Key Word In Context)的做法是將檢索的關鍵字擺在查詢結果中間,前後呈現該關鍵字的前後文。這不僅只是拿來搜尋具有該關鍵字的文本,還能夠進一步知道該關鍵字在這些文本中的用法。在許多人文研究中,具備引得查詢資料庫是非常重要的研究工具,許多語料庫(corpus)都有提供。可惜的是,現在許多全文檢索系統都沒有實作引得,包括Apache Solr。所以我在2016年年初的研究中順手寫了這個PHP KWIC Database,並將之整理成框架,讓大家能夠簡單地使用Excel整理文本資料後,並利用Convert to SQLite Online將Excel檔案轉換成SQLite資料庫,就能夠並使用PHP KWIC Database來進行檢索與分析。

(more...)

Voc4Fun 全民樂單字:單字學習行動應用程式 / Voc4Fun: A Mobile APP for Vocabulary Learning

Voc4Fun 全民樂單字:單字學習行動應用程式 / Voc4Fun: A Mobile APP for Vocabulary Learning

image

這是2016年年初我與學弟共同開發的單字學習行動應用程式,名為「Voc4Fun 全民樂單字」。這個應用程式包含了客戶端 voc4fun-client伺服器端 voc4fun-server,全部在GitHub儲存庫保存。該程式的客戶端是以Onsen UI 2開發,並可能夠直接使用Adobe PhoneGap Build來封裝成APP。而伺服器端則是我用RedBeanPHP開發的特製Log型資料庫,以詳細記錄各個行為歷程細節,再用view視圖功能做成普通的資料表。

這篇就為全民樂單字 Voc4Fun的功能做個介紹,記錄我做過的這個單字學習行動應用程式吧。

(more...)

從PHP的Fat-Free Framework框架來看用Node.js的Express框架開發網站的心得 / Fat-Free Framework in PHP vs. Express in Node.js: Pros and Cons of Node.js

從PHP的Fat-Free Framework框架來看用Node.js的Express框架開發網站的心得 / Fat-Free Framework in PHP vs. Express in Node.js: Pros and Cons of Node.js

image

之前我跟學弟嘗試使用Node.js的Express框架來開發網站。本想著前端跟後端都可以統一使用JavaScript,但實際嘗試之後才發現Express框架問題頗多。這兩天為了把Zotero的資料庫寫成網站,我回頭使用PHP的Fat-Free Framework框架來開發,順手程度讓我感動到痛哭流涕,不禁想要寫一篇來整理一下Node.js的各種問題。這篇就閒聊一下吧。

(more...)

行動應用程式「政大借書籃」介紹 / Introduce “NCCU Book Cart”

行動應用程式「政大借書籃」介紹 / Introduce “NCCU Book Cart”

image

為了試著開發PhoneGap的行動應用程式APP,我使用OnsenUI建構了一個簡單的APP:政大借書籃。這個APP的功能是為了取代在政大圖書館找書時,使用公用電腦旁邊的小紙條來抄書的困擾。政大借書籃可以用掃描條碼功能把政大圖書館公用目錄上面找到的書加入借書清單,然後就可以拿著手機去找書了。

(more...)

布丁版OCS特色介紹:第三部分 / Pudding’s OCS Features: Part 3

布丁版OCS特色介紹:第三部分 / Pudding’s OCS Features: Part 3

2016-03-01_174458

上一篇講完了OCS的作者投稿流程,最後這一篇則是要介紹線上審查以及邀請審查委員審稿的審核流程。雖然這些流程跟一般研討會參與者無關,但是卻是常常另研討會管理者傷透腦筋的一個環節(當然,研討會當天的行程安排也是很費工啦XD)。如果有像是OCS這樣的資訊系統來輔助這些瑣碎的流程,相信會為研討會省下不少功夫吧。

不過就如之前所提過的,資訊系統可不是銀彈,特別像是OCS這樣目標在於提供全面功能,卻又造成讓人難以上手的複雜系統,在迎接OCS的好處之前,可別忘了它高昂的學習成本。

因此,我這此大幅度修改OCS,也是希望讓大家能夠更容易使用它。至於改得好不好用,就請看以下的介紹囉。

 

(more...)

布丁版OCS特色介紹:第二部分 / Pudding’s OCS Features: Part 2

布丁版OCS特色介紹:第二部分 / Pudding’s OCS Features: Part 2

2016-03-01_160300

上一篇對於布丁改造OCS的特色介紹,本篇則是繼續介紹OCS的主要特色工作流程之一:作者投稿

「作者投稿不是像Dropbox一樣丟過去就上傳完了嗎?」

(來自某老師的真實疑問)

對於沒有參與過學術發表的人來說,投稿這件事情的確是有點難以想象。不過我覺得這比較像是一個小組合作作業:組長是研討會主辦單位,而各位作者是組員。組長要告訴組員這份作業要做什麼,以及繳交時應該採用什麼格式,以便最後的統整。而組員就能夠根據組長的要求來分工完成這份作業——有人投A主題、有人投B主題,最後完成這一份大型的作業——也就是這個研討會。
當然,在舉辦研討會的時候並不是像教室內一樣,同學之間很容易聯絡。當研討會採用公開徵稿(call for 的方式進行時,作者可能是來自於四面八方的學者,往往連研討會主辦方都不認識。因此我們需要一個說明徵稿辦法的公開網站。更進一步,我們還要提供一套遞交稿件的流程。其中後者就是大部分研討會網站沒有去做,而在OCS就有建構了高度可自訂的功能。這可能是我們會需要一個研討會管理系統,而不是一般的內容管理系統的一個很重要的理由。

(more...)

布丁版OCS特色介紹:第一部分 / Pudding version OCS Features: Part 1

布丁版OCS特色介紹:第一部分 / Pudding version OCS Features: Part 1

2016-02-03_010637

上一篇簡單地介紹了研討會開放原始碼管理系統Open Conference System (以下簡稱OCS),這篇我想來介紹一下我修改的地方。這次要介紹的是外表上的介面、翻譯、以及報名功能。另外還有OCS主要功能的投稿與審查功能,則留到下次再介紹。

(more...)

研討會管理開放原始碼系統簡介 / Open Conference System (OCS) Introduction

研討會管理開放原始碼系統簡介 / Open Conference System (OCS) Introduction

2016-02-03_005200

由於最近幫空大社科系的2016社會變遷與當代議題研討會在架設研討會網站,所以找了網路上馳名已久的PKG系列系統之一的Open Conference System (我把它翻譯成「研討會開放原始碼管理系統」,以下簡稱OCS)。我把它拿回來進行大幅度的改造,並公開在GitHub上 (請到此下載)。。以下我想針對這個系統做個簡介。


為什麼不要用內容管理系統? / Why not use Content Management System?

很多人應該都有這個疑問,為什麼不要用普通的CMS,中文叫做內容管理系統(Content Management System),像是Joomla、Drupal,或甚至是WordPress (儘管它是用來寫Blog用的,但很多的時候被人用做CMS)。

但是普通的CMS很難支援研討會複雜的處理流程。舉例來說,研討會會有摘要與全文兩階段投稿、多人匿名審查、審查意見與作者修正後再上傳檔案、以及審查結果公告等功能。我們必須對CMS做大量的修改、調整,才能讓它的處理流程支援研討會。因此,與其花費大量時間去將一個CMS調整成能夠支援研討會的系統,不如一開始就找一個能為研討會設計的系統,也就是本篇所介紹的OCS。

為什麼不要用email? /  Why not use email to handle conference?

然而,我先把另一個很重要的問題說在前面:這些複雜的研討會流程,為什麼不要用email來處理就好了?這個問題問的非常好,這是一種人們對於資訊系統的迷思。

事實上,用email很好。主要的理由在於他是大家熟悉的工具,我們幾乎不需要額外的學習成本就能夠使用email。第二個理由是如果研討會規模不大,那麼信件來往勢必數量上也不會多,用email來管理就很足夠了。

那為什麼不要用email呢?這是因為人們會希望追求更省力的工作流程,但是往往卻忽略了學習成本這個問題。一個資訊系統「可以用」,與「好用」,這兩者之間的距離是用新臺幣來計算。而像是OCS這種開放原始碼的系統,只能夠稱得上可以用,但是距離一般人們心目中的好用,換句話說,就是客製化,則是相當困難的事情。

儘管如此,我還是為OCS做了相當大幅度的調整。不過先讓我們看一下OCS有什麼功能好了。


開放原始碼研討會管理系統簡介 / Introduce Open Conference System

以下介紹來自於OCS的首頁

OCS是一個開放自由的網頁發佈工具,專門用來建立學術研討會。OCS的特色如下:

  • 建立研討會網站。
  • 支援論文徵稿(call for papers, cfp)流程。
  • 支援摘要投稿、全文投稿、以及摘要與全文兩階段式投稿。
  • 作者上傳稿件之後仍可以更新版本。
  • 會議主席與審查委員可以在線上完成審查作業,並能夠直接傳送Email通知審查進度。
  • 發佈研討會議程與發表的論文,並支援搜尋功能。
  • 可發佈原始資料集(布丁註:這我不太確定是什麼功能)
  • 支援研討會報名功能。可透過Paypal讓與會者繳交註冊費。

OCS複雜的後台管理系統 / Complexity Management System in OCS

為了研討會處理流程而設計的OCS相當的複雜。就使用角色來說,OCS裡面㑹可能會有以下七種角色(role):

  • 系統管理者 (System Manager):架設OCS與管理伺服器運作的技術人員。
  • 會議管理者 (Conference Manager):設定各研討會的網站細節,像是公告、議程。
  • 會議主席 (Director):負責安排主題負責人、審查者、決定論文審查結果、寫信通知作者等等。
  • 主題負責人 (Track Driector):研討㑹可以細分為多個主題,作者可以投稿到各個主題,而各主題又可以安排負責管理的主席,稱之為主題主席。主題主席可以進行的工作跟會議主席差不多,但只能夠管理投稿到這個主題的稿件。
  • 審查委員 (Reviewer):受會議主席或主題主席邀請,前來審查特定一篇論文的審查者。
  • 作者 (Author):投稿到研討會的作者。
  • 讀者 (Reader):一般研討會比較少強調這個角色。讀者的功能是可以訂閱研討會已經接受且發佈的論文。

每一種角色可以使用的功能都不一樣,例如會議主席不能夠修改整個系統的網站標題,只有系統管理者可以進行這項動作。審查者可以為稿件提出接受/修改/拒絕的意見,但只有會議主席或是主題主席可以決定這個論文的最終結果。

多種不同的角色與複雜的流程造成OCS的高度複雜性。這對許多只是想要架一個「簡單網站」的學者來說,簡直是無法想像的程度。


簡化的第一步:後臺的連結 / First Step to System Simplification: Add Quick Edit Icon

2016-02-03_010637 - Copy

這麼複雜的流程有辦法簡化嗎?老實說,如果要辦一個大型研討會,那就的確是要如此複雜的分工。我目前先做一些小功能來連結前台顯示內容與後台的設定欄位:有筆的圖示按鈕。在使用者擁有相對應的權限時,系統會在公告、議程等我修改過的位置上顯示這個按鈕,點選後就能夠直接跳掉相對應的後台欄位中。這個應急之道是給那些懶得去後台翻設定的使用者使用,但相對於OCS的高度複雜來說,只是杯水車薪。


OCS嘗試要解決的灰色文獻問題 / How OCS resolve gray literature issue

OCS並不是單純的CMS,其中一個特色就是對於灰色文獻(gray literature)問題的處理。什麼是灰色文獻呢?灰色文獻的意思是指在資訊傳播過程中所存在但難以被搜尋、取得的資訊。研討會上發表的論文就是一種很常見的灰色文獻。

大部分研討會上發表的論文並沒有正式出版。常見的情況中,研討會的會議論文集(proceeding)並不會像一般書籍一樣作成一本書、申請ISBN、遵照法定送存規定一樣地送往國家圖書館保存,而通常只是將研討會中所發表的論文作成一本會議手冊──有些研討會手冊裡面甚至連全文都沒有、只有投影片──然後只有參與研討會的與會者才拿得到。這樣的結果造成雖然有研討會論文的存在,但是一般人卻只能知道有這篇文章發表在研討會中,卻難以得到文章的內文,這就是灰色文獻的問題。

image

OCS不僅只是研討會網站,它本身也是資料典藏系統,可以讓其他人輕易取得在OCS上發佈的論文。從設定上可以看到,它提供了OAI-PMH的資料交換功能,可以作為資料提供者(data provider)讓其他資料獲取者(data harvester)來取得資料,像是PKP另一個系統Open Harvester Systems。同時它也可以為發佈的論文加上數位物件識別碼DOI (Digital Object Idenifier System),方便學術論文的引用與取得。

然而現在學術傳播環境中,研討會論文是否要公開的這個問題,其實並沒有定論。有些研討會並不是難以負擔出版成本而不將會議論文出版,而是遵照作者的意願而不公開作者在研討會發表的論文。有人可能會覺得奇怪:如果發表的論文不出版的話,那豈不是違反學術傳播的目的了嗎?這是因為許多作者會在研討會跟期刊上發表同一主題的論文,而通常研討會上只是初步的成果、期刊則會是較完整的內容。為了避免期刊的主編或審查者搜尋到作者之前發表的研討會論文而造成一稿多投的誤解,所以許多作者寧願選擇在研討會不公開他的論文,而是在期刊上刊出較完整的結果。當然,我不否認也會有真的是一稿多投:研討會跟期刊的內容幾乎一樣的問題,但這不是本文的重點。

回到OCS來看,它試圖解決灰色文獻問題的方式是否能為現在學術研討㑹所接受,我想仍需要一段時間來觀察。但我能夠確定的是,在處理OCS的如何公開論文之前,光是OCS複雜的設定就已經讓一堆不懂資訊系統的學者舉白旗投降了吧。


小結:我建置的一個不完整的版本 / Conclusion: My modified OCS is not stable.

2016-02-03_010637_thumb_thumb

如果你也想要來架設OCS看看的話,可以從我的GitHub上取得我目前修改的進度:

秉持著開放原始碼的精神,既然從開放原始碼的系統取得了OCS,我當然也很樂意與大家分享我作的系統。但是必須事先聲明的是,這是一個不完整的系統。因為我是一邊安裝一邊修改,直到最後才順利讓它勉強可以運作。我並沒有要讓它做到可以讓人從無到有地順利架設,只要能夠支援現在研討會運作就好了。

另一方面,我的OCS目前僅支援線上全文審查的功能,還沒有去修改它的摘要/全文二階段審查功能。這可能是要到年中的時候才會去處理的問題,現在就先擱著了。

 

總之,歡迎大家拿取我修改過的程式碼來作進一步開發,有問題歡迎底下提問,或是用GitHub的Issues功能提問都可以。接下來幾篇我想跟大家聊聊我這個OCS改了什麼東西,慢慢來寫吧。

(more...)