Lingua::EN::Conjugate
主語、動詞、時制を入力すると動詞の変化形を教えてくれる。goの過去形はなんだっけ、と思ったら
$string = conjugate( verb => 'go', tense => 'past',とすると
pronoun => 'he' );
he wentと出力される。
Lingua::EN::Fathom
文章の「読みやすさ」を判定する。会場ではGPLの本文(gpl.txt)を解析させ、「読みにくい」という判定が出たところで聴衆が受けた。一文一文が長く、難解な用語が多いかららしい。
Lingua::EN::FindNumber
英語の文章で書かれた数の表現を数字に変換。
$number = numify("one hundred and eighty five"); # 185
$number = numify("one dozen of oranges"); # 12 orangesLingua::EN::Numbers
逆に数字を英文に直すものはLingua::EN::Numbersなど複数ある。
$string = num2en(12); # twelve
$string = num2en_ordinal(12); # twelfth
Lingua::EN::Inflect
inflectはなじみのない単語だが、単語の複数形を表示するモジュールである。
$plural = PL("apple"); # apples
$plural = PL("church"); # churchesおお。$plural = PL("ox"); # oxenこれは中学生の頃やらされたがアメリカ生活でoxenって使ったことがないぞ。print PL("I"); # weすばらしい。このモジュールに関して、
print "s" if $_ > 1;というコードは書かないように、ということだった。
Lingua::EN::NameCase
英語では人の姓を大文字で始めるが、たまに途中に大文字が出てきたりする。たとえばマクドナルド社を創ったマクドナルドさんはMcDonaldであってMcdonaldではない。
print nc("mcdonald"); # McDonald本を出しているオライリーはO'ReillyであってO'reillyではないしo'reillyでもない。print nc("o'reilly"); # O'ReillyLingua::EN::Sentence
文と文の区切りは日本語だと「。」を拾っていけばいいのだが、英語だとそうはいかない。Mr.とかMt.とかU.S.A.などがあるからだ。このモジュールはそのあたりを解決してくれる。
$sentences = "Hello, Mr. Brown. How are you?"Text::Sentenceはあまりかしこくないので使わないように。
$first = get_sentences($sentences)->[0]; # Hello, Mr. Brown.
Lingua::Conjunction
日本語では3個あるものを「AとBとC」と言えるが、英語で「A and B and C」とはあまり言わない。
print conjunction qw(A B C); # A, B, and C
Lingua::Identify
文章がどの言語で書かれているかを判定する。36か国語対応だがほとんどはヨーロッパの言葉だ。日本語には対応していないが、ちょっと遊んでみた。
%result = langof('akemashite omedetou');判定結果。30%の確率でエストニア語、19%の確率でマレー語。%result = langof('kuuki ga yomenai');30%の確率でソマリ語、16%の確率でスワヒリ語。そうなのか。その他WordNetの解説もあったがあまり手軽に使えなさそうなので省略。
この人はゆっくり話すのでメモがたっぷりとれたのだが、資料が公開されたためメモの価値がやや減。
0 コメント:
コメントを投稿