人工知能さんに最強の車とか趣味とか学歴とかを尋ねた

人類の使命に続き第二弾です。

最強の車

兵器に対する「水爆」で、そのカテゴリでの最強な何かを類推させてみたいとおもいます。

In [43]: model.most_similar(positive=['車', '水爆'], negative=['兵器'])
Out[43]:
[('ダンプカー', 0.4871062934398651),
('電車', 0.4699863791465759),
('単車', 0.46710675954818726),
('オープンカー', 0.46553075313568115),
('マイクロバス', 0.4547302722930908),
('排気ガス', 0.4462153911590576),
('乗用車', 0.44573163986206055),
('タンクローリー', 0.44489237666130066),
('ボギー車', 0.4413754940032959),
('事故現場', 0.4407508075237274)]

ダンプカーが最強だそうです。たしかに。タンクローリーも最強な感じがしますね。

最強の趣味

In [44]: model.most_similar(positive=['趣味', '水爆'], negative=['兵器'])
Out[44]:
[('好き', 0.5677952766418457),
('映画鑑賞', 0.5464236736297607),
('特技', 0.5445062518119812),
('スポーツ観戦', 0.5437335968017578),
('大好き', 0.5437293648719788),
('好きな物', 0.5245440006256104),
('スキューバダイビング', 0.5219203233718872),
('好物', 0.49256274104118347),
('筋トレ', 0.49235254526138306),
('マイブーム', 0.49024906754493713)]

スポーツ観戦、ダイビング、筋トレだそうです。運動系が多いですね。物理で殴れ、みたいな感じかな?

学歴

In [45]: model.most_similar(positive=['学歴', '水爆'], negative=['兵器'])
Out[45]:
[('津田塾大学', 0.44191402196884155),
('国際基督教大学', 0.43961143493652344),
('聖心女子大学', 0.4359847605228424),
('成蹊大学', 0.43384850025177),
('文芸学部', 0.4303687810897827),
('成蹊高等学校', 0.42860448360443115),
('修道高等学校', 0.42487841844558716),
('政経学部', 0.4210715889930725),
('成城大学', 0.4132804870605469),
('共立女子短期大学', 0.4117504358291626)]

うーん…。もうちょっと限定させた方が良さそうだ。じゃあ、アメリカで言うMITにあたる日本の大学は?

In [47]: model.most_similar(positive=['日本', 'MIT'], negative=['アメリカ'])
Out[47]:
[('千葉大学', 0.5658024549484253),
('電気通信大学', 0.5643893480300903),
('東京理科大学', 0.5425586700439453),
('大阪教育大学', 0.5387907028198242),
('山梨大学', 0.5330049991607666),
('東工大', 0.5318318009376526),
('カーネギーメロン大学', 0.5315263867378235),
('東北大学', 0.529177188873291),
('東京工科大学', 0.5280918478965759),
('大阪大学', 0.5262444019317627)]

おお!それっぽいぞ!トップが千葉大なのがちょっと気になるけど。じゃあハーバードはどうだろう。

In [48]: model.most_similar(positive=['日本', 'ハーバード'], negative=['アメリカ'])
Out[48]:
[('種智院大学', 0.558855414390564),
('大正大学', 0.5509837865829468),
('花園大学', 0.5501788854598999),
('京都教育大学', 0.5449434518814087),
('お茶の水女子大学', 0.5401522517204285),
('千葉大学', 0.5394665002822876),
('小樽商科大学', 0.5342907309532166),
('立正大学', 0.5336884260177612),
('京都府立大学', 0.5328034162521362),
('京都情報大学院大学', 0.5326995849609375)]

えっ…。もうちょっと違う言葉にしてみよう。

In [49]: model.most_similar(positive=['日本', 'ハーバード大'], negative=['アメリカ']
...: )
Out[49]:
[('学習院大学', 0.6644800901412964),
('慶応義塾大学', 0.6581171751022339),
('國學院大学', 0.6559795141220093),
('二松学舎大学', 0.6537451148033142),
('都留文科大学', 0.6529182195663452),
('京都府立大学', 0.6513246297836304),
('小樽商科大学', 0.6441404223442078),
('お茶の水女子大学', 0.6407151222229004),
('函館大学', 0.6396198272705078),
('花園大学', 0.6392101645469666)]

これもちょっと微妙だな。じゃあ「ハーバード大学」は?

In [50]: model.most_similar(positive=['日本', 'ハーバード大学'], negative=['アメリカ
...: '])
Out[50]:
[('お茶の水女子大学', 0.6813747882843018),
('千葉大学', 0.671390175819397),
('東京大学', 0.6660049557685852),
('花園大学', 0.660922646522522),
('東北大学', 0.6588993072509766),
('学習院大学', 0.650392472743988),
('慶応義塾大学', 0.6465259790420532),
('東京造形大学', 0.6449434161186218),
('小樽商科大学', 0.6431803703308105),
('東京理科大学', 0.6424373388290405)]

お茶の水強いな。あと千葉大も出てきた。

地域

市町村の名前ではどうだろう?

In [52]: model.most_similar(positive=['日本', 'ニューヨーク'], negative=['アメリカ']
...: )
Out[52]:
[('東京', 0.7192708253860474),
('大阪', 0.5998897552490234),
('関西', 0.5595093965530396),
('京都', 0.5192846059799194),
('名古屋', 0.504023551940918),
('神奈川', 0.5003798604011536),
('札幌', 0.49999159574508667),
('北海道札幌市', 0.4968940019607544),
('東京中央', 0.4880274534225464),
('東京都', 0.48627591133117676)]

In [53]: model.most_similar(positive=['日本', 'サンフランシスコ'], negative=['アメリ
...: カ'])
Out[53]:
[('東京', 0.6842719912528992),
('大阪', 0.6145633459091187),
('東京都内', 0.5566956400871277),
('ホノルル', 0.55049729347229),
('京都', 0.5500518679618835),
('関西', 0.5496141910552979),
('宮城県仙台市', 0.5385982394218445),
('都内', 0.5358612537384033),
('兵庫県神戸市', 0.5314884781837463),
('福岡県福岡市', 0.5252894759178162)]

In [54]: model.most_similar(positive=['日本', 'ラスベガス'], negative=['アメリカ'])
Out[54]:
[('東京', 0.578539252281189),
('東京都内', 0.5568128824234009),
('都内', 0.5506759881973267),
('新宿', 0.519801139831543),
('MGMグランド', 0.5089303255081177),
('東京キネマ倶楽部', 0.5072373151779175),
('東京都渋谷区', 0.5026382207870483),
('六本木', 0.5009575486183167),
('大阪', 0.4963320195674896),
('よみうりホール', 0.49498921632766724)]

In [55]: model.most_similar(positive=['日本', 'ロズウェル'], negative=['アメリカ'])
Out[55]:
[('東京', 0.4486798048019409),
('山梨県上野原市', 0.4254250228404999),
('ほうき星', 0.4238247573375702),
('武蔵野', 0.4180765450000763),
('薩摩硫黄島', 0.41499364376068115),
('三鷹市', 0.4092234969139099),
('羽村市', 0.40835803747177124),
('三浦市', 0.40356379747390747),
('東京都立川市', 0.4002583622932434),
('キャッシー', 0.3990603983402252)]

In [56]: model.most_similar(positive=['日本', 'デトロイト'], negative=['アメリカ'])
Out[56]:
[('東京', 0.6383340358734131),
('大阪', 0.583315372467041),
('関西', 0.5527859330177307),
('兵庫県西宮市', 0.5457843542098999),
('埼玉', 0.5432716608047485),
('兵庫県神戸市', 0.5353044271469116),
('神奈川', 0.5334066152572632),
('東京都内', 0.52476966381073),
('宮城県仙台市', 0.5232798457145691),
('名古屋', 0.5212063789367676)]

In [57]: model.most_similar(positive=['日本', 'ハワイ'], negative=['アメリカ'])
Out[57]:
[('沖縄', 0.6730717420578003),
('奄美', 0.6177670359611511),
('石垣島', 0.5985319018363953),
('九州', 0.5839428901672363),
('東京', 0.578520655632019),
('奄美大島', 0.5662021040916443),
('屋久島', 0.5653406381607056),
('パラオ', 0.5531713962554932),
('徳之島', 0.551487922668457),
('宮古島', 0.5514500141143799)]

In [58]: model.most_similar(positive=['日本', 'グアム'], negative=['アメリカ'])
Out[58]:
[('サイパン', 0.6679530143737793),
('パラオ', 0.6541091203689575),
('沖縄', 0.5985808372497559),
('石垣島', 0.5916317105293274),
('南鳥島', 0.5834410190582275),
('慶良間諸島', 0.572235107421875),
('草垣群島', 0.5714197158813477),
('マーシャル諸島', 0.5588457584381104),
('サイパン島', 0.5576650500297546),
('グアム島', 0.5526014566421509)]

In [59]: model.most_similar(positive=['日本', 'フロリダ'], negative=['アメリカ'])
Out[59]:
[('九州', 0.5403544306755066),
('東京', 0.5357263088226318),
('奄美', 0.5183857083320618),
('鹿児島', 0.5147466659545898),
('関西', 0.5096019506454468),
('西日本', 0.49283701181411743),
('北海道', 0.48762932419776917),
('沖縄', 0.4845426082611084),
('秋田', 0.48347190022468567),
('徳之島', 0.4815409183502197)]

In [60]: model.most_similar(positive=['日本', 'ビバリーヒルズ'], negative=['アメリカ
...: '])
Out[60]:
[('東京', 0.5297046303749084),
('都内', 0.5037904977798462),
('東京都内', 0.5017752051353455),
('ニューオータニ', 0.48212507367134094),
('千葉県浦安市', 0.4763365387916565),
('六本木', 0.47574546933174133),
('静岡県伊東市', 0.4670323133468628),
('東京都世田谷区', 0.46306872367858887),
('東京都三鷹市', 0.4609428942203522),
('としまえん', 0.4591794013977051)]

面白いですね!

ニューヨーク、サンフランシスコに対応するのは東京、京都、大阪、仙台、名古屋あたりと、単に大きい都市が列挙されてるだけですが、ラスベガスだと新宿、渋谷、六本木などかなり絞られた区域が出てきます。よみうりホールがちょっと謎ですが。

ロズウェルに対応するのは三鷹、羽村、立川なんかが出てきます。うーん、分かるような分からんような。ロズウェルに対しては「ほうき星」が関連しているというのも面白いですね。アメリカのロズウェル事件と日本でのハレー彗星(ほうき星)による一連の騒動なんかが似通ってるということでしょうか。

ハワイ、グアムに関しては沖縄とか石垣島とか出てきてますね!賢いですねコイツ!フロリダに対する奄美、鹿児島、北海道あたりもなんとなく理解できます。秋田が出てくるのはちょっと謎ですが。

ビバリーヒルズに対応するのは浦安、六本木、世田谷、三鷹、伊東市だそうです。六本木、世田谷、三鷹はなんとなくわかるが、浦安ってそんなにビバリーでヒルズかなあ?伊東市は行ったこと無いから分からん。

じゃあ今度は車関係を調べてみましょう。

In [62]: model.most_similar(positive=['アルファード', 'スーパーカー'], negative=['NS
...: X'])
Out[62]:
[('ミニバン', 0.6281086206436157),
('ワンボックスカー', 0.6192965507507324),
('スズキ・ジムニー', 0.6117730736732483),
('ジェッタ', 0.6106795072555542),
('フォード・マスタング', 0.6058211922645569),
('ピックアップトラック', 0.6057510375976562),
('トライク', 0.6044495105743408),
('MPV', 0.6012470722198486),
('ハイラックス', 0.6003690958023071),
('SUV', 0.5994820594787598)]

おっ、いいじゃん。これ、車種名から車のタイプを導出するのに流用できそうですね!固有名詞にタグ付したりカテゴリ分類するのに流用できそう。

じゃあ形容詞行ってみましょうか?

In [63]: model.most_similar(positive=['アルファード', '格好いい'], negative=['NSX'])
...:
Out[63]:
[('ダサい', 0.6516411304473877),
('男らしい', 0.6226910352706909),
('かっこいい', 0.6054847240447998),
('暑苦しい', 0.6026710271835327),
('女々しい', 0.5894186496734619),
('っぽい', 0.5867724418640137),
('愛らしく', 0.5841862559318542),
('かわいい', 0.5820394158363342),
('可愛い', 0.5788251757621765),
('大人っぽい', 0.5786198377609253)]

やった!俺が期待する答えが出た!「ダサい」「暑苦しい」…「下品」も出てくれると嬉しかったですね。

In [64]: model.most_similar(positive=['ヴェルファイア', '格好いい'], negative=['NSX'
...: ])
Out[64]:
[('ダサい', 0.6451823711395264),
('かっこいい', 0.5989595651626587),
('男らしい', 0.5904039144515991),
('愛らしく', 0.5791398286819458),
('女々しい', 0.5740483999252319),
('かわいい', 0.5736345052719116),
('可愛い', 0.5713006854057312),
('おっかない', 0.5670004487037659),
('っぽい', 0.5662069320678711),
('カッコイイ', 0.5638502836227417)]

イエーイ。

In [66]: model.most_similar(positive=['ヴェルファイア', '速い'], negative=['F1'])
Out[66]:
[('速く', 0.5667837858200073),
('遅い', 0.5520641803741455),
('鈍い', 0.5157270431518555),
('軽い', 0.47611749172210693),
('小さい', 0.4723232388496399),
('速かっ', 0.4583357870578766),
('重い', 0.4541926980018616),
('荒い', 0.453326940536499),
('重たい', 0.44183892011642456),
('弱い', 0.441686749458313)]

特性も表現できるみたいですね。これ、車関係の記事をたくさんスクレイピングしたら面白そう!

In [67]: model.most_similar(positive=['トヨタ', 'レガシィ'], negative=['スバル'])
Out[67]:
[('スバル・レガシィ', 0.7408971786499023),
('アコード', 0.6961294412612915),
('シビック', 0.6853798627853394),
('アテンザ', 0.6766948699951172),
('トヨタ・スープラ', 0.6725630760192871),
('ホンダ・シビック', 0.6714479327201843),
('パサート', 0.668892502784729),
('マツダ・ロードスター', 0.6629757285118103),
('トヨタ・カムリ', 0.6622824668884277),
('デミオ', 0.6587569713592529)]

スバルに対するレガシィはトヨタで言うとスープラですか。

In [68]: model.most_similar(positive=['マツダ', 'レガシィ'], negative=['スバル'])
Out[68]:
[('スバル・レガシィ', 0.753225564956665),
('アテンザ', 0.7151298522949219),
('アコード', 0.6964378356933594),
('シビック', 0.6829447746276855),
('デミオ', 0.6785675287246704),
('マツダ・ロードスター', 0.6761074066162109),
('ホンダ・シビック', 0.666242241859436),
('タイプR', 0.6634076833724976),
('プレマシー', 0.6617516279220581),
('パサート', 0.6599953770637512)]

マツダで言えばアテンザ。こいつ本当に頭いいな。

In [85]: model.most_similar(positive=['ホンダ', 'レガシィ'], negative=['スバル'])
Out[85]:
[('スバル・レガシィ', 0.7175595760345459),
('ホンダ・シビック', 0.6924827694892883),
('シビック', 0.6812728643417358),
('アコード', 0.6804544925689697),
('トヨタ・スープラ', 0.6757205724716187),
('パサート', 0.6650536060333252),
('S2000', 0.6625360250473022),
('タイプR', 0.6604276895523071),
('スープラ', 0.6552801132202148),
('マツダ・ロードスター', 0.6506170034408569)]

うんうん。

まとめ

Word2Vecすげえ。