Archive for the 'プログラミング' Category

漢字を注音符号にするWebサービス(3)

Posted by onaneetX.Q on 2月 5 2010 2 Commented

まずはコメントのお返事から。

POSTED BY 嘉門JOSUA ON 2010年2月4日
なかなか面白そうなことをやってますね。
自分は以前Flex+actionscriptやjavascript,php等使ってスペイン語学習アプリを作ろうとして挫折した経験があります。
話は変わりますがなかなか興味深い(といってもまぁ内容的にonaneetさんにとってはいまさらですが)記事を見つけたんで紹介します
http://gendai.ismedia.jp/articles/-/172
自分は東大2年で間違いなく「東大まで」の方にカテゴライズされちゃいそうな人間なので
少し耳が痛くなるような記事ですが…

示唆に富んだ記事を紹介してくれてありがとうございます。本題がしょぼいので、本題をさっさと書いてこっちにツッコミを入れていくことにします。

語学学習のソフトあるいはWebサービスがどのくらい需要があるかはわからないのですが、今は自分が語学に関心があるので自分が使えればいいやくらいの気持ちでやっています。ただ、比較的しょぼいものでも、もしかすると世界初?(たぶん探せばあるんだろうけどね)ということをやっているのは案外楽しいものです。楽しいだけじゃ生きていけないから、事業化できるといいなあなんて思っています。

2年生で「東大まで」と決めてしまうのは早計だと思いますよ。記事の中にもあったけど(あとで引用付きで書きます)気持ちが負けている人がいるなあと感じました。だから、今は多少自惚れくらいの感じで色々やってみるとよいのではないでしょうか。

注音符号表ができた

バグあるかも知れないけど、一部抜粋。

一,yi1,yi1,ㄚ1
丁,di1ng,ding1,ㄉㄧㄥ1
丂,yu2,yu2,yㄨ2
七,qi1,qi1,ㄑㄧ1
丄,sha4ng,shang4,ㄕㄤ4
丅,xia4,xia4,ㄒㄧㄚ4
万,wa4n,wan4,ㄨㄢ4
丈,zha4ng,zhang4,ㄓㄤ4
三,sa1n,san1,ㄙㄢ1
上,sha4ng,shang4,ㄕㄤ4
下,xia4,xia4,ㄒㄧㄚ4
丌,ji1/qi2,ji1/qi2,ㄐㄧ1/ㄑㄧ2
不,bu2/bu4,bu2/bu4,ㄅㄨ2/ㄅㄨ4
与,yu3,yu3,yㄨ3
丏,mia3n,mian3,ㄇㄧㄢ3
丐,ga4i,gai4,ㄍㄞ4
丑,cho3u,chou3,ㄔㄡ3
丒,cho3u,chou3,ㄔㄡ3
专,zhua1n,zhuan1,ㄓㄨㄢ1
且,qie3,qie3,ㄑㄧㄝ3
丕,pi1,pi1,ㄆㄧ1
世,shi4,shi4,ㄕ4
丗,shi4,shi4,ㄕ4
丘,qiu1,qiu1,ㄑㄧㄡ1
丙,bi3ng,bing3,ㄅㄧㄥ3
业,ye4,ye4,ㄧㄝ4
丛,co2ng,cong2,ㄘㄨㄥ2
东,do1ng,dong1,ㄉㄨㄥ1
丝,si1,si1,ㄙ1
丞,che2ng,cheng2,ㄔㄥ2
丟,diu1,diu1,ㄉㄧㄡ1
丠,qiu1,qiu1,ㄑㄧㄡ1
両,lia4ng,liang4,ㄌㄧㄤ4
丢,diu1,diu1,ㄉㄧㄡ1
丣,yo3u,you3,ㄧㄡ3

台湾式の発音練習をしている人なら読めると思うけど、左から漢字、ピンイン(声調の付く位置に声調番号)、ピンイン(変換の都合で声調番号を最後に持ってきた)、注音符号+声調番号となっています。全部で20,913文字の注音符号の表がこれで生成できたことになります。さて、これをどう使おうか。今日も宿題しないといけないので、この辺で切り上げにします。まだ置換の過程でバグが混入しているかも知れない。

余談

Googleのクロールの早さは驚くほどで、つい先ほど投稿したエントリがもうGoogleに拾われています。で「オナニート」で検索するとトップが

超意欲的にぃと
一,yi1,yi1,ㄚ1 丁,di1ng,ding1,ㄉㄧㄥ1 丂,yu2,yu2,yㄨ2 七,qi1,qi1,ㄑㄧ1 丄,sha4ng ,shang4,ㄕㄤ4 丅,xia4,xia4,ㄒㄧㄚ4 万,wa4n,wan4,ㄨㄢ4 丈,zha4ng,zhang4,ㄓㄤ4 三, sa1n,san1,ㄙㄢ1 上,sha4ng,shang4,ㄕㄤ4 下,xia4,xia4,ㄒㄧㄚ4 …
ニート – ばいお – ばいお巡礼の旅(3) 仙台編 – 就職活動
www.onaneet.org/blog/ – キャッシュ – 類似ページ

知らない人が見たら文字化けでしかないよね、これ。

本題はさておき

紹介していただいた記事は入れ子構造になっているように思います。まず「東大までの人」と「東大からの人」に分けていて、そういう話が続くのかなと思うといったん海外の話に移ります。他に雑多な理系は使い捨てみたいな話もあります。で「東大までの人」と「東大からの人」に戻って締めくくり。

確かに東大は青天井に能力の高い人がいます。記事の例だと数学オリンピックの全問正解の人なんかは余裕合格だったと思うし、一方で0.1点低かったら不合格だった滑り込みの人もいるでしょう。入試なんて受かっちまえばどうでもいいんですけど、東大は日本屈指の大学であるために、もし東大よりよい大学があったらそっちに行っているはずの人と、東大止まりの人が混在している不思議な空間を作り出します。

周りに優れた人がたくさんいるのは明らかに恵まれた環境であるので、うまいこと優秀な人の爪の垢でも煎じて飲ませていただければいいかな。あんまり東大負け組みたいにネガティブになると多分いいことないです。どっかのブログにあったけど、妬みの感情は動物にとって非常に重要な物だけど、社会がここまで大きくなってしまうと役に立たなくなります。社会の変化の方が遺伝子にある優秀な人を妬む気持ちが変化するより速いのかも知れません。

さて

日本はこの先も科学技術で生きていく覚悟はあるのか

もう中国には負けている

海外ニート氏も言及していますが、日本の閉塞感というか人の足を引っ張るのが大好きというか、妬み、嫉み、ネガティブな感情は国外に出るとあまり感じなくなります。人間の社会だからまったくないわけではないんだろうけど、日本ではあまりにドロドロした感情の密度が高いので、他の国に行くとさっきまで土砂降りだったのに突然青空が見えたような感覚に襲われます。

日本でいま何が一番嫌かというと、足の引っ張り合いです。2chとかで相手を叩いたりそういうことに人生の貴重な時間を使っている人がたくさんいて、あの人たちははたして自己研鑽を積んだりしているのだろうかと気になります(上しか見ていない人はそんなことしないと思うけど)。妬みの感情が渦巻いているから何かをやったとしてもやっかまれる。

それに対して海外なら優秀ならちゃんと評価もしてくれますし。日本のように新卒でこけたらゴミみたいな感じはあまりありません。能力のある人は大切にされます。

海外と言ってもひどいところも多いですけど、わざわざ移住するのならよいところを選ぶでしょう。

「事業仕分けでスパコンが問題になりましたが、どれだけ低次元の議論をしているんだと、頭がクラクラしました。スパコンを押さえれば、CPU、メモリ、LSIなど、多くの産業への波及効果が生まれる。だから、各国がしのぎを削って競争しているんです。

 日本がこうしている間に、中国や韓国、台湾は、もう日本以上に力をつけてきています。たとえばGPUコンピューティングという次世代の技術で、最速のものを作ったのはなんと中国です」

 世界規模で死ぬか生きるかという戦いをしている中で、「日本には国として、科学と技術でどんな戦略を採るかというビジョンすらない。このままでは本当に後進国になってしまいかねない」と危惧していた。

 東大理系の学生の中にも、国家戦略が欠如した日本行政への違和感や、中国、韓国の追い上げを心配している学生がいた。たとえ給料が少なくてもモノづくりを支えたいと、堂々と語る学生もいた。比較的楽な学科にいるため、勉強が不足していると危機感を持っている学生もいた。取材に答える姿勢も含め、きわめてまっとうな学生ばかりだった。

 東大に入れば安泰(あんたい)、などという時代はとうの昔に終わっている。「東大までの人」ではなく「東大からの人」が溢れるよう期待したいし、それを生み出す戦略がますます必要になってきているのは間違いないだろう。

さて「東大からの人」はどうすればいいのか、あるいは「東大からの人」になりたいならどうすればいいのかです。一つの解は日本に引きこもらないことはあると思います。この記事からも感じますし、自分自身もそう思っています。

今の政権は知的弱者が知的強者に復習する構図で成り立っている節がありますので、他の国が技術的に追い上げてきても対抗しようという気概を感じません。あの野蛮な事業仕分けを賞賛する人がたくさんいるというのには驚きました。これから先も日本が科学技術立国でやっていく覚悟がない感じです。他の案があるならいいのですが。例えば金融立国にするとか(日本人の金融リテラシーは低いので絶対に無理だと思いますが)観光立国にするとか(これはあるかも、でも現在の巨大なGDPを支えるのは無理だろうな)、あるいは文化・コンテンツでやっていくとか(現実的な線)代替策があるならいいんだけど、多分ないでしょう。

国家全体が技術志向でなくなったのに、技術系を選んでしまった人はどうすればいいのか、そこのところは現在の最大の関心事です。アメリカとかシンガポールあたりで就職したいものです

気持ちが腐ってしまうとどうしようもない

 経済学部の2年生(20歳)も、東大生というイメージからの脱却を図るべく、麻雀に呆(ほう)けているという。

「入学当初は積極的に授業に出ていましたが、ある日、世界金融危機の構造について他大学の友達に説明していたら『難しい話をするな』と言われたんです。あげくに『お前は勉強ばっかりして、偉くなって、庶民感覚をなくしていくんだろう』と憐(あわ)れむような目で見られた。その時、勉強している東大生は嫌われると気づいて、『それなら、勉強はやめよう』と。いまは週に一度も授業に出ないで、毎日、友達と麻雀ばかりしています」

色々な譬喩が使えるでしょうが我々はタイタニック号(縁起でもないな)のような一般的には絶対に安全であろうと思われている立派で巨大な船にみんなで乗っている構図です。ところが目の前にどでかい氷山がある。激突したらタイタニック号でも沈んでしまう。そのことを告げても「難しい話をするな」とか「お前は勉強ばっかりして、偉くなって、庶民感覚をなくしていくんだろう」と憐れんだ目で見られたわけです。もう自分だけ逃げちゃえばいいのに。わかっている人は被害が少なく済み、わからなかった人は気づいたら会社が倒産して年金も保証されないとかでひどい目に遭うだけのことです。

目の前の氷山に関心のない人に何か言われたくらいで気持ちを腐らせてしまうのはもったいない。

「僕は、“負け組”東大生の代名詞です」

 こう言うのは、東大文学部を卒業後、現在はテレフォンアポイントメントなどのアルバイトでフリーター生活を送るT氏(28歳)だ。現在の月収は20万円弱。外資や商社に行った友人から「飲もう」と誘われても、「忙しい」と嘯(うそぶ)いて断っている。バイトのない日は、カネも行く当てもないから、家にひきこもるという。

身近にもこういう人が何人もいるのでわかるけど、こういう気持ちでいるのは本人にとっても損なことです。せっかく基礎能力が高いのに日本のつまんねー新卒主義だか、やり直し利かない主義だか《醜活》だかで心が折れてしまっているわけだけど、これは気持ちの持ちようで結構変わる。世の中は面白いことに満ちていて、正社員より不安定だけど自由の効く身分をポジティブに行かしたらどうだろうかって思うのです。アルバイトならキリのいいところですっぱり辞めてしまうことも可能です。

1割しかいない「東大から」になる

あまり大学名は気にしないのがよいと思います。東大のいいところというと、卒業して箔が付くことではなく、周りに優秀な人がたくさんいること、あと理科系なら研究資金が潤沢にあることもあるかな。とにかく、その環境にいることが恵まれていると前向きに考えれば、現在持っているものを土台に次の一歩を踏み出せるでしょう。

おいらにはまだ足りない物がたくさんあります。ビジネスをやるには経営とか営業のできる人が足りないし、自分一人では困難なことです。でも、それでも色々と積極的に作ったり提案したりしていると、面白いやつがいると興味を持ってくれることがあります。そうした人脈がたぶん大学とか恵まれた環境で一番大事な物ではないかなと思います。留学先でもそうでした。いい友人に恵まれたことは単に英語の練習ができたことよりずっと大事なことです。てなわけで、宙ぶらりんな身分ではあるけど、日本社会に渦巻くネガティブな感情とか、負け組会みたいな自己嫌悪に陥って気持ちを腐らせることなく色々なことに手を出して人脈を作っていきたいなってのが今の抱負です。

ランキング

東大生ブログランキング登録しました。ぽちしていただけると喜びます。

東大生ブログランキング

漢字を注音符号にするWebサービス(2)

Posted by onaneetX.Q on 2月 4 2010 one Commented

まずはコメントから。

POSTED BY 匿名 ON 2010年2月4日
とても面白そうですね。
DUOのような例文集の形も良いと思います。
労力がすごそうですが^^;
大学に進学したら中国語を学びたいと思っていたんで
完成の暁にはぜひ使わせていただきます。

ずいぶん幅広い層の方に読んで貰えているのですね。シーボの日記は受験生も読んでいるらしいけど。

はい、例文を作っていこうとするとかなり大変だと思います。それができたら、ちょっとした自慢になりそうですね。最初はフリーのWebサービスあたりから始めて、ちょっとした事業化できたらいいなと思っています。

メモがわり

まずUnicodeのどのあたりに中国語の文字があるかをここで調べる。

Chinese (All)なら簡単でいいのだけど、Traditional Chinese – Level 1だとずいぶん複雑になる。Traditional Chinese – Level 1というのは、Adobeのサイトによると基本的な5,000文字のセットらしい。これを手で処理すると面倒臭いので正規表現を使う。

.*?U\+([0-9A-F]{4,4})-U\+([0-9A-F]{4,4}).*?

for( int i = 0x$1; i <= 0x$2; i++ )

に置き換えればOK。これでC言語のfor文の形になったので、あとはUnicodeからUTF-8に変換するプログラムを書く。仕様を調べると

「こ」の例

「こ」の Unicode はコード表より 3053。
16 bit であらわすと 0011|0000|0101|0011。(ただし 4 bit 毎に | を記入。)
16 bitを 4, 6, 6 bit に分割すると 0011|000001|010011。(ただし分割する所に | を記入。)
4, 6, 6 bit の前にそれぞれ1110, 10, 10 を挿入すると 11100011|10000001|10010011。
16 進数であらわすと E3 81 93 という 3 bit になります。
HexEdit で開いたテキストファイルの最初の 3 バイトは「こ」の字をあらわしています。

そんなに難しくないので、ささっとコードを書く。

static void PutUnicode( int code, FILE *out )
{
	/**
	 「こ」の例

	 「こ」の Unicode はコード表より 3053。
	 16 bit であらわすと 0011|0000|0101|0011。(ただし 4 bit 毎に | を記入。)
	 16 bitを 4, 6, 6 bit に分割すると 0011|000001|010011。(ただし分割する所に | を記入。)
	 4, 6, 6 bit の前にそれぞれ1110, 10, 10 を挿入すると 11100011|10000001|10010011。
	 16 進数であらわすと E3 81 93 という 3 bit になります。
	 HexEdit で開いたテキストファイルの最初の 3 バイトは「こ」の字をあらわしています。

http://www.unicode.org/charts/

	 */

	static int counter = 0;
	int a, b, c;

	c = (code & 0x3f) | 0x80;
	code >>= 6;
	b = (code & 0x3f) | 0x80;
	code >>= 6;
	a = (code & 0x0f) | 0xe0;

	fputc( a, out );
	fputc( b, out );
	fputc( c, out );

	if( counter++ > 100 )
	{
		fputc( '\n', out );
		counter = 0;
	}
}

これで中国語に使われる文字が全て得られる。

一丁丂七丄丅丆万丈三上下丌不与丏丐丑丒专且丕世丗丘丙业丛东丝丞丟丠両丢丣两严並丧丨丩个丫丬中丮丯丰丱串丳临丵丶丷丸丹为主丼丽举丿乀乁乂乃乄久乆乇么义乊之乌乍乎乏乐乑乒乓乔乕乖乗乘乙乚乛乜九乞也习乡乢乣乤乥
书乧乨乩乪乫乬乭乮乯买乱乲乳乴乵乶乷乸乹乺乻乼乽乾乿亀亁亂亃亄亅了亇予争亊事二亍于亏亐云互亓五井亖亗亘亙亚些亜亝亞亟亠亡亢亣交亥亦产亨亩亪享京亭亮亯亰亱亲亳亴亵亶亷亸亹人亻亼亽亾亿什仁仂仃仄仅仆仇仈仉今介

(略)

黢黣黤黥黦黧黨黩黪黫黬黭黮黯黰黱黲黳黴黵黶黷黸黹黺黻黼黽黾黿鼀鼁鼂鼃鼄鼅鼆鼇鼈鼉鼊鼋鼌鼍鼎鼏鼐鼑鼒鼓鼔鼕鼖鼗鼘鼙鼚鼛鼜鼝鼞鼟鼠鼡鼢鼣鼤鼥鼦鼧鼨鼩鼪鼫鼬鼭鼮鼯鼰鼱鼲鼳鼴鼵鼶鼷鼸鼹鼺鼻鼼鼽鼾鼿齀齁齂齃齄齅齆齇
齈齉齊齋齌齍齎齏齐齑齒齓齔齕齖齗齘齙齚齛齜齝齞齟齠齡齢齣齤齥齦齧齨齩齪齫齬齭齮齯齰齱齲齳齴齵齶齷齸齹齺齻齼齽齾齿龀龁龂龃龄龅龆龇龈龉龊龋龌龍龎龏龐龑龒龓龔龕龖龗龘龙龚龛龜龝龞龟龠龡龢龣龤龥龦龧龨龩龪龫龬龭
龮龯

あとはどっかで漢字とピンインの変換テーブルでも探してきて、そこから注音符号にすればいい。

宿題やらないといけないので今日はここまで。

ランキング

東大生ブログランキング登録しました。ぽちしていただけると喜びます。

東大生ブログランキング

漢字を注音符号にするWebサービス

Posted by onaneetX.Q on 2月 3 2010 one Commented

少し前のコメントですが

POSTED BY 天然 ON 2010年1月28日
単語帳は印象的には速読英単語の中国語版みたいな感じですかね。
速読英単語では、大学入試の英文における出現頻度の高い単語を載せる、
単語が使われている文章も載せることで単語の使われ方も伝える、という方針でした(そして売れている!)ので、
同様のことを中国語でやればたぶん上手くいくかと思います。
ただ、難しそうなのはコーパスの方で、
たとえば日本の新聞のコーパスなんかだと非常に高い(毎日新聞の1年分の記事で12万円)。
安くて量が多く、信頼性の高いコーパスをいかにして入手するかが、
個人で統計的な情報を利用した単語帳を作る上で重要なんじゃないかと思うのですが、
何かアイデアはないでしょうか?
(「信頼性」を犠牲にしてもよければwikipediaの文章を使う、という方法もあります。
wikipediaの文章なら無料で大量に手に入る(少なくとも日本語の記事に関しては
手に入れたことがあって、テキストデータだけで1Gほどのデータ量になります)
のですが、「文章の品質」や「言葉の傾向」(例えば、google IMEではネットの情報を
用いているので、くだけた言葉を優先してしまう、とか)に関しては、批判を覚悟しなくては
ならないかと思います。)
問題点ばかり並べてしまってますが、面白いアイデアだと思うので、
「挑戦してみようと思うけれどメンバーが足りない!」
というときはお声をかけてください。

これは早速お返事をしました。Wikipediaをコーパスに使うというのは慧眼だと思います。ライセンスも確かOKだったはず。日本語の場合は専門家の文章か、ゴシップ誌の転載かなどを判別できますが中国語だとできないとか問題はあるけど、取りかかりはこれでよいでしょう。そのうち単語帳を作りたい。

前にも書いた通り中国語はこれから需要が高まるのに教材がまだ英語ほどには洗練されていないので、英語の教材のアイディアを拝借して作ればよいものになる可能性を秘めています。アイディアは結構あるのに時間とか能力とかお金とか、あとは経営のセンス、営業力とかが足りないわけです。営業はネットでやれば非コミュでも結構いけるかも知れないので、今の最大の山は能力と時間。来年度中にはやりたいけど、できるかな。

中国語の文章から注音符号に変換するWebサービス

さて、中国語の文章をパソコンとか電子辞書で打とうとするとピンインか注音符号を使うことが一般的です。しかし、逆に漢字がわかっていて音がわからない、ピンインがわからない、注音符号がわからないときはどうしたらいいでしょうか?

今のところは電子辞書の手書き機能を使って文字を探していますが、これはえらく非効率です。もっといい方法はないかな。

文章からピンインのサービスはあります。ピンインがわかれば注音符号への変換もできるのだけど、ちょっと面倒臭い。できれば直接変換したい。しかし、そういうサービスはないようです。あったら教えて下さい。

というわけで、そういうのを作ったら自分の勉強にもいいし、需要はあるかなあと思っています。漢字も1,000文字くらいからはじめても使用頻度の高い順に作っていけばまあまあ実用的なものができそうです。さらに、簡体字と繁体字の変換も入れたものにしたらもう少し便利になりそう。簡体字を注音符号で入力することはまずいないのだけどね。

あと、電子辞書を使っていて気づいたのだけど、よく使う音(1つの音に対して漢字がたくさんある音)と、1つの音に対して漢字が2つくらいしかない音があります。一つもない音もあります。どういうことかというと、中国語の発音は分布にムラがあり、よく使われる音は四声を含めてもそんなにないということです。

日本でも駆け出しの声優がネットで仕事をしていることがあります。同人ゲームに声をあてたいときに、ネット上でそういう声優さんにアフレコしてもらってお金を払えば、さほど高くないコストでゲームに声を付けられるというわけです。イラストレータなんかもWeb上で受注している人がいますね。それと同じです。

同じようなものが中国語圏にもあるのなら、一度注音符号にしてしまえば、その注音符号に対応する声を吹き込んで貰うことでもう少しよいものになりそう。ライセンス的も綺麗だしね。50の発音の4+1声で250くらい吹き込んで貰えば音の繋がりはバラバラでも結構見栄え(聴き栄え)がするものになるかな。註:中国語の発音は400くらいあります。50というのは注音符号の子音+母音+特殊な母音がだいたい50だということで、これだけでは完全な発音にはなりません。b + aoを続けて言えばbaoになりますが不自然さは残るでしょう。

ランキング

東大生ブログランキング登録しました。ぽちしていただけると喜びます。

東大生ブログランキング