2011-10-11 12 views
0

私は2つの文の配列を持っていますあなたが見ることができるように、私は応募者の能力を仕事の要求に合わせようとしています。rails - 文の配列の比較

Array A 
-Must be able to use MS Office 
-Applicant should be prepared to work 40 to 50 hours a week 
-Must know FDA Regulations, FCC Regulations 
-Must be willing to work in groups 

Array B 
-Proficient in MS Office 
-Experience with FDA Regulations 
-Willing to work long hours 
-Has experience with math applications. 

2つの配列を比較していくつの類似点があるかを判断する方法はありますか?好ましくは、類似したパーセンテージを返す(類似した単語を選ぶのではなく)文ベースで文にすることが好ましい。

提案がありますか?

+0

「似ている」と言ったら何をお探しですか?あなたが集中している特定の重要なフレーズはありますか?キュウリがシナリオの解析に正規表現を使用するようなものはありますか? – natedavisolds

+0

私は確信していません。私は、Array..Aの文3と同様の..pickと言って、配列Bの文2は、「FDA規制」のために部分一致を示すはずです。私は、応募者が能力要件をどのように挙げているかについて、全体のパーセンテージを取得しようとしています。 – stewart715

答えて

0

あなたが求めていることはかなり難しく、今日は自然言語処理の話題です。

NLTKは、選択のツールキットですが、それはPythonです。この分野には多くの学術論文があります。大部分はcopuses to train a a modelを使用します。類似している単語が類似した文脈にある傾向がある(つまり類似した単語に囲まれている)という仮説がある場所です。これは非常に計算コストが高い。

あなたは心の中でこの計画をNLTKライブラリを使用して、初歩的な解決策を考え出すことができます。

  • 削除フィラーの言葉(、、及び)
  • 使用スピーチタガーの一部に(verb)の場合は、wordnetライブラリを使用して の同義語を取得します。たとえば、名詞や動詞以外のものを削除するには、次のように入力します: そして、もしあなたがマッチするなら、あなたは数えます。これには があります。これには、単語の類似度を測定するために単語の頻度を使用できる辞書 を構築するためにコーパスを使用する他の論文がたくさんあります。 という類似しているがシノニムを共有していない語句を関連付ける可能性が高いので、後者の方法は、 の方が優先します。
  • あなたはその後、単語の類似性に基づいて、文の類似性の相対的な尺度を与えることができます

他の方法は、文の構文構造を検討していますが、このことから、そのくらいの利益を得ることはありません。残念ながら、上記の方法はあまり良くありません。なぜなら、ワードネットの性質のためです。