大まかに言うと、名詞のみまたは形容詞と名詞の組み合わせである句の方が、はるかに良い結果が得られるようです。
例:
まず第一に、この問題は望むほど複雑になる可能性があります。サードパーティの読書/ソリューションについて、私は出くわしました:
100% の精度が必要な場合は、そのようなツールを自分で作成することはありません。
しかし、問題領域が限られていれば…
接続詞、前置詞、短縮形、状態動詞などを捨てることから始めます。これは英語のかなり短いリストです (@HappyTimeGopher が提案したストップワードと非常によく似ています)。
その後、すべての受け入れ可能な名詞と形容詞の辞書を (もちろん、インデックス付きの構造として) 作成し、生のフレーズの各単語をそれと比較することができます。辞書に載っておらず、正しい順序で出現するものはすべて、除外されるか、ランクが低くなる可能性があります。
これは、100 個の入力値が与えられ、最良の 5 つを選択したい場合に役立ちます。辞書で値を見つけることは、単語/フレーズが適切である可能性が高いことを意味します。
以前、垂直産業に関連する何千ものドキュメントから生のインデックスを作成して、そのような辞書を自動生成したことがあります。次に、SQL と Excel を使って数時間かけて、人間が簡単に見つけられる問題を取り除きました。結果のリストは完璧ではありませんでしたが、あからさまにばかげた/無意味な用語のほとんどが削除されました。
お察しのとおり、形容詞から名詞への順序をチェックすることはいくらか役に立ちますが、これは絶対確実というわけではありません。「Greatest Hits」と「Car Hits [Wall]」の場合を考えてみましょう。
固有名詞 (人名など) は、辞書のアプローチではうまく機能しません。これは、名/姓のすべてのバリエーションの辞書を構築することはおそらく現実的ではないためです。
要約する:
- ストップワードのリストを使用する
- 単語の辞書を生成し、品詞で分類します
- 辞書とストップワードを使用して生のフレーズを実行する
- (オプション) 試合にどれだけ自信があるかをランク付けする
- 必要に応じて、既知のパターンに違反していないフレーズを受け入れます (これにより、多くの固有名詞が処理されます)。