<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Beyond the Void &#187; 設計開發</title>
	<atom:link href="http://www.byvoid.com/blog/cate/my-design/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.byvoid.com/blog</link>
	<description></description>
	<lastBuildDate>Tue, 29 Jun 2010 08:44:46 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>Open Chinese Convert 開源簡繁轉換</title>
		<link>http://www.byvoid.com/blog/open-chinese-convert/</link>
		<comments>http://www.byvoid.com/blog/open-chinese-convert/#comments</comments>
		<pubDate>Sun, 20 Jun 2010 11:23:38 +0000</pubDate>
		<dc:creator>BYVoid</dc:creator>
				<category><![CDATA[中文與漢字]]></category>
		<category><![CDATA[設計開發]]></category>
		<category><![CDATA[ibus-pinyin]]></category>
		<category><![CDATA[开源]]></category>
		<category><![CDATA[异体字]]></category>
		<category><![CDATA[汉字]]></category>
		<category><![CDATA[简繁转换]]></category>

		<guid isPermaLink="false">http://www.byvoid.com/blog/?p=2316</guid>
		<description><![CDATA[Open Chinese Convert（OpenCC）是一個中文簡繁轉換開源項目，提供簡繁轉換詞庫和可供程序調用的程序庫(libopencc)。現託管於Google Code。 關於簡繁轉換 由於種種歷史問題，漢字系統被割裂爲「簡化字... ]]></description>
			<content:encoded><![CDATA[<p><a href="http://code.google.com/p/open-chinese-convert/" target="_blank">Open Chinese Convert</a>（OpenCC）是一個中文簡繁轉換開源項目，提供簡繁轉換詞庫和可供程序調用的程序庫(libopencc)。現託管於<a href="http://code.google.com/p/open-chinese-convert/" target="_blank">Google Code</a>。</p>
<h3><a name="關於簡繁轉換">關於簡繁轉換</a><a href="http://code.google.com/p/open-chinese-convert/wiki/Readme#%E9%97%9C%E6%96%BC%E7%B0%A1%E7%B9%81%E8%BD%89%E6%8F%9B"></a></h3>
<p>由於種種歷史問題，漢字系統被割裂爲「簡化字」和「繁體字」，然而「簡化字」並不能完全取代原有的繁體字，一方面是由於古籍、書法、文字學的研究需要，另一方面則是港澳臺日韓越及其他海外地區「簡化字」並不通行。隨着信息技術的發展，這方面的需求不斷突出，因此簡繁轉換便成了一個信息技術界和中文研究界需要共同解決的問題。</p>
<p><strong>精確的</strong>簡繁轉換一直以來是一個難題，其原因主要是簡體和繁體互有一對多的現象，而具體用字對應規則需要聯繫上下文分析語義纔能確定。而廣義的「簡繁轉換」，還包括了不同地域習慣用字和用詞差異的轉換（如「软件」「軟體」等），甚至詞和詞之間也有「一對多」的關係，因而使轉換更加複雜。目前現有的簡繁轉換軟件，即使是專業的（收費），也不能完全解決這些問題，在開源界能接近其水平的更是寥寥無幾。因此OpenCC的誕生，就是爲了儘可能地解決這個難題。</p>
<h3><a name="一些概念">一些概念</a><a href="http://code.google.com/p/open-chinese-convert/wiki/Readme#%E4%B8%80%E4%BA%9B%E6%A6%82%E5%BF%B5"></a></h3>
<p>漢字（據不完全統計）有十萬之眾，「簡化字」非但沒有減少漢字數量，反而使漢字數量更加龐大。雖然日常用到的字祇有數千，且有着複雜的關係。<strong>要做好簡繁轉換，必須理解這之中的許多關係與微妙的差別</strong>。</p>
<h4><a name="「異體字」">「異體字」</a><a href="http://code.google.com/p/open-chinese-convert/wiki/Readme#%E3%80%8C%E7%95%B0%E9%AB%94%E5%AD%97%E3%80%8D"></a></h4>
<p>由於漢字造字年代久遠，且非一人一時之所造，通行時間又爲世界之最，流變眾多，許多字並非祇有一種寫法，如「為爲」「朵朶」「畫畵」「污汚汙」等等。這些字<strong>祇是寫法不同</strong>，而沒有任何表意的區別，因此被稱爲「異體字」。狹義的異體字是<strong>沒有任何表意的區別</strong>的一組字，而廣義的異體字還包含了表意範圍有交叉或所屬關係的字以及「通假字」。<strong>下文中的異體字全部是狹義的異體字</strong>。</p>
<p>需要注意的是「通假字」祇是同音假借，本字和被假借字可能意義完全不同，因而不是異體字。而「訛字」和「俗字」（絕大多數）則屬於異體字。例如「繫」字在傳抄的時候，左上角被寫成了「車」，然後以訛傳訛，就產生了訛字「繋」。「俗字」或稱「俗體字」是民間通行的一種變體，許多俗字就是筆畫較爲減省的異體字，也有很多來自訛字。</p>
<h4><a name="「繁體字」「簡體字」「簡化字」">「繁體字」「簡體字」「簡化字」</a><a href="http://code.google.com/p/open-chinese-convert/wiki/Readme#%E3%80%8C%E7%B9%81%E9%AB%94%E5%AD%97%E3%80%8D%E3%80%8C%E7%B0%A1%E9%AB%94%E5%AD%97%E3%80%8D%E3%80%8C%E7%B0%A1%E5%8C%96%E5%AD%97%E3%80%8D"></a></h4>
<p>嚴格地說，「繁體字」和「簡體字」是異體字關係，「繁體字」是相對「簡體字」而創造的概念。「簡體字」這一名稱，始見於1935年民國教育部總結的一批「古已有之」、「歷代通行」的「筆劃較少的」異體字。這批簡體字主要蒐集自民間話本「述而不作」地整理出，沒有類推造字。</p>
<p>「簡化字」，顧名思義則是人工簡化的字，這個概念的產生與近代「漢字改革」思潮有關，最早見於錢玄同的文中。1964年，中國文字改革委員會出版了《簡化字總表》（不是「簡體字總表」），簡化字開始在中國大陸流行開來。1977年，中央又發佈《第二次漢字簡化方案》，1986年被廢除，史稱「二簡字」。慢慢「簡化字」這一概念就被固定下來，專指<strong>中國大陸推行的簡化字</strong>。</p>
<p>可見「簡體字」並不等於「簡化字」，前者強調異體關係，後者強調簡化關係。而現在這兩個概念趨於混淆，乃至用「簡體字」表達「簡化字」的意義更常見，其主要原因是由於另一個詞彙「簡體中文」的出現。比起中文的混淆，英文解釋更加清楚：「簡化字」的英文翻譯是「simplified Chinese characters」（簡化過的漢字），simplified源自動詞simplify簡化。「簡體字」由於概念不常見，沒有公認的正式翻譯，有一種譯 作「simpler variants of Chinese characters」（較簡單的漢字變體）。</p>
<p>由於「簡體字」和「繁體字」本身存在對立關係，繁體字也就慢慢變成專指港澳臺用字了。事實上港澳臺用字也不盡相同，如「裏」「裡」等，於是又有了「港澳繁體」「臺灣正體」等名字。</p>
<h3><a name="已有項目的缺陷">已有項目的缺陷</a><a href="http://code.google.com/p/open-chinese-convert/wiki/Readme#%E5%B7%B2%E6%9C%89%E9%A0%85%E7%9B%AE%E7%9A%84%E7%BC%BA%E9%99%B7"></a></h3>
<p>OpenCC的的誕生並不是輪子的重複發明，而是爲了實現一個更好的簡繁轉 換計劃，因爲目前已有的各種項目，或多或少地有着各種缺陷。</p>
<h4><a name="Wikipedia">Wikipedia</a><a href="http://code.google.com/p/open-chinese-convert/wiki/Readme#Wikipedia"></a></h4>
<p>毫無疑問最廣爲人知的簡繁轉換項目莫過於Wikipedia提供的<a rel="nofollow" href="http://svn.wikimedia.org/svnroot/mediawiki/trunk/phase3/includes/zhtable/">簡繁轉換表</a>。Wikipedia有效地利用了分散的人力，整理出了一個數量不小的表格，其優點在於*詳細地區分了簡繁轉換和地域轉換<strong>。但是也有許多不足：</strong></p>
<ol>
<li>異體字處理混亂，「一簡對多異」被當作「一簡對多繁」處理。如「为」對應「爲為」。</li>
<li>一簡對多繁有眾多爭議，處理不統一，時分時不分。如「卷烟」「烟卷」分別用了「煙」和「菸」。</li>
<li>有大量不成詞的「詞」，祇爲正向最大轉換優化，不兼容別的分詞算法。如「们斗了胆」「們斗了膽」。</li>
<li>專爲Wikipedia設計，依賴編輯的人工干預。</li>
<li>一般非地域轉換中「着」被併入「著」，不符合香港、海外等地用字習慣。</li>
</ol>
<p>使Wikipedia做出改變較難，尤其是在這種民主的管理模式下，多數人（臺灣）可能會毫不顧及少數人（香港）。</p>
<h4><a name="cconv">cconv</a><a href="http://code.google.com/p/open-chinese-convert/wiki/Readme#cconv"></a></h4>
<p><a rel="nofollow" href="http://code.google.com/p/cconv/">cconv</a>是另一個簡繁轉換的項目，較早開發，有一定的用戶。缺陷很明顯：</p>
<ol>
<li>簡繁轉換和地域轉換混同一談。</li>
<li>完全沒有處理異體字。</li>
<li>功能雜糅了編碼轉換和簡繁轉換，不易剝離。</li>
<li>簡繁轉換數據被編譯到庫中，無法修改和擴展（除非重新編譯）。</li>
<li>GPL協議發佈，對開發者限制較大。</li>
<li>目前長期無人維護。</li>
</ol>
<h3><a name="OpenCC的特點和方法">OpenCC 的特點和方法</a><a href="http://code.google.com/p/open-chinese-convert/wiki/Readme#OpenCC%E7%9A%84%E7%89%B9%E9%BB%9E%E5%92%8C%E6%96%B9%E6%B3%95"></a></h3>
<h4><a name="OpenCC特點">OpenCC特點</a><a href="http://code.google.com/p/open-chinese-convert/wiki/Readme#OpenCC%E7%89%B9%E9%BB%9E"></a></h4>
<ul>
<li>嚴格區分「一簡對多繁」和「一簡對多異」。</li>
<li>完全兼容異體字，可以實現動態替換。</li>
<li>嚴格審校一簡對多繁詞條，原則爲「能分則不合」。</li>
<li>使用歧義分割+最少分詞算法，儘可能從技術上優化轉換效果。</li>
<li>詞庫和程序庫完全分離，可以自由修改、導入、擴展。</li>
<li>以Apache開源協議發佈，使開發者真正可以自由使用。</li>
<li>已經用於<a rel="nofollow" href="http://code.google.com/p/ibus/">ibus-pinyin</a>的繁體模式輸入，由ibus開發組長期協助維護。</li>
<li>支持 C，C++，Python，PHP等多種語言調用，命令行直接調用，以及圖形界面（開發中）。</li>
</ul>
<h4><a name="解釋">解釋</a><a href="http://code.google.com/p/open-chinese-convert/wiki/Readme#%E8%A7%A3%E9%87%8B"></a></h4>
<p>OpenCC有獨立的「一簡對多繁」表、「一繁對多簡」表和異體字表，保證沒有混雜着異體字。而且可以方便地自定義地區習慣使用的異體字，兼容臺灣、香港和海外地區不同的習慣。</p>
<p>簡繁轉換詞庫中數萬詞彙經過校對，最大可能地保證轉換準確性，用字原則爲「能分則不合」。舉例如「臺」「檯」「台」，在臺灣習慣中，有合流爲「台」的現象，但其意義界限明顯，故OpenCC從分，（具體見<a rel="nofollow" href="http://code.google.com/p/open-chinese-convert/source/browse/trunk/data/scheme/st_multi.txt">此列表</a>）。根據不同的習慣，也可以設定爲合流。</p>
<p>簡繁轉換功能的核心算法爲歧義分割+最少分詞，簡單解釋爲首先掃描待轉換字符串，分割成若干個有歧義的區間（即每個區間內可以有多種分詞方案），然後對每個區間的字內構造圖論模型，使用最短路徑算法求出最優分割方案，然後對分詞的結果每部分進行轉換。這種算法不僅準確性高於直接正向掃描轉換，而且速度也很快，測試中每秒可以轉換8.4MB文本（UTF8編碼，內容爲小說，速度僅供參考）。</p>
<p>OpenCC把詞庫和程序庫完全分離，程序庫可以讀取兩種格式的詞庫，一種爲Tab分割的平面文本，一種爲OpenCC專門優化過的數據結構，ocd格式。平面文本數據庫格式方便閱讀和修改，ocd格式是OpenCC構造出的Double Array Trie數據結構，使用其可以大大提供轉換速度。OpenCC還提供了詞庫轉換程序，可以自由在兩種格式之間轉換。</p>
<p>OpenCC程序庫提供了C，C++，Python，PHP等語言的接口，便於在任何環境下使用，此外還提供了命令行直接調用的模式，圖形界面也在開發當中。</p>
<h4><a name="詞庫來源">詞庫來源</a><a href="http://code.google.com/p/open-chinese-convert/wiki/Readme#%E8%A9%9E%E5%BA%AB%E4%BE%86%E6%BA%90"></a></h4>
<p>OpenCC的繁體到簡體轉換的詞庫是由單字對應人工校對後生成的，單字對應數據來自Unicode數據庫以及人工的覈對和修改。簡體到繁體的詞庫由大量的繁體語料自動轉換到簡體然後校對而成。</p>
<p>參考資料</p>
<ul>
<li><a rel="nofollow" href="http://www.pkucn.com/forumdisplay.php?fid=144&amp;page=1">http://www.pkucn.com/forumdisplay.php?fid=144&amp;page=1</a></li>
<li><a rel="nofollow" href="http://input.foruto.com/ccc/data/proof/02.htm">http://input.foruto.com/ccc/data/proof/02.htm</a></li>
<li><a rel="nofollow" href="http://www.mdbg.net/chindict/chindict.php">http://www.mdbg.net/chindict/chindict.php</a></li>
<li><a rel="nofollow" href="http://zh.wikipedia.org/wiki/">http://zh.wikipedia.org/wiki/</a></li>
</ul>
<h3><a name="歡迎試用和加入">歡迎試用和加入</a><a href="http://code.google.com/p/open-chinese-convert/wiki/Readme#%E6%AD%A1%E8%BF%8E%E8%A9%A6%E7%94%A8%E5%92%8C%E5%8A%A0%E5%85%A5"></a></h3>
<p>如果感興趣，可以先<a rel="nofollow" href="http://itemstatlite.phpsix.net/opencc/">在綫試用</a>一下， 然後<a href="http://code.google.com/p/open-chinese-convert/wiki/Install">安 裝到你的系統</a>。</p>
<p>開源非一人之力，有眾人的支持纔能做得更好。歡迎有意者加入開發，歡迎中文專業者和愛好者加入詞庫審校工作。</p>
<p>如有任何問題或建議，請到 <a rel="nofollow" href="http://code.google.com/p/open-chinese-convert/issues/entry">http://code.google.com/p/open-chinese-convert/issues/entry</a> 報告。或者可以直接<a rel="nofollow" href="../../application/contact/">與BYVoid取得聯繫</a>。</p>
<h3  class="related_post_title">Maybe you like</h3><ul class="related_post"><li><a href="http://www.byvoid.com/blog/join-develop-ibus-pinyin/" title="有幸加入ibus-pinyin的开发">有幸加入ibus-pinyin的开发</a></li><li><a href="http://www.byvoid.com/blog/chinese-character-definition/" title="混淆的概念——“繁體字”、“正體字”、“簡體字”、“簡化字”之辨析">混淆的概念——“繁體字”、“正體字”、“簡體字”、“簡化字”之辨析</a></li><li><a href="http://www.byvoid.com/blog/classical-chinese-gaokaozuowen/" title="『轉載』江蘇考生駢體文言高考作文">『轉載』江蘇考生駢體文言高考作文</a></li><li><a href="http://www.byvoid.com/blog/dvcs-mercurial/" title="分布式版本控制系统——Mercurial">分布式版本控制系统——Mercurial</a></li><li><a href="http://www.byvoid.com/blog/ibus-bopomofo-1-3-9-features/" title="ibus-pinyin注音模式新特性">ibus-pinyin注音模式新特性</a></li><li><a href="http://www.byvoid.com/blog/criticism-simplified-chinese/" title="[轉載]漢字簡化得不償失">[轉載]漢字簡化得不償失</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.byvoid.com/blog/open-chinese-convert/feed/</wfw:commentRss>
		<slash:comments>15</slash:comments>
		</item>
		<item>
		<title>ibus-pinyin注音模式新特性</title>
		<link>http://www.byvoid.com/blog/ibus-bopomofo-1-3-9-features/</link>
		<comments>http://www.byvoid.com/blog/ibus-bopomofo-1-3-9-features/#comments</comments>
		<pubDate>Sat, 05 Jun 2010 09:57:54 +0000</pubDate>
		<dc:creator>BYVoid</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[設計開發]]></category>
		<category><![CDATA[IBus]]></category>
		<category><![CDATA[ibus-pinyin]]></category>
		<category><![CDATA[plurk]]></category>
		<category><![CDATA[Ubuntu]]></category>
		<category><![CDATA[注音符号]]></category>
		<category><![CDATA[输入法]]></category>

		<guid isPermaLink="false">http://www.byvoid.com/blog/?p=2300</guid>
		<description><![CDATA[前一段時間ibus-pinyin注音模式發布以後，得到了來自Ubuntu正體中文站和Plurk的朋友們熱烈的關注，對此我感到非常榮幸。限於當時開發倉促，很多功能都沒有很好地實現，不過我還是得到了許多... ]]></description>
			<content:encoded><![CDATA[<p>前一段時間<a href="http://www.byvoid.com/blog/ibus-pinyin-bopomofo-preview/" target="_blank">ibus-pinyin注音模式發布以後</a>，得到了來自<a href="http://www.ubuntu-tw.org/modules/newbb/viewtopic.php?topic_id=26298&amp;forum=7" target="_blank">Ubuntu正體中文站</a>和<a href="http://www.plurk.com" target="_blank">Plurk</a>的朋友們熱烈的關注，對此我感到非常榮幸。限於當時開發倉促，很多功能都沒有很好地實現，不過我還是得到了許多寶貴的意見反饋，基於此我公布了<a href="https://docs.google.com/document/edit?id=1x3JDrt4BuoupbK1p1jwyB1zSsu7eJcNxHnYlQO8hucU&amp;hl=zh_TW#" target="_blank">「注音模式用戶交互設計方案」</a>，並依據其改善了用戶交互模式。在1.3.9穩定版發布前夕，我先向大家介紹一下ibus-pinyin注音模式的新特性。</p>
<p>本次更新最大的改動是加入了「引導鍵」選詞模式。什麼是「引導鍵」呢？「引導鍵」就是在輸入模式下的空格鍵（或曰「空白鍵」）。在輸入模式下，按下空格鍵，就會進入選詞模式，這時候按鍵響應會優先被處理爲選詞。選詞模式下可以直接按下候選詞標籤對應的按鍵進行選詞，也再次按下空格選擇光標所在位置的候選詞，按上下方向鍵可以移動光標位置。</p>
<p><a rel="attachment wp-att-2301" href="http://www.byvoid.com/blog/ibus-bopomofo-1-3-9-features/shot01/"><img class="alignnone size-full wp-image-2301" title="shot01" src="http://www.byvoid.com/blog/wp-content/uploads/2010/06/shot01.png" alt="" width="741" height="481" /></a></p>
<p>在輸入模式中，候選詞前面的標籤是灰色的，而且不顯示光標位置。當按下空格鍵、上下方向鍵時，可以進入選詞模式。當然如果你想直接選詞，可以按Alt + 選詞鍵，或者可以使用「輔助選詞鍵」。「輔助選詞鍵」爲F1,F2,&#8230;F10，以及數字鍵盤上的數字，使用輔助選詞鍵可以在任何時候選詞。</p>
<p>當進入選詞模式後，候選詞標籤顏色變深，並且選詞光標也出現。此時可以直接按候選詞標籤對應的選詞鍵選詞。<br />
<a rel="attachment wp-att-2302" href="http://www.byvoid.com/blog/ibus-bopomofo-1-3-9-features/shot02/"><img class="alignnone size-full wp-image-2302" title="shot02" src="http://www.byvoid.com/blog/wp-content/uploads/2010/06/shot02.png" alt="" width="743" height="480" /></a></p>
<p>應大家要求，我們還加入了選詞鍵設置的選項。如果你不喜歡用數字鍵選詞，可以設置爲其他的按鍵，這個設計承襲自大名鼎鼎的「新酷音」輸入法。<br />
<a rel="attachment wp-att-2303" href="http://www.byvoid.com/blog/ibus-bopomofo-1-3-9-features/shot03/"><img class="alignnone size-full wp-image-2303" title="shot03" src="http://www.byvoid.com/blog/wp-content/uploads/2010/06/shot03.png" alt="" width="743" height="481" /></a></p>
<p>當然了，「引導鍵」選詞只是可選的，如果你喜歡原來那樣的模式（按空格鍵即時選詞），可以在「偏好設定」中關閉「啟用選詞引導鍵」選項。其他特性如「鍵盤映射」、「模糊音」、「自定義詞組」，都可以在偏好設定中找到。<br />
<a rel="attachment wp-att-2304" href="http://www.byvoid.com/blog/ibus-bopomofo-1-3-9-features/shot04/"><img class="alignnone size-full wp-image-2304" title="shot04" src="http://www.byvoid.com/blog/wp-content/uploads/2010/06/shot04.png" alt="" width="424" height="547" /></a></p>
<p>趕快試用一下新版本吧，如果你是Ubuntu用戶，現在已經可以在ppa源中取得新版本，使用方法如下：</p>
<blockquote><p>sudo add-apt-repository ppa:shawn-p-huang/ppa<br />
sudo apt-get update<br />
sudo apt-get install ibus-gtk ibus-qt4 ibus-pinyin ibus-pinyin-db-open-phrase</p></blockquote>
<p>設置一次過後今後一旦有新版本就會自動更新，或者使用apt-get install ibus-pinyin強制更新即可。</p>
<p>歡迎大家<a href="http://code.google.com/p/ibus/issues/entry" target="_blank">提出意見或建議</a>，期待您的反饋。</p>
<h3  class="related_post_title">Maybe you like</h3><ul class="related_post"><li><a href="http://www.byvoid.com/blog/ibus-pinyin-bopomofo-preview/" title="ibus-pinyin注音模式預覽">ibus-pinyin注音模式預覽</a></li><li><a href="http://www.byvoid.com/blog/join-develop-ibus-pinyin/" title="有幸加入ibus-pinyin的开发">有幸加入ibus-pinyin的开发</a></li><li><a href="http://www.byvoid.com/blog/ibus-ime/" title="新版IBus输入法还不错">新版IBus输入法还不错</a></li><li><a href="http://www.byvoid.com/blog/ubuntu-wine-wow/" title="Ubuntu下用wine玩魔兽世界">Ubuntu下用wine玩魔兽世界</a></li><li><a href="http://www.byvoid.com/blog/linux-ssh-wall/" title="Linux下实现自动设置SSH代理">Linux下实现自动设置SSH代理</a></li><li><a href="http://www.byvoid.com/blog/linux-c-1/" title="Linux C语言编程学习笔记 (1)进程控制入门">Linux C语言编程学习笔记 (1)进程控制入门</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.byvoid.com/blog/ibus-bopomofo-1-3-9-features/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>ibus-pinyin注音模式預覽</title>
		<link>http://www.byvoid.com/blog/ibus-pinyin-bopomofo-preview/</link>
		<comments>http://www.byvoid.com/blog/ibus-pinyin-bopomofo-preview/#comments</comments>
		<pubDate>Tue, 18 May 2010 16:31:51 +0000</pubDate>
		<dc:creator>BYVoid</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[中文與漢字]]></category>
		<category><![CDATA[設計開發]]></category>
		<category><![CDATA[IBus]]></category>
		<category><![CDATA[ibus-pinyin]]></category>
		<category><![CDATA[拼音]]></category>
		<category><![CDATA[注音符号]]></category>
		<category><![CDATA[输入法]]></category>

		<guid isPermaLink="false">http://www.byvoid.com/blog/?p=1948</guid>
		<description><![CDATA[經過一個多星期的開發，終於基於ibus-pinyin的引擎做出了注音模式，馬上就要發布了，現在先放出預覽現在已經發佈。 （什麼是注音呢？注音全名注音符號，又叫注音字母，是一套漢語的標音... ]]></description>
			<content:encoded><![CDATA[<p>經過一個多星期的開發，終於基於<a href="http://code.google.com/p/ibus" target="_blank">ibus-pinyin</a>的引擎做出了注音模式，<del datetime="2010-05-19T09:57:07+00:00">馬上就要發布了，現在先放出預覽</del>現在已經發佈。</p>
<p>（什麼是注音呢？注音全名注音符號，又叫注音字母，是一套漢語的標音符號，例如ㄅㄆㄇㄈㄉㄊㄋㄌ。可別把它當作日文假名，<a href="http://www.byvoid.com/blog/pa-origin/" target="_blank">其實注音的每個字母都是有來由的</a>。注音符號制定於北洋政府時期，一直作為教學所用。中國大陸1958年以後停用了注音而改用漢語拼音，臺灣則沿用注音至今。）</p>
<p>為什麼要做一個這樣的注音輸入法呢？因為據我所知，現有的各種注音輸入法的水平要遠遠落後於各種拼音輸入法，例如大名鼎鼎的新酷音輸入法、微軟新注音，都只停留在組詞的階段，甚至不少時候需要自己來翻好幾頁選字，更不用說智能組句，簡拼等功能了。一直以來我想製作一款優秀的注音輸入法，以改善臺灣同胞的打字體驗，亦可復興優秀的注音符號系統。恰好ibus-pinyin是Linux平臺下的一個非常優秀的輸入法，且開發者很活躍，願意進行各種嘗試，故我就加入了ibus-pinyin小組，開始了ibus-pinyin注音模式的開發。幸運的是，ibus-pinyin的代碼很明晰，而且其作者Peng Huang大牛非常熱心地對我進行了指導和幫助，因而我們纔只用了一個多星期就做出了注音輸入法。</p>
<p>ibus-pinyin注音模式儘量參考了其他注音輸入法，但又沒有完全拘泥於其模式，而是結合了拼音輸入法的常用交互邏輯。輸入注音時，候選詞列表即時更新，第一個候選詞為智能組句的結果，後面依次是組詞、單字。按空格可以選擇高亮區域的候選詞，按上下鍵可以移動高亮區域，按過上下鍵或選詞時進入選詞模式，此時可以直接按數字鍵選詞，同時小鍵盤數字鍵或Shift + 數字鍵可以在任何時候直接選詞。下圖是輸入時的截圖：<br />
<img class="alignnone size-full wp-image-1949" title="bpmf1" src="http://www.byvoid.com/blog/wp-content/uploads/2010/05/bpmf1.png" alt="" width="786" height="388" /></p>
<p>除此之外，ibus-pinyin注音模式還支持了簡拼和混拼，就是在組詞時只用輸入字的聲母，效果如下：<br />
<img class="alignnone size-full wp-image-1950" title="bpmf2" src="http://www.byvoid.com/blog/wp-content/uploads/2010/05/bpmf2.png" alt="" width="783" height="386" /></p>
<p>想要輸入標點符號也很容易，只要按`鍵（數字鍵1左邊），即可進入符號模式，再按一個字符即可開始選各種符號。這種方式是模仿了微軟新注音。效果如下圖：<br />
<img class="alignnone size-full wp-image-1951" title="bpmf3" src="http://www.byvoid.com/blog/wp-content/uploads/2010/05/bpmf3.png" alt="" width="784" height="386" /></p>
<p>當然，限於開發進度，ibus-pinyin注音模式還遠遠沒有達到盡善盡美的地步，當前版本還有一些問題亟待解決。主要問題如下：</p>
<ol>
<li>暫時不支持聲調。因為限於數據庫的格式（缺乏聲調信息），我們還無法做出基於聲調模式的選字選詞，不過這已經列入開發日程，近期版本就會支持。</li>
<li>繁體模式下有重複字的情況，這個問題將會在近期整理詞庫後解決。</li>
<li>目前僅支持標準注音鍵盤，下個版本將會加入其他注音鍵盤方案選項。</li>
</ol>
<h3>Q&amp;A</h3>
<p><strong>Q:如何安裝本輸入法？</strong></p>
<p>A:由於Ubuntu的官方源不能及時更新到最新版本，我们推薦使用ppa源。使用方法為在終端下輸入</p>
<blockquote><p>sudo add-apt-repository ppa:shawn-p-huang/ppa<br />
sudo apt-get update<br />
sudo apt-get install ibus-gtk ibus-qt ibus-pinyin ibus-pinyin-db-open-phrase</p></blockquote>
<p>接下来，在頂部菜單 系統 &#8211; 管理 &#8211; 語言支援 ，把“鍵盤輸入法系統”設置為ibus，然後註銷重新登入。</p>
<p><strong>Q:如何切換出本輸入法？</strong></p>
<p>A:點擊輸入漢字的區域，在系統托盤中點擊鍵盤圖標，選擇“漢語 &#8211; Bopomofo”，或者使用ctrl + space。如果列表中沒有Bopomofo，右鍵點擊托盤中的鍵盤圖標，選擇 偏好設定 ，在輸入法標籤中點擊 選擇輸入法 &#8211; 漢語 &#8211; Bopomofo，然後點擊加入。</p>
<p><strong>Q:如何選擇候選字詞？</strong></p>
<p>A:輸入過程中，候選詞列表會即時更新，按下空格鍵即可選取高亮區域的字詞，按上下鍵可以移動高亮區域。選詞過程中也可以直接按數字鍵選詞，使用Shift + 數字鍵可以在任何時候直接選詞。</p>
<p><strong>Q:如何進行中英文模式切換？</strong></p>
<p>A:點擊輸入法狀態條上的中/英按鈕，或者按Shift鍵即可切換中英文模式。</p>
<p><strong>Q:如何在中文模式下輸入標點符號？</strong></p>
<p>A:按`（數字鍵1左邊的按鍵）以後，進入符號模式，接下來按不同的按鍵可以顯示不同的符號列表。</p>
<p>請大家繼續關注，我們熱切地希望得到任何反饋，包括問題報告、建議、用戶習慣意見等。<br />
<img class="alignnone size-full wp-image-1952" title="bpmf4" src="http://www.byvoid.com/blog/wp-content/uploads/2010/05/bpmf4.png" alt="" width="421" height="494" /><br />
目前開發者：BYVoid， Peng Huang，歡迎有意加入開發者聯繫。</p>
<h3  class="related_post_title">Maybe you like</h3><ul class="related_post"><li><a href="http://www.byvoid.com/blog/ibus-bopomofo-1-3-9-features/" title="ibus-pinyin注音模式新特性">ibus-pinyin注音模式新特性</a></li><li><a href="http://www.byvoid.com/blog/join-develop-ibus-pinyin/" title="有幸加入ibus-pinyin的开发">有幸加入ibus-pinyin的开发</a></li><li><a href="http://www.byvoid.com/blog/ibus-ime/" title="新版IBus输入法还不错">新版IBus输入法还不错</a></li><li><a href="http://www.byvoid.com/blog/open-chinese-convert/" title="Open Chinese Convert 開源簡繁轉換">Open Chinese Convert 開源簡繁轉換</a></li><li><a href="http://www.byvoid.com/blog/dvcs-mercurial/" title="分布式版本控制系统——Mercurial">分布式版本控制系统——Mercurial</a></li><li><a href="http://www.byvoid.com/blog/ubuntu-wine-wow/" title="Ubuntu下用wine玩魔兽世界">Ubuntu下用wine玩魔兽世界</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.byvoid.com/blog/ibus-pinyin-bopomofo-preview/feed/</wfw:commentRss>
		<slash:comments>41</slash:comments>
		</item>
		<item>
		<title>有幸加入ibus-pinyin的开发</title>
		<link>http://www.byvoid.com/blog/join-develop-ibus-pinyin/</link>
		<comments>http://www.byvoid.com/blog/join-develop-ibus-pinyin/#comments</comments>
		<pubDate>Wed, 12 May 2010 09:02:46 +0000</pubDate>
		<dc:creator>BYVoid</dc:creator>
				<category><![CDATA[設計開發]]></category>
		<category><![CDATA[IBus]]></category>
		<category><![CDATA[ibus-pinyin]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Python]]></category>
		<category><![CDATA[开发]]></category>
		<category><![CDATA[开源]]></category>
		<category><![CDATA[拼音]]></category>
		<category><![CDATA[跨平台]]></category>
		<category><![CDATA[输入法]]></category>

		<guid isPermaLink="false">http://www.byvoid.com/blog/?p=1938</guid>
		<description><![CDATA[最近结识了中文Linux下最常见的输入法iBus的作者Peng Huang，并有幸加入了ibus-pinyin输入法的开发工作。开发输入法本身就是一个不常见的工作，因此很难找到相关资料，而开发一个优秀的拼音输... ]]></description>
			<content:encoded><![CDATA[<p>最近结识了中文Linux下最常见的输入法iBus的作者Peng Huang，并有幸加入了<a href="http://ibus.googlecode.com" target="_blank">ibus-pinyin</a>输入法的开发工作。开发输入法本身就是一个不常见的工作，因此很难找到相关资料，而开发一个优秀的拼音输入法更是难上加难。在此深切地膜拜Peng Huang，能与这样的牛人合作并从中得到指点，真是莫大的荣幸。</p>
<p>不少传言说iBus是Python写的，效率不行，实际上这是一个谣传。ibus的确曾经是python写的，但是现在已经用C++重写，效率得到很大的提高，而且兼容性要远远强于Scim。iBus全名为<strong>intelligent input bus</strong>，顾名思义它是一个<strong>输入法平台</strong>，也可以理解为是一个已经写好的与系统交互的库，各种输入法运行在iBus上。输入法只是调用了iBus，调用iBus可以让其作者专心地编写输入法功能的代码，而不是把过多的精力浪费在与系统交互上，也增加输入法的可移植性。而ibus-pinyin正是iBus作者Peng Huang写的一个运行在iBus上的拼音输入法。</p>
<p>花了不短的时间才大致看明白了ibus-pinyin的源码，发现大致的逻辑是：捕获用户输入的字符串-将字符串解析为拼音-查询词库将拼音解析为词汇-用词汇智能组句-显示候选词-输出文本。其中第一步和最后一步都很简单，因为已经被iBus提供了良好的接口，因此重点在于<strong>拼音解析</strong>，<strong>词汇解析</strong>和<strong>智能组句</strong>上。由于开发力量过小（开发人员加上我才3个人），这些功能的实现还很简单。像拼音解析遇到了歧义（如xian，fangan）还都只是指定一种（出现概率较大）解析方式，没有实现高度的智能化。</p>
<p>我所关注的部分是为ibus-pinyin实现声调模式，注音模式，和精确简繁转换这些功能。声调模式需要一个字库，这个已经从Unicode获得，而词库目前是不带声调的，要实现带声调需要较大人力。注音模式主要是推广到繁体用户那里，因为据我了解到的注音输入法智能组句功能都很弱，如果有这样强的输入法一定会受欢迎的。精确的简繁转换主要是实现输出地道的繁体，这就要解决大量的简繁一对多词汇了，具体实现也很复杂，只能逐步做。</p>
<p>截至今日(2010.5.12)ibus-pinyin的最新版本是1.3.5，下一版本发布之前两位开发者精力主要集中在开发输入法Lua插件支持和用户词库同步上。Lua插件就是让输入法支持自己开发的外接程序，让用户更灵活定制。用户词库同步是目前较为成熟的输入法都具备的功能，就是实现用户可以将自己的词库上传到服务器上，便于用户保存输入习惯，另一方面也方便我们统计和更新词库。但是作为开源软件，服务器费用是个问题，目前可以考虑用免费的Google App，将来也许可以得到像Google这类大公司的赞助吧。我很看好ibus-pinyin的发展，因为首先它是开源的，而且容易实现跨平台。目前没有好用的能够跨平台的输入法，而这个市场正好可以由ibus-pinyin来填补吧。</p>
<h3  class="related_post_title">Maybe you like</h3><ul class="related_post"><li><a href="http://www.byvoid.com/blog/ibus-pinyin-bopomofo-preview/" title="ibus-pinyin注音模式預覽">ibus-pinyin注音模式預覽</a></li><li><a href="http://www.byvoid.com/blog/ibus-bopomofo-1-3-9-features/" title="ibus-pinyin注音模式新特性">ibus-pinyin注音模式新特性</a></li><li><a href="http://www.byvoid.com/blog/open-chinese-convert/" title="Open Chinese Convert 開源簡繁轉換">Open Chinese Convert 開源簡繁轉換</a></li><li><a href="http://www.byvoid.com/blog/dvcs-mercurial/" title="分布式版本控制系统——Mercurial">分布式版本控制系统——Mercurial</a></li><li><a href="http://www.byvoid.com/blog/ibus-ime/" title="新版IBus输入法还不错">新版IBus输入法还不错</a></li><li><a href="http://www.byvoid.com/blog/ubuntu-wine-wow/" title="Ubuntu下用wine玩魔兽世界">Ubuntu下用wine玩魔兽世界</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.byvoid.com/blog/join-develop-ibus-pinyin/feed/</wfw:commentRss>
		<slash:comments>11</slash:comments>
		</item>
	</channel>
</rss>
