TOEICで900点取りました

事前の宣言通り、何とか900点超えました。

詳細な結果が出たら、勉強法とか使用した教材についてまとめる予定です。

f:id:tencube:20170815224529j:plain

 

これでまたアラビア語の勉強に戻ります!

『働きたくないイタチと言葉がわかるロボット』

 

働きたくないイタチと言葉がわかるロボット  人工知能から考える「人と言葉」

働きたくないイタチと言葉がわかるロボット 人工知能から考える「人と言葉」

 

 

ここ数年、ディープラーニングなどの機械学習手法の進歩によって、自動翻訳や自然言語処理分野が目覚ましい速度で進歩しています。iPhoneのSiriなど、ある程度実用的なレベルで言語を理解するアプリケーションも登場し始めています。

報道を見ていると、「もうすぐにでも言語を理解するAIができる」、「これまで解けなかった困難な問題を解決する目処が付いた」という楽観論もあり、一方で「AIには永遠に言語を理解することはできない」という主張もされており、一体何が正しいのかはすぐには分かりません。

実はこれは、「言語を理解する」ためにさまざまな機能が必要であることが原因です。

 

この本の著者は、言語学自然言語処理を専門とする研究者です。主人公である「イタチ」たちが言葉を理解するロボットを作ろうとさまざまな方法を試行錯誤するという物語を通して、一体「言葉を理解する」とはどういう意味があるのかを描き出しています。

第1 章 言葉が聞き取れること
第2 章 おしゃべりができること
第3 章 質問に正しく答えること
第4 章 言葉と外の世界を関係づけられること
第5 章 文と文との論理的な関係が分かること(その一)
第6 章 文と文との論理的な関係が分かること(その二)
第7 章 単語の意味についての知識を持っていること
第8 章 話し手の意図を推測すること

ここで引用したのは本書の各章のタイトルですが、「言葉を理解する」ためには、これだけのことが (最低限) 必要であることが分かります。

 

特にこの本を否定するつもりは無いのですが、実際のところ、自然言語処理言語学に少し興味があったり、大学で単位を取った人であれば、本書に書かれていることは既に知っていることも多いと思います。しかし、本書の優れたポイントは、イタチたちの試行錯誤を通して、現状の自然言語処理では不可能なことにフォーカスが当てられている点です。

たとえば、4章ではディープラーニングを使って、言葉と画像が対応づけられるようになったことが取り上げられています。けれども、ディープラーニングは、「犬」「猫」「リンゴ」のように具体的な画像で表せる言葉を扱うことは得意ですが、「愛」「権利」「無」のような抽象的な語、「恋人」「親」「社長」、「商品」「ゴミ」といった人や物の役割を表す言葉、動作や論理を表す語については、(まだ) うまく扱えていないようです。(なんとなくこの辺り、中世哲学における普遍論争を連想します。) ディープラーニングが画像や動画を基礎とする限りは、この問題の本質的な解決は難しそうです。

それ以外にも、文と文の間の論理的な関係を推論すること、常識的な知識を持つこと、それらを組み合わせて使うことが非常に難しいことが、コミカルに描写されています。

始めに意図ありき

なぜ、AIは将棋や囲碁で人間を負かすことができるのに、言語を理解するという簡単そうなことができないのでしょうか。ややネタバレになりますが、私の関心事でもありますので本書の結論を引用します。

…私たちが「他人の知識や思考や感情の状態を推測する能力を持っていること」です。つまり他人も自分と同じように心を持っていることを認識し、自分の立場からだけでなく、他人の立場からも考えることができるということです。これは言うまでもなく、機械にとって難しい「意図の理解」が、私たちにある程度こなせる理由の大きな部分を占めています。

おそらく、人間が言葉を学び、話し始めるよりも先に、エピソード記憶や手続き記憶を備えていたのでしょうし、食料を探し、外敵から逃れ、群れの中で他者と協力し、異性を探すという意図を備えていたはずです。加えて、他人がそのような意図を持っていることを理解して推測することができていたはずです。

 

少し前、私がトルコを旅行した際に、印象深く覚えていることがあります。私がある田舎町で道に迷い、地元の人に道を聞いたのですが、私のトルコ語力では道を聞くことはできても相手が言っていることが分かりませんでした。そこで私が「lütfen(お願いします)」とだけ言って持っていたノートとペンを渡したところ、そのトルコ人が地図を描いて渡してくれたのです。更に私が地図を見ても道が分からず躊躇していると、彼が手を引っぱって目的地まで連れていってくれました。(トルコ人は概してめっちゃ親切なのだ)

ここで私が発した言葉は「お願いします」という言葉だけであり、言葉の意味からだけでは私が何を欲しているのかは理解できません。けれども、「ノートとペンを渡す」という行為によって、「言葉が聞きとれないので地図を描いてほしい」という意図を完全に伝えることができました。

 

このエピソードから分かることは、言語の意味は言語の中だけに閉じていない、ということです。言語の意味理解は、テキストを見ているだけでは不可能であり、人間の持つ意図の推測をするモデルが存在しなければ、言語の本質的な意味理解はできないと考えています。それには、表面的な機械学習手法の高度化だけでは不十分で、より深い人間理解が必要になるはずです。

おわりに

本書の小説部分は動物たちのコミカルな小説になっていてサクっと読めますし、随所に仕込まれた脱力感を誘う小ネタ的なキャラクターも面白く(カメレオン村での医者である「青緑赤ひげ先生」やらイタチ村のローカルタレント「ヨカバッテン板橋」などなど)、版画風の挿絵も可愛らしいです。とは言え簡単で軽いだけの小説ではなく、研究者らしく註と参考文献も充実しており、近年の自然言語処理研究へのアクセスという点でも優れています。

自然言語処理に興味のある人はもちろん、自然言語処理の知識は無いけど言語に関わる人、語学教師や国語の先生などに読んでほしいと思います。

 

『ちいさい言語学者の冒険』

 

ちいさい言語学者の冒険――子どもに学ぶことばの秘密 (岩波科学ライブラリー)

ちいさい言語学者の冒険――子どもに学ぶことばの秘密 (岩波科学ライブラリー)

 

 

この本は、言語学者である著者が、自身の息子がことばを身につけていく過程で表われた言い間違いや文法ミスをもとに、言語獲得の過程と理論を解説する本です。

 私たちは、母語である日本語を普通に使いこなしていますが、改めて言語を考えてみると、非常に複雑な構造を持っていることが分かります。大人になってから今自分が話している言語を考えてみても、どうやって言語を学び、獲得したのかはよく思い出せません。しかし、今まさに言語を学んでいる子供の間違いを観察することで、言語獲得の過程、その一部を観察することができます。

 

著者は、子供の言語の間違いが単なるデタラメではなく、首尾一貫して規則的に間違う傾向にあるということを示しています。

たとえば、「死ぬ」という動詞の活用。 多くの子供が、「死む」「死まない」「死めば」と間違った活用を使ってしまうのだそうです。これは、子供が「虫さん死んじゃった」「死んでないよ」などのやりとりを通して「死んだ」という活用形を学び、「飲んだ」→「飲む」、「読んだ」→「読む」などから類推して「死んだ」→「死む」という動詞の原型のルールを類推しているのではないか、と著者は推測しています。

 

ちなみに、動詞の活用に関しては、私の息子による印象深い言い間違いがあります。

 

「パジャマ着てね」(風呂に入った後、フリチンで走り回る息子に対して)

「イヤだ、着らない」(本人は「着ない」のつもり)

 

おそらく、「行く-行ない」、「知る-知ない」の5段活用から類推して、「着ない」という活用形を作り出してしまったのだろう、と考え、言語に対するルールを見出す子供の能力に感心した記憶があります。

 

また、個人的に非常に面白いと感じたのが、日本語の拍(モーラ)の数え方に関する話です。俳句の575のように、日本語の音の長さを数えるとき、大人の日本語話者であれば全員が一致する数え方があります。たとえば、「ん」は日本語では1拍です。しかし、「ん」を独立した単位として扱う言語は、実は少数派なのだそうです。ところが、文字を覚えたばかりの子供が「うんち」の「う」の一文字だけを「うん」と読み、「ん」が重複していると怒るエピソードから、どうやら文字を覚える前の子供は「拍」ではなく「音節」で音の長さを数えているのではないか、という説が提示されています。

 

本書が扱う言語学の分野は、音韻や文法以外にも、言葉の意味や語用論(ある表現を使う意図)にまで広い範囲に及んでいます。内容的には入門手前の概説のレベルで、既知の内容も多かったですが、堅苦しい研究書ではなく、随所に挟まれる子供の言い間違いがいちいち面白く、思わず笑いながら読めてしまいます。

現在言語を習得中の幼児を育てている人、日本語教育に関わる人、twitterで575ツイートがなぜか気になってしまう人などにオススメしたいです。

TOEICで900点取ります

会社からの指示で、TOEICを受けることになりました。3年半くらい前に受験した時にはギリギリで900点に届かない程度だったので、今回は 900点取ることを宣言します。

英語に関するプレッシャー

英語以外の語学に関するブログなどを書いていると、「英語なんかもう完璧だから他の言語を勉強しているんでしょう。」と言われることもありますが、全くそんなことはありません

自慢でも無いし謙遜もしませんが、たぶん、自分は留学や仕事で英語を使うわけではない日本人としては必要十分な英語レベルに達しているだろうと思うのですが、自分の中では未だに英語に対する妙なプレッシャーがあります。

世間の英語万能主義国際化イコール英語化という視野狭窄に反感を感じつつも、完全に無視することもできない。自分と英語の関係はそんな感じです。なんとなく、TOEIC 900点が取れないと微妙な英語コンプレックスが残り続けるような感覚があるので、ちゃんと900点を取っておきたいと思います。

購入した教材

公式問題集をベースにして、ネット上で評判の良かった「新形式精選模試」を使おうと思います。

TOEICテスト公式問題集 新形式問題対応編

TOEICテスト公式問題集 新形式問題対応編

 

 

公式TOEIC Listening & Reading 問題集2

公式TOEIC Listening & Reading 問題集2

 

 

 

TOEIC(R)テスト 新形式精選模試 リーディング

TOEIC(R)テスト 新形式精選模試 リーディング

 

 

TOEIC(R)テスト 新形式精選模試 リスニング(CD-ROM1枚つき)

TOEIC(R)テスト 新形式精選模試 リスニング(CD-ROM1枚つき)

 

 

 

 

外国語の発音を学ぶならブログ記事なんか読んでないで「音声学」を学ぼう

前回のエントリが少し評判が良かったので、補足の記事を書きます。

インターネット上でブログなどを検索すると、外国語 (特に英語) の発音を解説した記事を見つけることができます。日本人が苦手とする「L」と「R」、英語で「ア」で表わされる音の違い「hat」、「hut」、「hot」なんかは有名ですね。

ただし、インターネット上のブログ記事はどうしても断片的で非体系的なものになりがちなので、真剣に発音を学ぶつもりならば、1冊書籍を買って体系的に学んだほうが良いと考えています。外国語の発音に関しては、言語学の中の一分野である「音声学」で多くの研究が蓄積されていますので。

というわけで、私が読んで参考になった音声学の書籍を3冊紹介します。

  • 脱・日本語なまり
  • ファンダメンタル音声学 
  • 実践音声学入門 
続きを読む

あまり知られていないけど日本人が注意するべき外国語の発音

日本語話者が外国語を学ぶ際には、日本語の発音や表記法に由来する発音上のクセを意識的に修正する必要があります。「see [s]」と「she [ʃ]」や「r」と「l」の区別、日本語に存在しない英語の「v」、「th [θ], [ð]」などは有名で、よく取り上げられることがあるので知っている人も多いでしょうが、ここではあまり注目されないけれど注意するべき外国語の発音をまとめました。

f:id:tencube:20170610043136j:plain

画像はWikipediaから切り取り

 

  • 母音「ウ」
  • 二重母音と長母音
  • 母音の無声化
  • ハ行子音
  • まとめ
続きを読む

アラビア語のルールベース形態素解析ライブラリ

以前、iPhoneアラビア語辞書を作成しようとした時に、アラビア語形態素解析ライブラリを調査したのでその時の知見を簡単にまとめておきます。
 
Xerox社の技術者であるTim Buckwalter氏が公開している Arabic Morphological Analyzer (以下AMA) です。AraMorph.pl というファイルが本体で、2種6件の辞書ファイルを読み込んで動作します。ただし、入力ファイルエンコーディングcp1256でなければならないという変な仕様です。Jave, JavaScript他、スクリプト言語にもライブラリが移植されているので、実用的には別の言語版を使うのが良いと思います。(単純なアルゴリズムなので辞書データのフォーマットさえ分かれば移植は容易です)
 
AMAで使用されるファイルは2種類あり、1種が語彙辞書ファイル、もう1種類が接頭辞、語幹、接尾辞の正しい組み合わせを表現するテーブルです。

語彙辞書ファイル

まず、語彙辞書ファイルは “dictprefix.txt", “dictstem.txt", “dictsuffix.txt” の3つが存在し、それぞれが接頭辞、語幹、接尾辞を表現しています。なお、通常のアラビア語辞書では語幹(stem)ではなく語根(root)で語彙を分類しますが、このライブラリの辞書では語幹、つまり接中辞 (transfix) を含み、屈折や派生形で変化した形によって語彙を分類しています。
 
語彙辞書ファイルのそれぞれの行は、「見出し」、「母音ありのアラビア語綴り」、「文法的分類」、「語の意味」がタブ区切りで表わされています。(; で始まる行はコメント行)たとえば、ktb (كتب) のエントリは以下のようになっています。
;--- ktb
;; katab-u_1
ktb     katab     PV     write
ktb     kotub     IV     write
ktb     kutib     PV_Pass     be written;be fated;be destined
ktb     kotab     IV_Pass_yu     be written;be fated;be destined

なお、接頭辞の辞書においては、単独の接頭辞 ( ف، و ) などだけではなく、正しい接頭辞の組み合わせ (فال، وال) などの形でも記載されています。

組み合わせテーブル

組み合わせテーブルファイルは、”tableab.txt”, “tableac.txt”, “tablebc.txt” の3つ存在しています。それぞれが順に「接頭辞と語幹」、「接頭辞と接尾辞」、「語幹と接尾辞」の正しい組み合わせを表現するテーブルです。
テーブルファイルの中身は以下の通りになっており、辞書ファイルにおける3番目の「文法的分類」の正しい組み合わせがスペース区切りで記載されています。
NPref-BiAl N
NPref-BiAl N-ap
NPref-BiAl N-ap_L
NPref-BiAl N/At
(正直なところ、文法的分類の各項目が何を指しているのかはあまり分かりません。)

アルゴリズム

AMAのアルゴリズムは比較的単純です。アルゴリズムでは、アラビア語の単語について以下の仮定が置かれています。
 
  • アラビア語の単語は、接頭辞、語幹、接尾辞からなる
  • 接頭辞は0〜4文字である
  • 語幹は1〜無限個の文字である
  • 接尾辞は0〜6文字である
このルールに従い、与えられた文字列を接頭辞、語幹、接尾辞の3つに分割します。部分文字列を、それぞれの辞書語彙ファイルで検索します。3つの辞書全てにおいて、接頭辞、語幹、接尾辞が発見された場合、その分割は正しい解釈の候補となります。
 
次に、発見された接頭辞、語幹、接尾辞の組み合わせが、文法的に適切であるか否かを、組み合わせテーブルを用いて確認します。接頭辞、語幹、接尾辞の部分文字列の文法的分類が、”tableab.txt”, “tableac.txt”, “tablebc.txt” に正しい組み合わせとして記載されている場合は、入力の部分文字列の組み合わせは適切な分割であることが分かります。

以前iPhoneアラビア語辞書を作りかけた時の例。いちおうكتب (KTB)と入力すると、KaTaBa (彼/それは書いた)、KuTiBa (彼/それは書かれた)、KuTuBun (本(複数形)) が検索できることが分かる。
 

f:id:tencube:20170608013314p:plain

 
UIを作り込んでリリースしたいですが إن شاء الله