2017-01-30 4 views
-1

NLPに接続されたヘルプを謙虚にお尋ねします。私はmultidimを持っています。フレーズの配列リポジトリ(1語と複数語)。すべてのトピックには、独自のmultidim assocがあります。アレイ。たとえば、1つの配列には、「どのように」、「どれくらい」、「何回」、「何回」などのフレーズが含まれていますか...入力フィールドに入力されたフレーズをどのように認識するか

ユーザーがこれらのフレーズのいずれかを入力したかどうかを認識する方法はありますか?彼女/彼が入ったのは誰か。優先順位は、より多くの単語を含むフレーズでなければなりません。たとえば、algoが「何回」認識された場合、「何回」と「どのように」無視する必要があります。これは、異なるプログラムフローを生成するためです。どのように "何回"存在する場合、それを無視するように強制する方法。

結論として、与えられた入力文でできるだけ多くのフレーズを認識する方法。優先度は、より多くの単語を含むフレーズでなければなりません。次に、私はこのアルゴをユーザー入力を比較して、すべての配列保管所に個別に対応させます。

ご協力いただきありがとうございます。

P.Sこれはあまりにも多くの質問をする場合、ここではより簡単なバージョンです。入力されたテキストの一部がmultidimに含まれているフレーズと一致するかどうかを調べる方法。配列(より多くの単語が認識された配列フレーズが優先されます)。

+4

この質問は、広範囲にわたっています。 –

+0

個々の単語を得るために、フレーズを空白で区切ります。それから私はRegexを使って個々の単語にマッチさせ、必要な意思決定ロジックと一致する単語を比較します。 – Alex

答えて

0

入力文字列と比較する前にフレーズを長さで並べ替えます。一致するものがある場合は、入力文字列のその部分を削除または変更し、より短い文字列がその一致を上書きしないようにします。

+0

ありがとう@abergerそれは実際にはとても良いアイデアです。残念ながら、私は多次元assoc配列をusort()でソートすることはできません。 – Dan

+0

@Danそのデータ構造に限定されている理由はありますか?私はPHPについてよく知らないので、そこには使えません。 – aberger

+0

私は謙虚に、dbにある事前定義されたフレーズとユーザー入力を比較するより良い方法を考えることができません。まず、それらをダウンロードして配列に格納して検索処理を高速化し、それらのフレーズを自然言語のユーザー入力と比較します。それに基づいて、コードは特定のトピックに特化した特有のモジュールに切り替わります。 – Dan

関連する問題