2017-10-11 6 views
1

Ich bin gerade in die Codierung und habe eine Abfrage. Ich schreibe ein Skript für einen Chatbot namens Sasha, aber ich finde keine Methode, um das Problem zu lösen, dass nicht alle Wörter in einem Satz zusammenpassen. Sagen, ich möchte es bitten, das Datum anders zu überprüfen, als nur "Datum" zu sagen. Wie würde ich das machen? Jede Hilfe wird geschätzt.So suchen und drucken Sie Elemente in der Eingabe, Python?

Database =[ 

     ['hello sasha', 'hey there'], 

     ['what is the date today', 'it is the 13th of October 2017'], 

     ['name', 'my name is sasha'], 

     ['weather', 'it is always sunny At Essex'], 

     ] 

while 1: 
     variable = input("> ") 

     for i in range(4): 
       if Database[i][0] == variable: 
         print (Database[i][1]) 

Antwort

0

könnten Sie dict verwenden Eingang zur Karte zu beantworten

Update: regex fügen Sie den Eingang passen, aber ich glaube, Ihre Frage eher wie Frage NLP.

import re 
Database ={ 

     'hello sasha': 'hey there', 

     'what is the date today':'it is the 13th of October 2017', 

     'name': 'my name is sasha', 

     'weather': 'it is always sunny At Essex', 

     } 

while 1: 
     variable = input("> ") 
     pattern= '(?:{})'.format(variable) 
     for question, answer in Database.iteritems(): 
      if re.search(pattern, question): 
       print answer 

Ausgang:

date 
it is the 13th of October 2017 
0

Eine sehr rudimentäre Antwort in dem Satz ein Wort zu prüfen wäre:

while 1: 
    variable = input("> ") 

    for i, word in enumerate(["hello", "date", "name", "weather"]): 
     if word in input.split(" "): # Gets all words from sentence 
      print(Database[i][1]) 


    in: 'blah blah blah blah date blah' 
    out: 'it is the 13th of October 2017' 
    in: "name" 
    out: "my name is sasha" 
1

Sie können 'in' verwenden überprüfen, ob in etwas eine Liste, so: (in Pseudocode)

list = ['the date is blah', 'the time is blah'] 

chat = input('What would you like to talk about') 

if chat in ['date', 'what is the date', 'tell the date']: 
    print(list[0]) 

elif chat in ['time', 'tell the time']: 
    print(list[1]) 

etc. 

Sie sollten darüber nachdenken, welche Wörterbücher Ihnen helfen würden.

Verwandte Themen