目前分類:學習 (26)

瀏覽方式: 標題列表 簡短摘要
 

現在所有程式設計都脫離不了視窗程式設計,不管是電腦上的程式設計甚至是手機上的程式設計都需要親合力高的使用者介面,但是這些介面有時候並不是那麼容易製作,在JAVA程式設計中使用Swing來設計使用者介面,有的人使用IDE整合工具幫我們產生這些介面(如JBuilder,讓程式設計者省了不少力氣),微軟的Visual Stdio C++也提供畫面設計的輔助工具讓程式設計者更容易產生使用者介面,VB程式設計也提供了一些基本的物件(如文字方框、下拉式選單等)減輕程式設計者對畫面設計的負擔。Borland C++ Builer在這些介面物件的提供比Visual Stdio C++還要豐富,使用上更為方便,因此有許多程式設計者喜歡是用這樣的開發工具來設計他們的程式,其他如Delphi也提供方便的工具讓程式設計者可以利用拖曳與點選的方式來擺設需要的按鈕物件。沒有提供方便的視窗介面的開發工具,讓程式設計者再開發親合力高的使用者介面花上許時間。Python程式設計也提供方便的視窗環境讓使用者方便開方視窗成程式,並且能夠對程式進行除錯的動作,BOA Constructor這個工具時一個不錯的選擇,其他當然還有許多類似的工具,但是測試了這麼多,以及使用了這麼久,我覺得這個工具使用起來最好用。我利用這個工具撰寫一個簡單的計算機程式,只要花5分鐘的時間就可以搞定,程式設計者只需要對每個按鈕做好設定,並且把必要的物件放置到適合的位置,並加以控制就完成你的設計。使用BOA Constructor開啟MainApp.py就可以管理簡易計算機的視窗專案。
 

CJY0503 發表在 痞客邦 留言(0) 人氣()

 
今天早上起床後閒來無事,無意識下,隨手拿了一本書開始閱讀,這本書是說明自然語言處理技術的書籍,介紹了從1970年那個時候的人到今天為止的研究,對自然語言的處理方式以及他們所使用的一些技術。我隨便翻了一個章節來閱讀,雖然這本書從前也閱讀過,但總是片片段段的零星閱讀,似乎我也沒有一次將這本書從頭到尾仔細看過,每次都隨手翻開這本書,匆匆閱讀幾個章節後又去忙別的事情了,這次的情況也是如此。這次閱讀了Part-of-Speech Tagging這一個章節,以前好像也曾經讀過,就當作是複習,又將這個章節讀一次。自然語言處理的過程中有一個步驟是做Part-of-Speech Tagging,這一個步驟的主要目的就是將所要處理的資料做分類,根據書中所提到的資料以及其他文獻中的資料,在執行這個步驟時需要一部字典來當做分類的參考依據,從字典中獲取某個單詞的詞性資料和線索,這些分門別類的詞性組成的集合叫做tagsets,世界上存在許許多多的tagsets,而且這些tagsets的數量也不固定,從40個到200個,有多有少,主要目的就是將文字的詞性分類。一般而言一個字不可能只有一個詞性這麼單純,通常都會有一個以上的詞性存在,既然有一個以上的磁性存再就會造成處理時發生混淆的現象,舉例來說:英文中的Book這個單字,可以當作名詞來使用,也可以當作動詞來使用,當作名詞他的中文解釋叫做書,當作動詞其中文翻譯叫做訂(如:訂房間)。不同的詞性造成的語意上的差異很大,如何消除這個混淆現象從1970年到今天人有不少人在研究。主要的方法有三種:第一種方法是定一些文法規則來辨別詞性,例如:英文中to 後面可能接動詞,字尾有s可能是名詞,當然這些規則一定有例外,遇到例外時要額外定義例外的規則處理,不是很方便。第二種是使用機率的方式來處理,從文章中統計出各詞性所會發生的機率,例如:p(V|book) =0.2, p(N|book) =0.8,上面的意思是說book這個英文單字出現時有20%的機會是當動詞,有80%的機會是當名詞,憑藉著這些機率數字我們來猜一猜到底book這個單字應該是動詞還是名詞。第三種方法是結合第一種和第二種方法所產生的方法,根據事先所撰寫的規則中判斷該單字的詞性,並使用HMM的方法來計算哪個詞性在此規則出現的機率比較高,並使用學習的演算法來調整這些結果,這類的學習演算法都需要人的介入去調整並修正這些錯誤的資料。另外在Part-of-Speech Tagging的另一個問題就是該字的詞性無法再字典中找到時應該如何解決?換句話說就是如果這個字是新創造應該如何給定它的詞性。是要根據某些規則來賦予他詞性呢?還是應用統計機率的方式來決定,如果是用機率的方式來決定他到底是屬用均勻分部還是其他哪一種分布。如果是均勻分部每種詞性出現的機率都一樣,所以新創造出來的字可能屬於任一種以定的詞性。這類的問題相當有趣,但至今似乎也沒有一個比較好的解決方式,如果有一個比較好的方式來解決這個問題,自動翻譯,無論是中翻英或英翻中,應該會比目前翻譯機翻出來的句子通順一些。

CJY0503 發表在 痞客邦 留言(1) 人氣()

Java與Web Services

本篇文章的目的是教導一位初學者,如何使用Java程式撰寫 XML-RPC Client端的程式。我會使用到 Apache XML-RPC 的 library 來實作 Java 程式,並且連接上一個已經事先寫好的 XML-RPC Server,Server端的程式將以 Python 程式語言來完成。文章內容包含兩部分: 第一部分是 JAVA 程式的撰寫與環境設定,第二部分是 Python Server 程式的撰寫。

前言

CJY0503 發表在 痞客邦 留言(0) 人氣()

與Flash的第一次接觸
 
最近使用Flash撰寫一些程式,實在不是很會用,寫得很差,到處參考別人的文件,東拼西湊的,最後終於完成了一個小小的作品。這篇文章的目的用途是當做使用紀錄,供日後參考用的技術文件,畢竟人事健忘的動物。這次使用Flash的目的,是使用Flash提供的Web Service的能力,利用這個能力與SOAP Server連接並做資料的存取。而這篇文章將以一個極簡單的範例來說明如何透過Flash取得想要的資料。關於SOAP Server的製作請參考之前撰寫的"Pyhon的SOAP Library"這篇文章,這篇文章有教大家如何使用python這個程式語言實作一個RPC Server,提供其他程式作遠端呼叫。當然我也會在這篇文章中簡述RPC Server的製作,而我會使用不同的方式來架構RPC Server,與之前介紹使用Python 的 SOAP Library的用法有些不同,我將使用python內建的函式庫來實作該Server。
 
前言:

CJY0503 發表在 痞客邦 留言(0) 人氣()

關於JBuilder
 
JBuilder是開發Java程式的 IDE工具,提供一個方便好用的介面,簡化開發者設計的程序。這樣一個工具軟體到底要怎麼使用,下面我做一個簡單的介紹,供初學者參考。因為最近利用這個工具開發程式,所以順便將使用的經驗紀錄下來,我也算是初學者,對此工具有許多地方仍然不熟悉,一切都要慢慢摸索,漸漸累積經驗。
 
要使用JBuilder開發一個應用程式事實上很簡單,首先第一步點選File/New的選項,如下圖所示

CJY0503 發表在 痞客邦 留言(0) 人氣()


學點新鮮的東西
 
學東西應該是有一定步驟及方法的,很多人問我要怎麼學會比較快,我都只能對他們笑笑,因為我也說不出來。
 

CJY0503 發表在 痞客邦 留言(0) 人氣()

«12