Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import re
- from types import NoneType
- def parse_mapping(line):
- query_pattern, response_template = line.split('|', 1)
- query_pattern = '\\s+'.join(query_pattern.split())
- query_pattern = query_pattern.replace('<', '(?P<')
- query_pattern = query_pattern.replace('>', '>\\w+)')
- response_template = response_template.strip()
- response_template = response_template.replace('<', '%(') # I honestly don't fucking
- response_template = response_template.replace('>', ')s') # care anymore...
- return (re.compile(query_pattern, re.IGNORECASE), response_template)
- def get_response(query, responses):
- response = None
- for query_pattern, response_template in responses:
- tokens = query_pattern.match(query)
- if type(tokens) is not NoneType:
- response = response_template % tokens.groupdict()
- break
- return response
- sample_responses = []
- sample_responses.append(parse_mapping('my name is <name> | Hello, <name>!'))
- sample_responses.append(parse_mapping('i like <unk_1> and <unk_2> | Oh yeah? Well I like <unk_1>, but absolutely hate <unk_2>... fuck <unk_2>!'))
- get_response('my name is puxlit', sample_responses)
- get_response('i like Python and AI', sample_responses)
Add Comment
Please, Sign In to add comment