From ae7b469676e6420ba66395c0150b5f40e8dc18c8 Mon Sep 17 00:00:00 2001 From: xfnw Date: Thu, 11 Nov 2021 19:43:03 -0500 Subject: [PATCH] use multiple words in sentance generation when cheapie --- modules/nlp.py | 30 ++++++++++++++++++++---------- 1 file changed, 20 insertions(+), 10 deletions(-) diff --git a/modules/nlp.py b/modules/nlp.py index f8a85f0..6d9ce42 100644 --- a/modules/nlp.py +++ b/modules/nlp.py @@ -2,24 +2,34 @@ from bot import * import dataset, random, time, re +def get(l,i): + try: + if i <= len(l) and i >= 0: + return l[i] + else: + return '' + except IndexError: + return '' + async def rec(self, m): prew = shared.db['prew'] noch = shared.db['noun'] beg = shared.db['beg'] end = shared.db['end'] - pre = '' + words = m.split(' ') - if words[0] == 'admin': + + if words[0] == 'admin' or len(words) < 2: return - for w in words: - if pre == '': - beg.insert(dict(word=w)) - else: - prew.insert_ignore(dict(pre=pre, pro=w),['id']) - pre = w + + beg.insert(dict(word=words[0])) + end.insert(dict(word=words[-1])) + + for w in range(len(words)): + if w > 0: + prew.insert_ignore(dict(pre3=get(words,w-3), pre2=get(words,w-2), pre=get(words,w-1), pro=get(words,w), pro2=get(words,w+1), pro3=get(words,w+2)),['id']) noch.insert(dict(word=w)) - end.insert(dict(word=pre)) - + async def getNoun(self, words, c): if c in shared.cstate: oldnoun = shared.cstate[c]