2017年11月23日TweetPocketキャッチフレーズを自動生成するプログラムを考えるの続き。生成されるフレーズのうち、大半は大して面白くもうまくもないフレーズだ。生成されたフレーズの中から、面白い/うまいフレーズを抽出する方法がないか考えてみる。生成されたフレーズの出来とその傾向について分析してみる。悪い例まずは、面白くない例をいくつか。ペリカン)の関係性が微妙でピンとこない例。目が回る回転寿司店これらは、慣用句とキーワードとの関連は納得感があるが、あまりに「ひねりのない」ことしか言っていないので、面白くない。心を打たれる投手バッター・投手から連想される「打つ」という単語を含みつつ、ボール以外の「別のもの」を打っている。状況が想像されて、ちょっとうまいことを言っているような気もする。次に、ちょっと良さそうなフレーズを見ていく。慣用句とキーワードとの関連性が非常に高いが、慣用句が別の意味(「釘をさす」の場合は「念を押す」という意味)を表しているため、ちょっと面白く感じられる。口車に乗せられるバスガイド手に汗握る回転寿司店いくつかのフレーズは2chスレにも登場しているもの。これらの慣用句も、基本的に文字通りではない別の意味を表す表現だが、若干ネガティブな意味合いを含んでいるため、シュールな世界観を生み出しているように思える。慣用句と熟語の関連性と慣用句のネガティブさ今回生成されたフレーズを見ている限りでは、慣用句とキーワードの関連性の高さと慣用句のネガティブさ、が自分好みのフレーズを生成する上での肝になりそうだ。慣用句のポジネガ判定はまた別にやるとして、生成されたフレーズ約100個における慣用句と熟語の関連性を可視化して見た。Wikipediaの全文データを用いて学習したWord2Vecのモデルを利用して、慣用句部分とキーワードとのSimilarity(類似性)を評価した。下記の2軸で類似性を算出した。0.516この二つの軸でプロットしただけでは、くっきりと「良いフレーズ」とそうでないものが分離されなかったが、少なくとも両軸のスコアが低い場合は「良いフレーズ」にはならない、というような傾向は現れているようだ。「さばを読む読書家」「さじを投げる投手」「算盤を弾くピアニスト」は、Y軸スコアは高いがX軸スコアが低い位置で近接している。「読書家→読む」「投手→投げる」「ピアニスト→弾く」と、キーワードと動詞の関連性が非常に高い一方で、その動詞の対象が「本→さば」「ボール→さじ」「ピアノ→算盤」と、だいぶトンチンカンなものになっているのが面白いのかもしれない。この集団の近くにプロットされたフレーズとしては、「行間を読む読書家」「恩を売る回転寿司店」「心を打たれる投手」などが存在する。「釘を刺す大工」「くちばしを入れるペリカン」の二つも、非常に近い位置にプロットされた。動詞とキーワードの関連性が非常に低い一方で、慣用句に登場する名詞とキーワードの関連性が非常に高い。その上で、慣用句が文字通りの意味ではない別の意味を表しているため、「うまい」のかも。「尾ひれをつける釣り師」「口車に乗せられるバスガイド」も、これに近いのだが、「釣り師→魚→尾ひれ」「バスガイド→バス→車→口車」と、連想にはワンクッションまたはツークッション挟む必要があるので、X軸のスコアが低いのだろう。「手に汗握る寿司店」「手が後ろに回る回転寿司店」は、完全に慣用句の内容が物悲しかったり、若干想像すると嫌な気分になるあたりが面白い。これは単語の類似性だけでは判断できないので、別軸で判定する必要がありそうだ。今度は、これらの仮説を踏まえて、生成されたフレーズの良い・悪いを判定し、選別してみよう。コメントをキャンセルメールアドレスが公開されることはありません。*ウェブサイトご意見、ご感想をお願いします。(Doc2Vec)で、友人の投稿を見つけ出してみた最近、友人が物件ファンという物件紹介サイトで記事を書いているらしい。