Example #1
0
def postprocess(sent):
    morphs = api.morph(sent)['morphs']
    query = list()
    for morph in morphs:
        query.append(u'{}:{}'.format(morph['norm_surface'], morph['pos']))
    morphs = api.rewrite_morph(rewrite_rule, query)['morphs']
    sent = u''
    for morph in morphs[1:-1]:
        sent += u':'.join(morph.split(u':')[:-1])
    return sent
Example #2
0
def preprocess(text):
    #TODO とりあえず最初の文の最初の名詞を利用, なければ最初の形態素
    sentences = api.sentences(text)['sentences']
    morphs = api.morph(sentences[0])['morphs']
    for morph in morphs:
        if '名詞' in morph['pos']:
            seed = morph
            break
    else:
        seed = morphs[1]
    return seed
Example #3
0
def generate_seed(text):
    max_length = 0
    for sentence in api.sentences(text)['sentences']:
        morphs = api.morph(sentence)['morphs']
        for morph in morphs:
            if u'固有' in morph['pos'] or u'名詞' in morph['pos']:
                seed = morph
                break
            else:
                seed = morphs[1]
    return seed
Example #4
0
def scenario_based(text):
    sent = api.sentences(text)
    text = []
    for s in sent['sentences']:
        morphs = api.morph(s)
        query = list()
        for morph in morphs['morphs']:
            query.append(u'{}:{}'.format(morph['surface'], morph['pos']))
    texts = api.trigger(scenario_file,query)
    for t in texts['texts']:
        text.append(t)
    if len(text)>0:
        r = random.randint(0,len(text)-1)
        return text[r]
    return None
Example #5
0
    print json.dumps(reps, ensure_ascii=False, indent=4)

    for rep in reps["replies"]:
        print "======================================================"
        if reps["grade"] == 0:
            scenario_file = "scenario_c09.txt"
        elif reps["grade"] == 1:
            scenario_file = "scenario_c09.txt"
        else:
            scenario_file = "scenario_c09.txt"
        sent = api.sentences(rep["text"])
        text = []
        for s in sent["sentences"]:
            print "-------------------------------------------------------"
            print s
            morphs = api.morph(s)
            print json.dumps(morphs, ensure_ascii=False, indent=4)
            query = list()
            for morph in morphs["morphs"]:
                query.append(u"{}:{}".format(morph["surface"], morph["pos"]))
            print json.dumps(query, ensure_ascii=False, indent=4)
            texts = api.trigger(scenario_file, query)
            print json.dumps(texts, ensure_ascii=False, indent=4)
            for t in texts["texts"]:
                text.append(t)
                print t
        if len(text) > 0:
            r = random.randint(0, len(text) - 1)
            print "++++++++++++++++++++++++++++++++++++++"
            print str(len(text))
            print text[r]
Example #6
0
    reply_text = u''
    for morph in api.markov_chain(seed)['morphs'][1:-1]:
        reply_text += u':'.join(morph.split(u':')[:-1])#morph.split(':')[0]
    return postprocess(reply_text)

def reply_one(mention_id, user_name, text):
    reply_text = twitter_based(text)
    api.send_reply(mention_id, user_name, reply_text)

if __name__ == '__main__':
    #api = get_api()
    api = api.API('https://52.68.75.108', 'secret', 'js2015cps')
    #rewrite_rule = 'team2_rewrite_{}.txt'.format(current_state)
    rewrite_rule = 'rule_test.txt'
    text = "どうして人間は魂の在処にこだわるの?"
    for morph in api.morph(text)['morphs']:
        print morph['norm_surface'] + "\t" + morph['pos']
    print markov_based(text)
    print twitter_based(text)

#result = api.get_reply()
#current_state = result['grade']
#replies = result['replies']
#for sentence in api.sentences('おはよう。こんにちは。')['sentences']:
#    print sentence

#for tweet in api.get_reply()['replies']:
#    print tweet['mention_id']
#    print tweet['user_name']
#    print tweet['text']