Added basic mockups

This commit is contained in:
Maciej Sobkowiak 2021-04-26 00:29:07 +02:00
parent 5d9165411a
commit 0de57cc830
6 changed files with 77 additions and 13 deletions

2
.gitignore vendored Normal file
View File

@ -0,0 +1,2 @@
/venv
__pycache__

18
DialoguePolicy.py Normal file
View File

@ -0,0 +1,18 @@
from UserActType import UserActType
from UserAct import UserAct
class DP:
"""
Moduł, który tworzy reprezentację tekstową aktu systemowego wybranego przez taktykę dialogu.
Wejście: Akt systemu (rama)
Wyjście: Tekst
"""
def __init__(self):
pass
def chooseTactic(self, frameList=None):
if frameList is not None:
systemAct = [0]
return systemAct

19
DialogueStateTracker.py Normal file
View File

@ -0,0 +1,19 @@
from UserActType import UserActType
from UserAct import UserAct
class DST:
"""
Moduł odpowiedzialny za śledzenie stanu dialogu. Przechowuje informacje o tym jakie dane zostały uzyskane od użytkownika w toku prowadzonej konwersacji.
Wejście: Akt użytkownika (rama)
Wyjście: Reprezentacja stanu dialogu (rama)
"""
def __init__(self):
self.frameList = []
def addFrame(self, frame):
self.frameList.append(frame)
def getFrames(self):
return self.frameList

View File

@ -0,0 +1,15 @@
class NLG:
"""
Moduł, który tworzy reprezentację tekstową aktu systemowego wybranego przez taktykę dialogu.
Wejście: Akt systemu (rama)
Wyjście: Tekst
"""
def __init__(self):
pass
def toText(self, systemAct):
if(systemAct == [0]):
return "Witaj, nazywam się XXX"
else:
return "???"

View File

@ -4,6 +4,11 @@ import re
class NLU: class NLU:
"""
Moduł odpowiedzialny za analizę tekstu. W wyniku jego działania tekstowa reprezentacja wypowiedzi użytkownika zostaje zamieniona na jej reprezentację semantyczną, najczęściej w postaci ramy.
Wejście: Tekst
Wyjście: Akt użytkownika (rama)
"""
def __init__(self): def __init__(self):
self.__actParsePatternList = [ self.__actParsePatternList = [
@ -31,16 +36,3 @@ class NLU:
if match: if match:
return UserAct(actType, actParams) return UserAct(actType, actParams)
return UserAct(UserActType.INVALID) return UserAct(UserActType.INVALID)
if __name__ == "__main__":
nlu = NLU()
a = nlu.parseUserInput("czesc")
b = nlu.parseUserInput("jak masz na imie")
c = nlu.parseUserInput("zegnaj")
print(a)
print(b)
print(c)

18
main.py Normal file
View File

@ -0,0 +1,18 @@
from NaturalLanguageUnderstanding import NLU
from NaturalLAnguageGeneration import NLG
from DialogueStateTracker import DST
from DialoguePolicy import DP
if __name__ == "__main__":
nlu = NLU()
dst = DST()
nlg = NLG()
dp = DP()
userFrame = nlu.parseUserInput("czesc")
dst.addFrame(userFrame)
systemAct = dp.chooseTactic(dst.getFrames())
text = nlg.toText(systemAct)
print(text)