私はC#で自然言語プロセッサを構築していますが、データベース内の多くの「単語」は、実際には1つの名詞またはアクションを参照する複数の単語のフレーズです。このデザインコールについての議論はありません。現時点では変更できないと言えば十分です。これらのフレーズや単語をテストする必要がある文の関連する単語(チャンク)の文字列配列があります。 サブアレイ抽出を処理してオーバーフローエラーなどのリスクを最小限に抑えるための適切な慣用的な方法は何ですか?
目的のロジックの例を示すために、サンプルチャンクを使用して実行を実行してみましょう。私たちの目的のために、データベースからの唯一の複数の単語のフレーズが「クイックブラウン」であると仮定します。
Full phrase: The quick brown fox -> encoded as {"The", "quick", "brown", "fox"}
First iteration: Test "The quick brown fox" -> returns nothing
Second iteration: Test "The quick brown" -> returns nothing
Third iteration: Test "The quick" -> returns nothing
Fourth iteration: Test "The" -> returns value
Fifth iteration: Test "quick brown fox" -> returns nothing
Sixth iteration: Test "quick brown" -> returns value
Seventh iteration: Test "fox" -> returns value
Sum all returned values and return.
私はこれをどうやって行うかについていくつかの考えを持っていますが、物事を見れば見るほど、配列アドレス指定エラーやコードを悩ませている他のそのような恐怖について本当に心配しています。フレーズは文字列配列として入力されますが、IEnumerableに配置しても問題ありません。私の唯一の懸念は、Enumerableのインデックスの欠如にあります。