2011-08-03 11 views
1

私は、あなたが望むマッチのタイプだけを与えられたマッチを自動的に見つけるアルゴリズムがあることを意味します。例えば、「病気」が与えられた場合、MLテクニックを使用した現代のアルゴリズム(おそらく私は推測している)またはテキストのすべての病名を見つけるための他のテクニックがありますか? これは正規表現なしでどのように行うことができると思いますか?それはめったに(少なくとも主に正規表現にとにかくまたは)正規表現を使用して行われていないですけれども正規表現と唯一の正規表現を使用しないで*一致するものを見つけるアルゴリズムはありますか?

おかげ

+0

病気のためにルックアップテーブルが必要なような音がします。エントリは、代替スペル、スペルミス、正規化を見つけるためにはまだ正規表現パターンである必要があります。 – Joe

+0

私は2つの入力しか与えられていません:病気のような一致のタイプ、異なる正規表現(必ずしも病気のパターンではない)を持つフラットファイル、入力1を使って一致したテキストを使用してパターンをすべて見つけ出す必要があります2のもの。 – svk

+1

私は別のやり方ではないと確信しているので、コメントを残しました。本質的に、あなたは時間がかかるだろう病気のルックアップテーブル内の各正規表現で文書をスキャンする必要があります。可能な解決策は、有限状態のオートマトンと、言語パーサーがどのように動作するか(基本的には文法文法ファイルを作成する)と同様の状態遷移表です。 http://en.wikipedia.org/wiki/Finite-state_machine http://ja.wikipedia.org/wiki/State_transition_table – Joe

答えて

2

トピックベースの検索は、最高の状態で非自明です。

トピックベースの検索では、通常、迷惑メールフィルタに似ています実際、純粋なベイジアンモデルを使用していると仮定すると、おそらく特定のトピックに関連するもの(おそらく)とそれ以外のもの(おそらく)ではなく、ちょうど適切なトレーニングデータを使用して(つまり、迷惑メール/非迷惑メールに基づいて訓練するのではなく、この場合は医療/非医療)、トレーニングします。

これは実際には一度に1つのトピックに対してのみ機能します。トピックごとに個別に訓練する必要があります。多かれ少なかれ複数のトピックを同時に管理したい場合は、Latent Semantic Indexing(機械学習型のものでより一般的に使用される)のようなものを調べることをお勧めします。これは、(例えば)数千もの文書をとり、特定のトピックに関連するものだけでなく、数多くのグループに分けることをサポートします。

サポートしたい検索の種類にもよりますが、自動キーワード抽出アルゴリズムもありますが、あなたが気にしていることは明らかではないので、これに取り掛かりません。

異なる言葉やスペルミスを扱うために正規表現を使って言及した人がいるので、正規表現は通常そのどちらの目的にも使われません。接尾辞を削除して(可能性のある)ベースワードを得るためのアルゴリズム(例えば、Porterのステマー)があります。スペルミスを処理するためにより頻繁に使用される他のもの(例えば、Levenshtein距離)がある。

関連する問題