言語処理に取り組んでいます。私は文字列を受け取る(例えば、音声認識から)。この文字列には、というコマンドが含まれています。です。私は自分のシステムをまとめましたが、私はそれのためのアルゴリズムを理解することができません(私はプログラミングとPythonに慣れていません)。文に基づいてネストされた辞書の関数を見つける
簡単例:
received_string = 'I want to turn on machine'
# idea dictionary in dictionary
# commands
def function1():
pass
def function2():
pass
commands = \
{
'I want to turn on ': {
'machine': function1,
'lights': function2
},
'Open the ': {
#####
#####
}
}
だから基本的に私は、「私は、マシンの電源をオンにしたい」は、例えば受け取ります。 "私は有効にしたい"というコマンドは、いくつかのオブジェクトの1つに適用することができます。私はcommands
辞書の辞書にこれらのオブジェクトを保存したいと思います。 &が「私はマシンをオンにしたい」という処理を行う巧妙なアルゴリズムを実装し、「マシンをオンにしたい」というオブジェクトを見つけ、function1()
を実行することが可能ですか?
私は本当に文字列の最後の単語をカットして検索するアルゴリズムを持っていないと思います。その理由は、質問などで辞書を欲しがっており、それを切るのにポイントがないからです。実際に私は本当に複雑なシステムを望んでおり、コマンドと異なるオブジェクトを持つこの辞書は私の進歩を妨げています。私は、「マシンをオンにしたい」と「ライトをオンにしたい」の2つの独立したコマンドを作成するという解決策があることは知っていますが、専門家ではなく、実用的ではないのですか?
ありがとうございました。それははるかに良いアイデアだ - 辞書キーと文字列とをキーで比較すること。私はあなたの解決策を試します – Martin
問題はありませんが、私は、文字列が単純なプログラミングの観点から、特定の部分文字列を含んでいるかどうかを調べるよりも大きな文字列に部分文字列が含まれているかどうかを調べる方が一般に簡単です。 – tmwilson26