1

既知の役職のマスター リストがあり、検索語から同じ役職を抽出する方法を探しています。例えば:

検索された役職:シニア デジタル マーケティング スペシャリスト
抽出先:シニア デジタル マーケティング

検索された役職:小売インストア セールス アシスタント。フルタイム
抽出先:小売販売アシスタント

そこで、検索されたクエリをクリーンアップするのに役立つパラメーターを抽出しようとしました。

1) データベース内の 2 つのトークンの出現。(用語が互いにどの程度関連しているかを数学的評価するため) 例:

 t01->t0 or t1        Senior || java--->226374 
 t02->t0 or t2        Senior || software--->2566450 
 t03->t0 or t3        Senior || engineer--->7220787 
 t12->t1 or t2        java || software--->315397
 t13->t1 or t3        java || engineer--->407682
 t23->t2 or t3        software || engineer--->11533495

 total =t01+t02+t03+t12+t13+t23

ここに画像の説明を入力

2) データベース全体で一度に 1 つ取得されたトークンの出現。例:

t0->    Senior----->55042636  
t1->    java----->1655805
t2->    software----->26136204
t3->    engineer----->81574912

3) 関連するトークンの合計を取り、5% の最小しきい値を設定すると、次の出力が得られます。つまり、(txy*100)/total > 5 です。

私の成果:シニア ソフトウェア エンジニア
同様のプロジェクトの経験がある人や、さらに改善するためのアイデアを持っている人はいますか?

4

1 に答える 1

1

クエリとリスト エントリの類似性を判断する標準的な方法の 1 つは、ベクトル空間モデルです。大まかに言えば、次の手順でこのようなモデルを構築できます。

  1. ベクトル空間の次元の定義(オフライン)
term-list = []
for-all job titles in your master list:
    for-all words in the current job-title:
        canonicalize(current-word)  // e.g. to-lower-case, etc.
        if not contains(term-list, current-word):
            add(current-word, term-list)
sort(term-list)
n = size(term-list)

の長さnterm-list、ベクトル空間のサイズです。

  1. マスター リストの各役職をベクターに関連付ける(オフライン)
vector-list = []
vector = []
fill(vector, 0, n-1, 0) // initialize to n zeros
for-all job titles in your master list:
    for-all words in the current job-title:
        canonicalize(current-word)  // e.g. to-lower-case, etc.
        term-index = index-of(current-word, term-list)
        vector[term-index]++
normalize(vector) // scale vector to length = 1
add(vector, vector-list)
  1. 各検索queryもベクトルに変換します(オンライン)

これは 2. のコードとまったく同じように機能しますが、マスター リストの役職の単語の代わりにクエリ内の単語を反復処理する for ループ (内側のループ) が 1 つしかない点が異なります。vector-listまた、明らかな理由により、 は必要ありません。

結果は正規化されquery-vectorた .

  1. query-vectorコサイン類似度を使用して与えられた役職の関連性を測定する(オンライン)
similarities-vector = []
for-all job-title vectors in vector-list:
    similarity = dotProduct(query-vector, job-title-vector)
    add(similarity, similarities-vector)

結果は、クエリとマスター リストの各エントリ間の類似値であり、similarities-vector.

これは非常に一般的なモデルであり、その魅力はそのシンプルさにあります。ただし、役職は通常、各役職に 1 回しか現れない少数の単語のみで構成されていることを考えると、当面の仕事にとって非常に優れたモデルであるかどうかは議論の余地があります。しかし、あなたはそれを試してみることができます。

于 2015-01-20T09:19:06.577 に答える