中国語の発音

あまりに自分の発音が通じないことが多いので困っていたんですが、今日初めて、ようやく理論的な発音を習うことができて目からウロコ!!発音だけは独学はやめたほうがいいな。いろんな?が解けてスッキリしました。

で、今日教えてもらったのは、子音の区別。これは舌の形と力の入れ具合でキレイに分類できる。

  力強<無気音> 力中<有気音> 力弱
舌の根をのどにつける<舌根音> g k h
舌面を上あごにつける<舌面音> j q x
舌先を上あごにつける<そり舌音> zh ch sh
舌先を歯の間につける<舌歯音> z c s

舌をつけたとき、

  • 力が強い   → 空気が通らないので無気音
  • 力が中くらい → 空気が少し通るので有気音
  • 力が弱い   → ゆるゆるなので命名なし

というわけ。今日はここまで。

あと、発音について感じること。ここ数年間まともに英語の勉強をしてなかったので、最近かなり英単語の意味を忘れてきてしまっている。留学生仲間に英語で話しかけられて、しどろもどろになるわけですが、でも不思議とアクセントとか発音は忘れていない。むしろ中学の英語教師の独特の口調が鮮明によみがえってくるくらい覚えている。不思議なものだ。いわゆる、陳述的記憶と手続き記憶の違いなんだろう。

デブサミ2007出張Shibuyaイベント

デブサミ2007出張Shibuyaイベント告知 | TAKESAKO @ Yet another Cybozu Labs

[開発テクノロジー]【14-B-7】「出張Shibuyaイベント」
Shibuya.pm presents "Shibuya.js x Shibuya.pl mashup night" 〜
日時:2007年 2/14(水) 17:40〜19:10
会場:目黒雅叙園(東京・目黒)夢扇(B会場)
定員:300人(無料)

申し込んだ。帰国予定なので。開発系のイベントに参加するのはかなり久しぶりなのでわくわく。

Perlでベイジアンフィルタ

Perlでシンプルなベイジアンフィルタを作ってみました。ベイジアンフィルタ を倣って、ベイズ確率で歌詞を見分けるフィルタです。

アルゴリズムベイジアンフィルタについてPaul Graham版そのまんまです。トークンはスペースで区切るのみですので日本語の歌詞では使えません。英単語のstem化もしていません。(レポート用に作ったのでちょっと手抜きですいません。)

実験してみると、一応動きました。学習させたのは、カーペンターズの歌詞とメタリカの歌詞w。曲数がそこそこあって、個性の離れているアーティスト2組を適当に選んだだけ。メタリカをスパムとして、学習には100曲ずつ使い、学習に使わなかった曲で実験しました。結果は、

誤認識が多いですが、曲によって歌詞の内容もまちまちなのでそんなものなのかな。

use strict;
use warnings;
use utf8;
use Data::Dumper;

binmode STDOUT, ":encoding(shiftjis)";

my ($badfile, $goodfile) = ("lyrics/bad.dat", "lyrics/good.dat"); # shiftjisで入力
my ($nbad, $ngood, %b, %g);

# 学習
&readfile($badfile, \$nbad, \%b);
&readfile($goodfile, \$ngood, \%g);

# 判別対象ファイルの読み込み <STDIN>
my $count = 0;
print "baysian[$count]>";

while (my $line = <STDIN>) {
    chomp($line);
    $line =~ s/[\.,]//g; # . ,を削除
    last if $line eq ""; 
    my $result = &comp($line);
    print "score: $result->{score}\n\n";
    my @a = @{$result->{pw}};
    for (my $i=0; $i<=$#a; $i++) {
        print "pw: $a[$i]->{p}\t, w: $a[$i]->{w}\n";
        last if $i>=15;
    }
    print "baysian[".++$count."]>";
}

exit(0);

sub comp {
    # 確率計算
    # Paul Graham 方式
    my $line = shift;
    chomp($line);
    my @words = split(/ /, $line);
    my @pw; # 確率
    foreach my $w (sort @words) {
        next if ($#pw>-1 && $w eq $pw[-1]->{w}); # 重複を省く
        my $p;
        if ($b{$w} || $g{$w}) { 
            unless ($b{$w}) { $b{$w} = 0; }
            unless ($g{$w}) { $g{$w} = 0; }
            $p = ( $b{$w}/$nbad ) / ( ( 2 * $g{$w}/$ngood ) + ( $b{$w}/$nbad ) );
            if ($p < 0.01) { $p=0.01; }
            elsif ($p > 0.99) { $p=0.99; }
        } else {
            $p = 0.4; # no data
        }
        push (@pw, { 'w' => $w, 'p' => $p});
    }

    # 0.5 から離れたもの15個を選ぶ
    @pw = sort { abs(0.5 - $b->{'p'}) <=> abs(0.5 - $a->{'p'}) } @pw;
    # print Dumper(@pw);

    # 複合確率
    my ($count, $multi1, $multi2) = (0, 1, 1);
    foreach my $w(@pw) {
        last if (++$count > 15);
        $multi1 *= $w->{p};
        $multi2 *= (1-$w->{p});
    }
    my $score = $multi1 / ($multi1 + $multi2);

    my $result = {
        score => $score,
        pw => \@pw,
    };
    return $result;
}

sub readfile {
    my ($file, $count, $w) = @_;
    open my $fh, "<:encoding(shiftjis)", $file or die "Can't open file $file: $!";
    while (my $line = <$fh>) {
        # 1行1ドキュメント
        chomp($line);
        $line =~ s/[\.,]//g; # . ,を削除
        my @words = split(/ /, $line); # スペース区切りでトークン化
        my %wc;
        foreach (@words) {
            $wc{$_} = 1;
        }
        foreach (sort keys %wc) {
            $$w{$_} += 1;
        }
        $$count++;
    }
    if ($$count <= 0) { die "invalid file $file"; }
    close($fh);
}

ちなみに

こんなベイズフィルタ回避のスパムの手口もあるそうだ。ワードサラダ(Word Salad)と言うらしい。

地球マップ2007 “格差”と“競争”にどう立ち向かうか

我が家では日本のBSが見れるのですが、今日は久しぶりにNHKの番組を見ました。ゲスト陣から見てもかなり力の入った番組と思われます。「地球マップ2007 “格差”と“競争”にどう立ち向かうか」(再放送)
地球マップ2007 “格差”と“競争”にどう立ち向かうか
ゲスト:姜 尚中, 伊藤 洋一, 江川 紹子, 榊原 英資

内容は、ゲストが実際にグローバリゼーションの加速化を取材して、討論するという内容。文化人による国際的格差・国内格差への危惧と、ミスター円榊原の「やらなきゃやられる世界なんだ!」という危機感のちぐはぐぶりにびっくりしたので、以下感想を書きます。

僕は日本国内の格差をうんぬんしている程の余裕は日本にはないと思う。ましてやアフリカの経済状態に胸を痛めている場合ではない。なんといっても日本は石油も食べ物も海外から買わなければいけない立場だ。

日本の石油の備蓄は160日程度、天然ガスも数ヶ月しかない。

中国は今後20年で日本の経済規模を越えるのは確実である。我々のすぐそばに、ドカンと急に日本と同じだけの規模の経済が出現するということだ。当然日本全体と同じくらいの石油(中国のエネルギー効率は日本の1/4と言われているので、もしかしたら4倍かも)を必要とする。だから、中国は今なりふり構わず資源確保を進めている。

そうなっても、日本はちゃんと今まで通り石油買っていけるんだろうか。ちゃんと売ってくれる油田を確保して、買うだけのお金を準備できるんだろうか。アメリカ・中国とは違って軍隊は使えないし。そういうことは誰が考えているんだろう??

格差とかニートとかで悩む前に、ちゃんと国益をどうやって守るかを悩むべきなんじゃないだろうか。

もちろん社会学者は格差とかニートなどの社会現象を悩むのが職業だから、姜さんが危惧している内容は当然だ。でも彼の意見には、アフリカと格差が広がっているとして、それを支援することがどう日本の国益につながるのか。そういう視点がまったくなかった気がした。どうしても「こんな世界だったらいいのに」という学者の理想論にしか聞こえなかった。

ここまで書いて、自分も石油の心配をする前に明日のテストの心配をすべき身だったのを思い出しました。では失礼します。