2016-06-28 26 views
-1
splitDescription = work.workdescription.downcase.split(' ') 

keywords = ['teamwork', 'developed', 'enhanced', 'transformed', 'achieved','grew', 'introduced', 'project', 'awarded', 
      'planned','supervised','created','designed','discovered','evaluated','promoted','represented','completed', 
      'devised','liaised','controlled','researched','organised','achieved','managed','analysed','assessed','conducted', 
      'solved','responsible for','responsibilities'] 

splitDescription.select {|word| word.include?(keywords)}.each do |word| 
    new_score += 0.5 
end 

私はsplitDescriptionに分かれて説明を保存しています。文章に配列内の単語が含まれていないか確認してください。

splitDescriptionにキーワードが含まれていて、splitDescriptionにあるkeywordのそれぞれについて、new_scoreが0.5増加しています。

現在、このコードを試していますが、正しく動作しません。

+0

前者は '.split(/ \ s + /)'と等価で、余分なスペースを詰め込むので、おそらく 'split( '')'ではなく '.split'を使いたいでしょう。 –

答えて

5

あなたはほとんどあります。ここkeywords以来

splitDescription.select { |word| keywords.include?(word) } 

は単一wordをルックアップするために配列されている

より堅牢なソリューションは次のようになります。

new_score += 0.5 * (splitDescription & keywords).size 

後者が交差しますkeywords配列と分割された説明、交差の大きさを計算し、この値を分割してスコアを上げる二人で

+2

私は交差点のあるソリューションもお勧めします。 – oliviergg

+0

私は質問を書いていないと思うが、単語ごとにスコアが0.5ずつ上がるはずだからsplitDescriptionで5単語が見つかったら合計スコアは2.5になるはずだ@mudasobwa –

+0

これはまさにこれコードは行います。 – mudasobwa

関連する問題