示例#1
0
def main():
    if len(sys.argv) != 2:
        print "Usage:", sys.argv[0], " filename "
        print
        return

    file = sys.argv[1]
    bot = brain.Brain("brain.db")
    seg = WordSeg()

    for text in splitFile2Sentence(file):
        terms = seg.splitTerms(text)
        request = ' '.join(terms)
        print("QOS: %s" % request.encode("utf-8"))
        # get the answer
        response = bot.reply(request).encode("utf-8")
        print("BOT: %s" % response)
        # learn something new
        bot.learn(request)

    print("BOT: %s" % u'再见地球!')
示例#2
0
def main():
    if len(sys.argv) != 2:
        print "Usage:", sys.argv[0], " filename "
        print
        return

    file = sys.argv[1]
    bot = brain.Brain("brain.db")
    seg = WordSeg()

    for text in splitFile2Sentence(file):
        terms = seg.splitTerms(text)
        request = ' '.join(terms)
        print("QOS: %s" % request.encode("utf-8"));
        # get the answer
        response = bot.reply(request).encode("utf-8")
        print("BOT: %s" % response);
        # learn something new
        bot.learn(request)


    print("BOT: %s" % u'再见地球!');
示例#3
0
def main():
    #logging.basicConfig(level=logging.DEBUG)
    bot = brain.Brain("brain.db")
    seg = WordSeg()

    quits = [u'再见', u'拜拜', u'quit', u'byebye']
    # it need word segmentation
    text = u"我说中文。"

    while True:
        if text in quits:
            break;
        terms = seg.splitTerms(text)
        request = ' '.join(terms)
        # get the answer
        response = bot.reply(request).encode("utf-8")
        print("BOT: %s" % response);
        # learn something new
        bot.learn(request)
        # next run let's input
        text = raw_input('QOS:').decode(sys.stdin.encoding)

    print("BOT: %s" % u'再见地球!');
示例#4
0
def main():
    #logging.basicConfig(level=logging.DEBUG)
    bot = brain.Brain("brain.db")
    seg = WordSeg()

    quits = [u'再见', u'拜拜', u'quit', u'byebye']
    # it need word segmentation
    text = u"我说中文。"

    while True:
        if text in quits:
            break
        terms = seg.splitTerms(text)
        request = ' '.join(terms)
        # get the answer
        response = bot.reply(request).encode("utf-8")
        print("BOT: %s" % response)
        # learn something new
        bot.learn(request)
        # next run let's input
        text = raw_input('QOS:').decode(sys.stdin.encoding)

    print("BOT: %s" % u'再见地球!')
示例#5
0
	def __init__(self):
		self.wordseg = WordSeg();
		self.tag_objs = list();

		# mark tag objs #
		self.tag_objs.append(M());
		self.tag_objs.append(C());
		self.tag_objs.append(F());
		self.tag_objs.append(X());
		# extend tag objs #
		self.tag_objs.append(X1());
		self.tag_objs.append(M1());
		self.tag_objs.append(F1());
		self.tag_objs.append(Z());
		# calc tag obj #
		self.tag_objs.append(PM());
		self.tag_objs.append(Calc());
示例#6
0
class Mager:
	def __init__(self):
		self.wordseg = WordSeg();
		self.tag_objs = list();

		# mark tag objs #
		self.tag_objs.append(M());
		self.tag_objs.append(C());
		self.tag_objs.append(F());
		self.tag_objs.append(X());
		# extend tag objs #
		self.tag_objs.append(X1());
		self.tag_objs.append(M1());
		self.tag_objs.append(F1());
		self.tag_objs.append(Z());
		# calc tag obj #
		self.tag_objs.append(PM());
		self.tag_objs.append(Calc());

	def init(self,dtype):
		try:
			step = 1;
			dfiles = config.dfiles[dtype];
			for obj in self.tag_objs:
				obj.load_data(dfiles[str(step)]);
				step = step + 1;
		except MyException as e:
			raise e;

	def encode(self,inlist):
		struct = collections.OrderedDict();
		struct['text'] = inlist;
		struct['taglist'] = list();
		try:
			struct['inlist'] = self.wordseg.tokens(inlist);
			for obj in self.tag_objs:
				obj.init();
				obj.encode(struct);
			return struct;
		except MyException as e:
			res = common.get_dicstr(struct);
			res = e.value + '\n' +res;
			raise MyException(res);

	def deal_data(self,fname,action,data):
		try:
			for obj in self.tag_objs:
				ret = obj.deal_data(fname,action,data);
				if ret == common.PASS:
					continue;
				elif not ret is None:
					return ret;
		except MyException as e:
			raise e;

	def sp_deal(self,action,word):
		if self.wordseg is None:
			raise MyException('the word seg obj is none');
		try:
			self.wordseg.deal_word(action,word);
		except MyException as e:
			raise e;

	def write_file(self):
		try:
			step = 1;
			dfiles = config.dfiles[config.dtype];
			for obj in self.tag_objs:
				obj.write_file(dfiles[str(step)]);
				step = step + 1;
			self.wordseg.write_file();
		except MyException as e:
			raise e;