どの企業も「システム構築」「ノンストップ」「設計開発」で似たり寄ったりなのでいっそTF-IDFすれば単純に面白い特徴的な企業が見つかるかもと思った
対象企業
リクナビ2016における「ソフトウェア・情報処理」のジャンル全企業対象(1000社)
結果
例えば株式会社ティージー情報ネットワークと社名だけだとなんの会社か分からないけど、
東京ガス:0.1346153846153846 ティージー:0.057692307692307696 チューター:0.04761100955284588
からなんとなくわかるように東京ガスグループのSI企業である。
株式会社NTTデータCCS
科学:0.03964422374698337 JX:0.03669724770642202 資源:0.03580816501827472
当社は地図事業分野、資源・エネルギー分野、地球科学分野など、他社にない科学ソリューション技術も提供しています。
おおっ
日本コンピュータ・ダイナミクス株式会社
パーキングシステム:0.02768166089965398 育児:0.02431580637531702 システム:0.02422145328719723
駅前や近くのスーパーなど、自転車に乗る人なら一度は目にしたことがあるだろう、時間貸し駐輪場の「EcoStation21」。 当社では、このシステムの開発、運用を手がけています。
株式会社プライオリティ
彼女:0.053168969562359544 Win:0.049826867859078965 アナログ:0.03447535447683008
株式会社オーネスト
面接:0.05525826736724972 クラブ:0.04663632571778326 携帯:0.03866274024920881
「20分間スピーチ」があります。「20分かけて、自己PRをして下さい」という質問ですが、最初は多くの方が面食らいます。
株式会社アゴラ
娘:0.060836501901140684 挨拶:0.0588766162168832 LINE:0.056258098925262644
バック転は中学のときに体育館で一人で練習して覚えました。コミュニケーションは苦手ですが、試行錯誤が好きなのでルービックキューブも得意です。去年、自己中の外注さんと仕事をしたときはうつ病になりそうでしたが、PMさんが彼を解雇したので今は仕事を楽しんでます。今年になってLINEで日報を書くので人間関係のトラブルは小さいうちに解決できてます。先日LINEの日報に「娘のバレエ教室の最終日で娘が「挨拶をするのが恥ずかしい」といったので「この先、体操を頑張るならコーチや友達との挨拶が大事だ」と叱った」と書き、この写真を添付したら求人広告に・・・。娘には仲間と一緒に練習することでコミュニケーション力もつけて欲しい!
おソース
require 'bundler' Bundler.require ActiveRecord::Base.configurations = YAML.load_file('database.yml') ActiveRecord::Base.establish_connection(:development) class It < ActiveRecord::Base end #「リンゴとレモンとレモン」を[{"リンゴ"=>1, "レモン"=>2}]へ def create_hash(text) nm = Natto::MeCab.new hash = {} nm.parse(text) do |n| if n.feature.split(',')[0] == '名詞' hash[n.surface] ||= 0 hash[n.surface] += 1 end end hash end def calc_tf(hash) total = hash.values.inject(:+)#valueの合計値を計算 tf = {} hash.each do |key, value| tf[key] = value / total.to_f end tf end def calc_idf(hash, df, n) idf = {} hash.each do |key, value| idf[key] = (Math.log10(n / df[key]) + 1) end idf end nm = Natto::MeCab.new word_map = [] corp_name = [] It.all.each do |c| corp_name << c.name word_map << create_hash(c.description) end #全文章の単語出現回数を求める df = {} #ex. {"リンゴ"=>2, "レモン"=>1, "ミカン"=>1} word_map.each do |hash| hash.each do |key, value| df[key] ||= 0 df[key] += 1 end end word_map.each_with_index do |hash, i| tf = calc_tf(hash) idf = calc_idf(hash, df, word_map.size) tf_idf = {} hash.each do |key, value| tf_idf[key] = tf[key] * idf[key] end puts corp_name[i] tf_idf.sort_by{|k, v| -v}[0..2].each do |key, value| puts "#{key}:#{value}" end puts '' end
会社名が上位に来たり「⇒」が入ったりノイズ取り除く作業はもう少し必要だけどそれなりの成果はあるんじゃ?