2018年7月25日水曜日

Daily UI #001

UIを勉強したいと思い立ち、友人の勧めで、Daily UIを始めてみる。
続くかわからないけど。

Sign Up

最初の課題は Sign Up。
どんなサービスかは自分で決めて良いらしい。
今回は自分の研究課題でもある「訳詞サポートシステム」をテーマとする。

システム要件

訳詞サポートシステムの要件を以下に示す。
  • 研究目的なので利用料金は無料
  • ユーザの実験への協力や簡単なアンケートのために、メールを配信することがある
  • ユーザの種別にどのような単語や音楽を好むかを知る必要がある
    • 性別
    • 年齢
    • 音楽歴
    • 英語の習熟度

アクティビティシナリオ

こちらを参考にアクティビティシナリオを書いてみる。

対象ペルソナ

自分のPCを持っており、譜面作成ソフト等で楽譜が作れる20代の男女

ペルソナの目標

英語歌詞の楽譜を日本語に翻訳するツールを利用するために、Webサービスに登録する

シーン

自分のお気に入りの英語の譜面を譜面作成ソフトで作成してみたので、これを日本語に翻訳できないかと思い立つ。そこで、訳詞をサポートしてくれるWebサービスに登録してみることにした。

アクティビティシナリオ

ユーザはPC上で英語の譜面を譜面作成ソフトで作成してみた。
これを、日本語の歌詞に翻訳して公開することはできないかと思ったので、訳詞を補助してくれるようなツールがあるかWebで検索してみた。
調べてみたところ、訳詞サポートシステムというWebサービスがあったので、登録してみることにした。
ユーザは、一般的なSNSは利用しているが、専門的なツールの登録をしたことはあまりない。
知名度の低いサービスに登録する際に、利用料金に制限があるのかもわからないし、メールアドレスを抜き取られて迷惑メールが来るようにならないかと不安もある。
けれども、訳詞サポートシステムにアクセスしてみたところ、特に致命的な情報の入力もなく、簡単にシステムが使えるようになった。
未知のサービスに対する不安は解消され、安心して訳詞サポートシステムを使えるようになった。

タスク

  1. 英語の譜面を作成する
  2. 訳詞サポートシステムについて検索する
  3. 訳詞サポートシステムにアクセスする
  4. サービスに登録する
  5. システムが利用できるようになる

ワイヤーフレーム

上記のシナリオから、以下の内容が担保されるべきだと考えた。
  • 登録する内容は少なめにする
    • 情報を多く入力させると、ユーザを不安にさせる、離脱が増える
  • 利用料金について明確にする
  • メルマガの配信等について明記する
  • ユーザの属性がわかれば匿名でも構わない
結果、以下のようなUIになった。

(左)PC、(右)スマホ

楽譜情報が無い場合、性別、年齢、音楽歴、英語の習熟度、全て必要の無いデータである。
そのため、sign upの画面では排除する。
そうすることで、メールアドレス登録のハードルを下げる。

アドレスの登録が終われば、パスワードがメールで送られてくる。
このとき、多くのサービスではパスワードの変更をメールに記載されているURLを踏んだ後に行う。
このときに、改めて性別等について入力してもらうこととした。

メルマガについては、本当は全員に送りたいが、アンケート等のデータについては、協力的な人の回答でないと困る場合がある。
なので、任意での登録とした。

2018年7月6日金曜日

LSTMで文章生成

私が愛してやまない Les Miserables のデータを元に文章生成してみた。
ファンティーヌが病院に入った場面から、サンプリス修道女がバルジャンを逃がすためにジャヴェールに嘘をつく場面の文章を利用。
mecabを使って分かち書きをし、ユニット層8の単語単位でepoch 1500で学習させた。
NLPが専門の友人に聞いたところ、ひらがな文字単位で学習させるのは一般的ではないとのこと。
webで検索すると、文字単位ひらがなで学習させてる記事を見かけるが、自然言語界隈ではやらないらしい。
やるとしたら、漢字まじりの文字単位とのこと。

結果

単語ごとに都度改行してるけど。
これらはデータの中にはない文章だった。
$ python lstm.py
既に
シャンマティユー
処刑
持っ

$ python lstm.py
だって
少し
変わら
ない

キャラクターの名前を先頭に与えてみる

$ python lstm.py
ジャヴェル
答え
なかっ
です

$ python lstm.py
ジャン・ヴァルジャン
はっきり
ある

$ python lstm.py
ファンティーヌ
誓って
申し

$ python lstm.py
コゼット
しっかり

楽しいいい
いい結果のみ抜粋してるので、もちろん、文章になってないような結果もある。