我正在使用python中的语音文本程序在我的计算机上运行命令。我的问题是我不确定使用正则表达式是否是处理命令的最佳方法。命令分为两类问题和操作,我检查第一个单词是否可以拆分。但是,我不知道如何在此之后过滤,例如给定命令
在上午五点半设置闹钟
我首先将第一个单词过滤为动作并移至我的doActions函数
def doAction(str2):
words = str2.split()
if words[0] == 'set':
a = re.compile(' set an alarm for (\w+ \w*) (am|pm)')
m = a.match(str2)
if m:
print(m.group(1), m.group(2))
setAlarm(m.group(1), m.group(2))
else:
print(str2)
这适用于这一个命令,但似乎添加更多诸如
的效率非常低开始"程序"
3个小时叫醒我
进入睡眠状态几个小时
...
有没有更好的方法来实现这一点,这将更容易添加,或者这已经是一个比我意识到的更好的方法。我对正则表达式很陌生,所以对于我尝试的内容可能有更好的表达方式。
行动
转向"方向"音量 发出哔哔声"数字" "单元" 每个"号码"发出哔哔声"单元" "数"次转"开/关" "装置"
开始"程序"
在"小时"叫醒我"分钟&#34 ;? "今天/明天"
叫醒我"今天/明天"在"小时" "分钟"
叫醒我"号码" "单元"
叫醒我"号码" "单元"和"数字" "单元"
text" person"
我想我可能会为他们制作正则表达式,但他们认为他们可能是资源密集型的。如果我要使用它们,我是否应该在函数外部构建和编译表达式?