文字列内のキーワードまたはキーフレーズを検索するアルゴリズムの作成方法に関するアドバイスや指示が必要です。
文字列には次のものが含まれます。
- 英語で書かれた技術情報(GB)
- 単語は主にスペースで区切られます
- キーワードにスペースは含まれていませんが、ハイフン、アポストロフィ、コロンなどが含まれている場合があります。
- キーフレーズには、スペース、コンマ、またはその他の句読点を含めることができます
- 2つ以上のキーワードが一緒に表示される場合は、「インバータドライブ」などのキーフレーズである可能性があります。
- テキストにもHTMLが含まれていますが、必要に応じて事前に削除できます。
- 非キーワードは、「and」、「the」、「we」、「see」、「look」などの単語になります。
- キーワードでは大文字と小文字が区別されません。たとえば、「インバータ」と「インバータ」は同じキーワードです。
アルゴリズムには次の要件があります。
- バッチ処理シナリオで操作します。たとえば、1日1回または2回実行します。
- 長さが約200〜7000文字の文字列を処理します
- 1時間以内に1000本の文字列を処理する
- 適度に優れた電力のサーバーで実行されます
- 次のいずれかで記述されています:C#、VB.NET、またはT-SQLは、F#、Python、Luaなどです。
- 事前定義されたキーワードまたはキーフレーズのリストに依存しません
- ただし、「and」、「the」、「go」などのキーワード除外のリストに依存することができます。
- 理想的には他の言語に転送可能(例:メタプログラミングなどの言語固有の機能に依存しない)
- キーフレーズのリスト(頻度の降順)とそれに続くキーワードのリスト(頻度の降順)を出力します。
数秒で最大8000文字を処理でき、リアルタイムで実行できるとしたら、さらにすばらしいでしょうが、私はすでに十分に質問しています。
アドバイスと方向性を探しているだけです:
- これは2つの別個のアルゴリズムと見なされるべきですか?
- 私が従うことができる確立されたアルゴリズムはありますか?
- 私の要件は実行可能ですか?
どうもありがとう。
PS文字列はSQLServer2008 R2データベースから取得されるため、理想的には言語がこれをサポートします。そうでない場合は、STDOUT、パイプ、ストリーム、ファイルなどに対して読み取り/書き込みができる必要があります。