0

私は現在、SiriServer のプラグインをプログラムする方法を学んでおり、自分の電話を使ってホーム オートメーションを少し作成したいと考えています。私は、プラグインを一致させて実行するために、テキストのカバーされたスピーチをプログラムする方法を理解しようとしています。

たとえば、次のようにフレーズを短くする方法を学びました。

@register("en-US", ".*Start.*XBMC.*")

私が理解していれば、2つの単語をランダムに検索しています。XBMC Start と言えば、おそらくそれも機能するでしょうが、wolframalpha で作業を開始するときは、もう少し具体的に説明する必要があります。

たとえば、「トロントの天気はどうですか?」という音声テキストは、どういうわけか次のようにつながります。

@register("en-US", "(what( is|'s) the )?weather( like)? in (?P<location>[\w ]+?)$") 

この 2 つを結び付けることができる、その行のすべての余分な記号は何を意味するのでしょうか? いくつかのアイデアをいじってみましたが、思い通りに機能するものはないようです。どんな助けでも大歓迎です、ありがとう!

4

1 に答える 1

0

あなたが提供した例を分解しますので、それが良いスタートになることを願っていますが、python regex を検索すると、より詳細な情報が得られます。括弧は、残りの式による個々の項目ではなく、囲まれた項目を結果として表示するように設定します。パイプは「または」を意味し、疑問符はこの部分が存在する場合と存在しない場合があることを意味し、場所のグループは、入力のこの時点で提供される入力として変数「場所」を設定する正規表現です。末尾の $ は、これで文が完成することを意味します。.* は、入力のこの場所にあるものは何でも受け入れられることを意味しますが、無視する必要もあります。うまくいけば、それは役に立ちます。

于 2013-08-13T22:39:11.697 に答える