8

私は学士号を取得するために、実際の家をシミュレートするだけのスマート ホーム ソフトウェアを作成していますが、プロジェクトの NLP 部分で立ち往生しています。アイデアは、クライアントに音声入力を聞いてもらい (既に完了)、それをテキストに変換して (完了)、それをサーバーに送信することです。

したがって、すべての入力はかなり短くなります (「ポーチのライトをオンにしてください」など)。これに基づいて、どのオブジェクトをどのように動作させるかを決定したいと思います。そこで、ある程度効率的なものを書き上げるために、やるべきことをいくつか思いつきました。

  1. 不要な言葉を取り除く (前の例の「お願いします」と「その」は、何をする必要があるかの意味を変える言葉ではありません。しかし、「明かりを消しください」と言った場合、「私の」にはかなり重要な意味)。
  2. 同義語に対処します(「ライトをオンにする」は「ライトを有効にする」と同じことを行う必要があります-これはばかげた例だと思います)。唯一の選択肢は、ある種の辞書 (おそらく XML) を用意し、家の中の特定のオブジェクトの可能な単語のリストを用意することだと思います。
  3. 動詞と主語の検出。「オンにする」は動詞で、「ライト」は主語です。これを検出する良い方法が必要です。
  4. 一般的な実装。これらは通常、アルゴリズムの観点からどのように開発されますか? スマート ホームで NLP に関する記事を 1 つだけ見つけましたが、これは非常にあいまいでした (そして英語が下手でした)。どんなリンクでも大歓迎です。

質問が十分にユニークであることを願っています(SOに関するNLPの質問を見たことがありますが、実際には役に立ちませんでした)。

4

3 に答える 3

6

NLP の問題に費やす時間があまりない場合は、自然言語の文を JSON にマッピングする Wit API ( http://wit.ai ) を使用できます。

ここに画像の説明を入力

これは機械学習に基づいているため、ニーズに合わせて構成するには、文例 + JSON 出力を提供する必要があります。特に、音声読み上げエンジンが文法を壊す間違いを犯す可能性があるため、文法ベースのアプローチよりもはるかに堅牢である必要があります (ただし、機械学習モジュールは文の意味を取得できます)。

于 2013-09-10T20:59:53.623 に答える
3

最初に、可能なすべてのコマンドのリストを作成します (すべての可能なコマンドの言い方ではありません。実際の機能自体だけです。「キッチン ライトをオンにする」と「キッチンのライトをオンにする」は同じコマンドです)。スマートハウスが利用できる実際の機能。これらの数は数百以下のオーダーで離散的に存在すると思います。それぞれにある種の識別コードを割り当てます。

あなたの仕事は、次の入力をマッピングすることになります。

  • 英文の一文
  • スピーカーの位置
  • 時刻、曜日
  • その他の入力データ

各コマンドの信頼レベル (0.0 ~ 1.0) の出力に。

信頼度が調整可能なしきい値 (0.70 など) を超えている場合、システムは最適一致コマンドを実行します。

ここから機械学習アプリになります。いくつかの異なるアプローチがあります (さらに、入力の特徴に基づいてそれらを競合させることにより、アプローチを組み合わせることができます)。

まず、スタンフォード大学のジュラフスキー/マニングの NLP の本に取り組みます。これは、現在の NLP アルゴリズムの良い調査です。

そこから、マッピングを機械学習する方法についていくつかのアイデアが得られます。さらに重要なのは、自然言語を機械学習用の数学的構造に分解する方法です。

テキストが意味的に分析されたら、最初に試す最も単純な ML アルゴリズムは、教師ありアルゴリズムです。トレーニング データを生成するには、通常の GUI を使用し、コマンドを話してから、対応するコマンドを手動で押します。これにより、単一の教師付きトレーニング ケースが形成されます。これを大量に作ってください。テスト用にいくつか取っておきます。また、他の人が助けることができるので、それは単純作業でもあります。これらを ML アルゴリズムのトレーニング セットとして使用できます。

于 2013-09-10T00:24:06.170 に答える
3

私はNLPのパイオニアではありませんが(大好きですが)、これを試してみましょう. あなたのプロジェクトでは、スタンフォードパーサーを使用することをお勧めします

  1. 問題の定義から、動詞と名詞以外は必要ないと思います。SP は POS (品詞タグ) を生成します。これを使用して、必要のない単語を切り詰めることができます。

  2. このため、あなたが今考えているものよりも良い選択肢は考えられません。

  3. これについても、SP の文法依存構造を使用できます。この問題に取り組むには、それで十分であると確信しています。

  4. これがあなたの研究の部分があるところです。GD タグと POS タグを使用して、問題のアルゴリズムを考え出すのに十分なパターンを見つけることができると思います。どのアルゴリズムも、入力文のすべてのセット (構造化されたものと構造化されていないもの) を処理するのに十分効率的であることに疑いの余地はありませんが、85% 以上の精度があれば十分です。

于 2013-09-09T21:56:49.277 に答える