2

履歴書(CV)の大規模なデータベースと、すべてのユーザースキルをグループ化した特定のテーブルスキルがあります。

そのテーブル内には、スキルをフルテキストで説明するフィールドskill_textがあります。

標準化されたスキルを備えた新しいテーブルを構築するために、そのテーブルから重要な用語/フレーズを抽出するためのアルゴリズム/ソフトウェア/メソッドを探しています。

DBから抽出されたスキルの例を次に示します。

  • セクター別および競争力のある分析
  • 事業開発(国際的な設定を含む)
  • 特定の構造および道路設計ソフトウェア-Microstation、Macao、AutoCAD(基本的な知識)
  • クリエイティブな作品(Photoshop、In-Design、Illustrator)
  • キャンペーンの進捗状況を確認して報告します
  • イベントや展示会の企画と参加
  • 開発:Aptana Studio、PHP、HTML、CSS、JavaScript、SQL、AJAX
  • 規律:1対1のマーケティング、Eマーケティング(SEO&SEA、ディスプレイ、電子メール、アフィリエイトプログラム)ミックスマーケティング、バイラルマーケティング、ソーシャルネットワークマーケティング。

出力は次のようになります。

  • セクター別および競争力のある分析
  • 事業開発
  • 特定の構造および道路設計ソフトウェア-
  • マカオ
  • AutoCAD
  • Photoshop
  • インデザイン
  • イラストレーター
  • イベントの開催
  • 発達
  • Aptana Studio
  • PHP
  • HTML
  • CSS
  • JavaScript
  • SQL
  • AJAX
  • ミックスマーケティング
  • バイラルマーケティング
  • ソーシャルネットワークマーケティング
  • メール
  • SEO
  • 1対1のマーケティング

ご覧のとおり、スキルだけが他の表現テキストではありません。

私はこれがテキストマイニング技術を使用して可能であることを知っていますが、それを行う方法は?データベースは本当に大きいです..テキストの頻度を計算して、それが本当のスキルなのか無意味なテキストなのかを判断できるので、それは良いことです...大きな問題は..「blablabla」がスキルであると判断する方法です。

編集:テキストトークンや正規表現などの標準的なものを使用するように言わないでください..ユーザーは非常に任意の方法でスキルを入力するためです!!

ありがとう

4

3 に答える 3

5

これをプログラムで実行している場合は、次のようになります。

句読点で区切られたすべてのデータ(または角かっことコンマだけ)を新しいテーブル(主キーなし、スキルのみ)に抽出すると、次のようCreative work (Photoshop, In-Design, Illustrator)になります。

 Skill            
 -------------
 Creative work    
 Photoshop        
 In-Design        
 Illustrator      

次に、すべてのCVを進めた後、最も一般的なスキルを照会します(これはMySQLです)

SELECT skill, COUNT(1) cnt FROM newTable GROUP BY skill ORDER BY cnt DESC;

これはこの不自然な例のように見えるかもしれません

 Skill            Cnt
 ---------------------
 Photoshop        3293
 Illustrator      2134
 Creative work     932
 In-Design         123

次に、上位のXスキルから、キャプチャするスキル、他のスキルにマップする必要があるスキル(たとえば、同じスキルにマップする必要があるスキル)、および破棄するスキルを決定し、データマップを使用してプロセスをスクリプト化しますIndesignIn-design

データマップを使用して新しい単語頻度テーブル(今回はskill_id、skill、frequency)を書き込み、2回目はデータを解析するときにルックアップテーブル(cv_id、skill_id)にも書き込みます。これにより、データは、各CVがいくつかのスキルにマップされ、各スキルがいくつかのCVにマップされる状態になります。最も人気のあるスキル、特定の基準に一致するCVなどを照会できます。

于 2010-04-13T22:41:34.547 に答える
0

多くのデータベースは、全文検索機能を介してこれを行います。PostgreSQLの全文検索では、カスタム辞書を使用してこれを簡単に実行できることを私は知っています。

または、PHPのstrtokまたは同等のテキストを使用してテキストにインデックスを付けることもできます。インデックスを作成したら、辞書と比較したり、オカレンスを使用して自分用のシートを作成したりできます。ワードクラウドも同様の方法で作成されます。

于 2010-04-13T22:20:40.647 に答える
0

これをうまく行うには知識が必要です。そうでなければ、「イベントの開催」は「スキル」であり、「創造的な仕事」はそうではないということを何と言うべきでしょうか?しかし、愚かなプログラムは、コロケーションの統計を分析することによって、最初の切り口をとることができます。一連のテキストエントリから一般的/重要なフレーズを抽出する方法と、テキストからフレーズとキーワードを検出するアルゴリズムの回答を参照してください。

于 2010-04-19T05:30:50.207 に答える