コード例 #1
0
def main():
    english = English()
    idiolect = Idiolect()
    loader = ArgLoader()
    fn = 'tests/english.yaml'
    ee = yaml.load(open(fn))
    for e in ee:
        text = e['text']
        print
        print text
        structure = e['structure']
        dsen = DeepSentence.load(structure, loader)

        new_structure = dsen.dump()
        assert structure == new_structure

        new_text = english.say(dsen, idiolect)
        assert text == new_text

        ss = []
        recog = english.recognize(unicode(text))
        assert recog.dsens
        for dsen in recog.dsens:
            ss.append(json.dumps(dsen.dump(), sort_keys=True, indent=4))

        s = json.dumps(new_structure, sort_keys=True, indent=4)
コード例 #2
0
ファイル: pzombie.py プロジェクト: knighton/babi
    def __init__(self, verbose=True):
        # Static state.
        self.english = English()

        # Dynamic state.
        self.reset()

        self.verbose = verbose
コード例 #3
0
ファイル: pzombie.py プロジェクト: knighton/babi
class PhilosophicalZombie(Agent):
    def __init__(self, verbose=True):
        # Static state.
        self.english = English()

        # Dynamic state.
        self.reset()

        self.verbose = verbose

    def reset(self):
        self.mind = Mind()
        self.self_uid = self.mind.new_user()

    def new_user(self):
        return self.mind.new_user()

    def put(self, from_uid, text):
        recog = self.english.recognize(text, verbose=self.verbose)
        delib = Deliberation(recog)

        if not delib.recognized.dsens:
            return delib

        for dsen in delib.recognized.dsens:
            r = self.mind.overhear(dsen, [from_uid], [self.self_uid])

            # Returns None if it rejected the input dsen.
            if not r:
                continue

            # Else, r.out contains the output, which may be None.
            # if r.out:
            #     delib.out = self.english.say(r.out)
            delib.out = r.text
            return delib

        # Enable this assert to require everything to be understood by the
        # system, including funky parses.  Useful for development.
        # assert delib.out is not None

        return delib