Help us understand the problem. What is going on with this article?

オレ プログラム ウゴカス オレ ゲンダイ イケル

オレ プログラム ウゴカス オレ ゲンシジンゴ ハナセル

僕らは @Harusugi さんと COTOHA API のおかげで、僕らの言葉を原始人語に翻訳することができるようになった。

現代人語から原始人語への翻訳は COTOHA APIを使えば、簡単に実現できる。
[1] 入力文を COTOHA API で解析する
[2] 解析結果から助詞を除去する
[3] 各 token の読み(カタカナ)を出力する

これだけで、僕らは原始人語を話すことができるようになる。

例えば、「私はたわしを買った」は「ワタシ タワシ カッタ」となる。 ※適宜、半角SPCを入れています

これなら原始人にも理解できるだろう。
これで、僕らは原始人とコミュニケーションできる、と思った。

しかし、コミュニケーションは双方向だ。
僕らが一方的に原始人語で話しかけるだけではなく、僕らが原始人の言葉を理解できなくてはならない。
僕らは原始人のカタカナのみの言葉を理解できるのだろうか?
そこで、原始人語を現代人語に翻訳する方法を考えてみる。

オレ ゲンダイジンゴ ハナシタイ

原始人語を COTOHA API で解析できるだろうか?
原始人語の「ワタシタワシカッタ」(現代人語:私はたわしを買った)を COTOHA API で解析してみると、「ワタシタワシカッタ:名詞」と解析されてしまう。
連続するカタカナ文字列は一語の名詞と解析されるようだ。
これでは言語処理ができない。

そこで、原始人語から現代人語への翻訳は 原始人語(カタカナ文字の系列)⇒現代人語(token の系列)とみなして、deep learning のニューラル機械翻訳でも使われている seq2seq で原始人語を現代人語に翻訳することにする。

実際には『詳解 ディープラーニング 第2版』を参考にして、英日データの5万文の日本語データから原始人語⇒現代人語のデータを生成し、LSTM で学習してみた。

ちなみに、↑の本では学習と翻訳がひとつのプログラムになっているが、学習後に save_weights() で学習結果を保存し、予測時には保存したデータを読み込むようにしてみた。、

オレ ガクシュウシタ

学習後に、学習データの原始人語を LSTM で翻訳してみた。

入力(原始人語):ワタシテニスブインデス。
出力(現代人語):私はテニス部員です。

入力(原始人語):パソコンツカイカタシッテイマスカ。
出力(現代人語):パソコンの使い方を知っていますか。

入力(原始人語):ワタシキミシンライシテイル。
出力(現代人語):私は君を信頼している。

入力(原始人語):ボクテレビミルノアキタヨ。
出力(現代人語):僕はテレビを見るのに飽きたよ。

入力(原始人語):ハハワタシバースデーケーキツクッテクレルダロウ。
出力(現代人語):母は私にバースデーケーキを作ってくれるのだろう。

原始人はけっこう文化的な生活を送っているのか、テニス、パソコン、テレビもちゃんと翻訳できている。

学習データに含まれないテストデータでも、それなりの結果が得られるようになった。

入力(原始人語):カレラワタシヒトリソコイカシタ。
出力(現代人語):彼らは私を一人でそこに行かせた。

入力(原始人語):コノモンダイカンタンデハナイ。
出力(現代人語):この問題は簡単ではない。

入力(原始人語):エイゴハナセタライイノダガ。
出力(現代人語):英語を話せたらいいのですが。

オレ ゲンダイ イケルカ

現代人語から原始人語への翻訳は、うまくいかない場合もある。

入力(原始人語):フナタビトテモタノシイ。
出力(現代人語):船旅はとても楽しい状態。

入力(原始人語):ワタシカゾクイッショキャンプイッタ。
出力(現代人語):私の家族は昨日1へ行った。

原始人語を完全に翻訳できるところまではできなかった。
原始人の皆様には多少の不便が残るけれど、ぜひ現代に来てほしい。

dakikd
自然言語処理技術を使ってレコメンド、検索などの web サービスの開発を行っています。
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away