AIはどうやって日本語の文を構成するのか
「『トランプ』を含む文章と、その前後の一文を収集します。前後の一文も入れないと、『トランプは……』『トランプが……』とトランプを主語にした文が並ぶ不自然な文章が生成されてしまうからです。結果として、635文が収集できました。それを単語ごとにバラバラにして、100次元という大規模な空間上に配置します。任意の単語間には『意味的距離』が存在し、意味的に関連の強い単語がより近くに配置されます」
“意味的な近さ”は、文字通り意味が近いということではなく、ターゲットとなる単語と一緒に現れる頻度が高い、また文中におけるその単語との「距離」が近い、ということなのだそう。
「『Today is a very beautiful day』という文があったとします。『very』がターゲットの単語だとすると、そこから『a』と『beautiful』は1つ離れていて、『Today』は3つ離れている。これも『距離』と捉えます。今回は『トランプ』という単語をターゲットに、“言葉の意味空間”をつくりました」
文章の素ができたら、それらを並べる作業を行う。AIにとって文章を“書く”作業だ。
「まずは、先頭にくる文節をランダムに決定します。それと意味の近い文節を、意味の近い順に並べていき、文章を自動生成します」
これまでの工程で行ってきたことの複雑さに比べたら、とてもシンプルな手法に思える。これで、あれだけ自然な文章がつくれるとは驚きだ。しかし、よくよく読んでいくと、文体が乱れているうえ、文章の後半になるほど文のつながりが不自然になっている。
「今回は簡易的につくっているので文体がバラバラですが、ですます調・である調などの調整は可能です。また、2層のニューラルネットワークでつくっているため、文の展開が直前の文に依存するシンプルなつくりになっていますが、ディープラーニングを用いれば、全体の文脈を考慮したより自然な文章をつくることが可能です」