Python中的虚拟助手

时间:2017-06-07 12:27:13

标签: python

我正在尝试用Python编写虚拟助手,但我希望它更“人性化”。我希望她解释我的问题,而不是与字符串比较。 所以,我怀疑是:

要涵盖同一请求的所有变体,例如“明天下雨吗?”并且“明天我需要一把雨伞?”我必须将每个请求放在一个If语句中? 例如:

if audio == "Will rain tomorrow?":
    checkWeather()...

if audio == "Tomorrow I'll need an umbrella?":
    checkWeather()...

another if statements...

这是伟大的虚拟助手(Siri,Google Now等)编码的方式,还是有一种方法可以覆盖变化,而不会针对每种可能性重复条件声明?是一种建模代码或我需要知道的东西的技术吗?

2 个答案:

答案 0 :(得分:1)

你应该做的第一件事是看看NLTK并了解自然语言处理。了解标记化和标记,我想你可能会到达某个地方。

此链接可能包含一些有趣的主题:

http://xrds.acm.org/blog/2017/01/build-natural-language-processing-based-intelligent-assistant-using-python-easy/

但请注意,您要做的事情并非易事!

答案 1 :(得分:-1)

您可以在python中自己编写代码。代码如下。

#If you want to make hello/hi, etc you can do it like this
def take_query(q):
    if 'hello' or 'hi' in q:
        return 'Hey there!'
    elif 'weather' or 'temperature' in q:
        weather = #use some api, etc or scraping, etc to fetch it...
        return weather
# I recommend using wolframalpha
#pip install wolframalpha

基本上可以使用它来使其成为真正的人形助手

#use it like this in while loop...
while 1:
    result = take_query(input('Please say something... : '))
    print(result)