利用飞讯语义识别API 获取微小说所有角色名

利用飞讯语义识别API 获取微小说所有角色名

1、代码:


#!/usr/bin/python
# -*- coding: UTF-8 -*-

import os, sys
import math
import time
import urllib.request
import urllib.parse
import json
import hashlib
import base64
names = {}
relationships = {}
lineNames = []
str0 = ''
tempStr = ''
jj = 0
def readText():
    with open("novel.txt", "r",encoding='UTF-8') as f:
        str0 = ''.join(f.readlines()) 
        str0 = ''.join(str0.split('\n'))
        
        d0 = 0
        d1 =math.ceil(len(str0)/150)
        while 1:
            if len(str0) >150 :
                str1 = str0[0:150]
                str0 = str0[150:]
                d0 += 1
                print('抓取进度:',d0,'/',d1)
            elif len(str0) > 0:
                str1 = str0
                str0 = ''
                d0 += 1
                print('抓取进度:',d0,'/',d1)
            else:
                print('抓取进度:','抓取成功!')
                break
            jiansuo(str1)
    pass
    return

	
def jiansuo(Text):
    global jj
    body = urllib.parse.urlencode({'text': Text}).encode('utf-8')
    
    url = 'http://ltpapi.xfyun.cn/v1/' 
    api_key = '*********************'
    param = {"type": "dependent"}

    x_appid = '*******'
    x_param = base64.b64encode(json.dumps(param).replace(' ', '').encode('utf-8'))
    ss = ['ner','cws']
    n = 0
    temp = [0,0]
    names = []
    for i in ss:
        x_time = int(int(round(time.time() * 1000)) / 1000)
        x_checksum = hashlib.md5(api_key.encode('utf-8') + str(x_time).encode('utf-8') + x_param).hexdigest()
        x_header = {'X-Appid': x_appid,
                    'X-CurTime': x_time,
                    'X-Param': x_param,
                    'X-CheckSum': x_checksum}
        
        req = urllib.request.Request(url + i, body, x_header)
        result = urllib.request.urlopen(req)
        result = result.read()
        js0 =  json.loads(str(result,'utf-8'))
        print(js0)
        if i =='ner':
            temp[n] = js0['data']['ner']
        else:
            temp[n] = js0['data']['word']
        n += 1
    n = 0
    for j  in range(len(temp[0])):
        if(temp[0][j] != 'O'):
            names.append(temp[1][j])
        pass
    print('----------ing--------------')
    with open('names.txt','a+',encoding='UTF-8') as f1:
        for sss in names:
            f1.write(sss)
            f1.write('、')
            jj += 1
            if jj > 10:
                f1.write('\n')
                jj = 0
            pass

    pass
    return


if __name__ == '__main__':
    readText()
    print('【成功!】')

2、示例文档:


#novel.txt
元朝末年,群雄逐鹿,武林动荡不安,江湖中流传着“武林至尊,宝刀屠龙,号令天下,莫敢不从,倚天不出,谁与争锋”,的传说,武林中人对屠龙刀和倚天剑都趋之若鹜。 此时正值初春,俞岱岩顾不上欣赏江南的秀美景色,师父九十岁寿辰日渐临近,他日夜兼程往回赶,想尽快回到武当山,俞岱岩是武当派张三丰七个弟子中的老三,他奉师父之命下山惩奸除恶。 今天是屠龙刀出炉的日子,长白三禽日夜守护着炼刀炉,江湖各门派都严密关注着屠龙刀的进展,一身披白袍武士想捷足先登抢走屠龙刀,长白三禽拼死反抗,把宝刀重新插回炉子里,白袍和他们三人打得难分难解,其中一个人被打翻在炉子中,当场被烧死,首领趁机把炼刀炉摧毁,核查剩余两个人展开激烈厮杀。 俞岱岩从此路过,他立刻出手相助,可白袍误以为俞岱岩也是来抢刀,就使出少林金刚指绝招,他手段狠毒,招招致命,长白三禽之一的老者抱起宝刀拼命反抗,被打落水中。湖中突然跳出来四个海沙派高手,用盐毒把老者的全身灼伤,白袍趁机跳落水中,海沙派弟子用铁钩子分别勾住老者的四肢,逼他交出屠龙刀,否则就把他分尸,俞岱岩看不下去,立刻出手相救,并使出武当绝技把那四个人打跑,救下老者。 今天是武当派掌门张三丰出关的日子,徒弟们早早等在门口,只有俞岱岩迟迟未归,六大弟子合作一幅画作为祝寿的礼物,张三丰很满意。俞岱岩搀扶老者来到一间破庙,并给他一颗天心解毒丸,并劝他尽快带着宝刀去海沙派换解药,否则他的生命将危在旦夕,可老者誓死也要守护宝刀,他一口气喝下一整瓶的丸药,还提出和俞岱岩平分屠龙刀的好处,俞岱岩婉言谢绝,他刚想离开,就听到外面有人追来,紧接着一个个盐毒药包扔进来,老者被烧得大呼小叫,他把屠龙刀深深插进墙里,俞岱岩赶忙躲起来,海沙派弟子冲进破庙,逼老者交出屠龙刀,老者断然拒绝,被当场杀死。 天鹰教殷野王带人随后追来,逼海沙派头领交出宝刀,可他不知道宝刀的下落,殷野王就放出飞鹰啄瞎了那个人的眼睛,可那个人依旧拿不出屠龙刀,殷野王恼羞成怒,把海沙派的人全部杀死,然后带队离开。俞岱岩目睹了这一幕,他觉得屠龙刀是不祥之物,想回武当交给师父定夺。俞岱岩很快雇到一艘小船,小船行至半路,迎面撞上一条大船,俞岱岩凭借敏捷的身手和高超的轻功顺利跳到大船上,殷野王立刻现身,逼俞岱岩交出屠龙刀,俞岱岩坚决不干,他就用蚊形针把俞岱岩打伤,他刚想把俞岱岩杀死,殷野王的妹妹殷素素及时站出来阻止,并出两千两银子拜托龙门镖局的镖师把俞岱岩护送回武当山。 龙门镖局都大锦和手下两个镖师以及兄弟们日夜兼程,终于来到武当山下,白袍等六人冒充张三丰的六个弟子把俞岱岩接走了,张翠山随后来找俞岱岩,迎面碰上都大锦,才知道有人冒充武当弟子把他接走了。白袍用少林大力金刚指把俞岱岩四肢筋脉全部打断,逼他说出屠龙刀的下落,可他始终一言不发,最后被扔在树林里,张翠山随后赶到,急忙抱着俞岱岩跑回武当山,张三丰用内力逼出俞岱岩体内的毒针。 龙门镖局都大锦来武当山赔罪,张翠山一气之下把都大锦打翻在地,都大锦连连解释是受姓殷的人委托,如果俞岱岩死了,龙门镖局也将被诛杀满门,张翠山不依不饶,对都大锦大打出手,都大锦的口袋里掉出来一个金元宝,上面有两个深深的指印,张翠山因此断定都大锦和少林天鹰派的人合伙谋害俞岱岩,张三丰立刻派老六殷梨亭和老七莫声谷跟随都大锦回临安,帮忙保护龙门镖局的家小,都大锦婉言谢绝。 张三丰派宋远桥和张翠山去少林寺查明原委,还反复叮嘱他们要以礼相待,小心行事,张翠山还想去临安查那个姓殷的人,发誓要为俞岱岩报仇。张翠山来到龙门镖局的时候,发现都大锦的全家老小被灭门,都大锦还一息尚存,他认定张翠山是杀人凶手,少林弟子及时赶来,他们群起而攻之,张翠山拼命抵抗,少林弟子一个个中毒针而死,张翠山发现一个白衣少年,就对他紧追不舍,最后追到了一艘大船,没想到里面出来一个漂亮的姑娘,张翠山赶忙道歉,天上下起了毛毛细雨,姑娘送他一把雨伞,上面写了一句“斜风细雨不须归”,张翠山一语道破其中的含义,姑娘对他一见钟情,并主动说出自己姓殷,张翠山想起找龙门镖局护送俞岱岩的人也姓殷。
张翠山有很多问题想向殷素素核实,首先感谢她出资护送俞岱岩回武当,紧接着就提出了一连串的问题,殷素素一时不知道从何处说起,就请他到船舱里详谈,殷素素承认自己也看走了眼,她跟着都大锦他们来到武当山下,看到留个冒充武当弟子的人接走了俞岱岩,她就骑马追了上去,当面揭穿他们是假冒的,还和他们大打出手,殷素素不幸中了少林梅花毒镖,她回到临安就去龙门镖局要解药,却遭到都大锦和少林弟子的围攻,殷素素一气之下就把龙门镖局全部灭门。 张翠山还有一事不明,不明白都大锦为何认定他是凶手,殷素素只好承认她见到张翠山教训都大锦,逼都大锦拿出钱财赈济灾民,还扬言要杀他全家,殷素素对张翠山行侠仗义的做法心生佩服,就穿了一身和他一模一样的衣服,都大锦因此误以为张翠山是凶手。张翠山对殷素素心狠手辣的作为很不满,但还是决定帮殷素素疗伤解毒,否则她的胳膊会烂掉,殷素素断然拒绝,她觉得自己没错,是都大锦和少林寺那些弟子该死,还逼张翠山向她认错,张翠山和她据理力争,殷素素情愿一死也不需要他救,还狠狠打了张翠山一耳光,张翠山考虑再三,还是决定救殷素素。 经过张翠山的精心治疗,很快把殷素素手臂上的毒逼出来,张翠山和她告辞离开,殷素素对他依依不舍。天鹰教举行扬刀大会,江湖各路豪杰都来参加,张翠山路过也来看热闹,教主的女儿殷素素来到台上,向大家详细介绍了屠龙刀,并当场扬刀立威,宝刀削铁如泥,锋利无比,在成所有人都忍不住叫好,殷素素当众宣布从今以后再也没有海沙派,神拳门,巨鲸帮,江南只有一个天鹰教,而且江湖各路门派都归属于天鹰教,接受他们的差遣,他们誓死不从,殷素素立刻下令,白堂主挥舞着屠龙刀所向披靡,把那些反对派全部制服。 张翠山突然走上舞台,苦苦逼问屠龙刀的来历,殷素素谎称从元兵手里抢来的。就在这时,金毛狮王谢逊突然飞身上台,抢走了屠龙刀,殷素素拼命去抢,可她根本不是谢逊的对手,三拳两脚就被打翻在地,张翠山及时冲上来抱住她。海沙派帮主元光波第一个站出来支持谢逊,可谢逊根本不领情,还对他阳奉阴违的做法破口大骂,还一一历数了元光波的罪行,谢逊还当面揭穿神拳门和巨鲸帮的丑事,让三个门派的首领一起上来和他对打,元光波和另外两个首领一起冲上来攻击谢逊,谢逊以迅雷不及掩耳之势把他们三个全部杀死。 张翠山指责谢逊滥杀无辜,可他根本不服气,觉得自己是行侠仗义,还扬言要把岛上所有的人都杀了灭口,担心此间抢刀的事被传到江湖上,谢逊误以为武当派也想要屠龙刀,张翠山明确表示这把刀和俞岱岩受伤有关,他必须查明原委,谢逊要和张翠山比试一下,张翠山不顾殷素素的阻拦,坚持要和谢逊决战,而且如果他赢了,谢逊必须答应他一个条件,张翠山悄悄提醒殷素素趁机逃走,可她不会丢下张翠山。张翠山和谢逊比赛写字,并运用张三丰教他的内功和轻功在地上写下了“武林至尊,宝刀屠龙,号令天下,莫敢不从,倚天不出,谁与争锋”几个苍劲得的大字,谢逊自愧不如,当场认输,张翠山提出让他饶过岛上的居民,谢逊坚决不干,他封住张翠山和殷素素的穴道,让他们暂时失聪,谢逊使出狮吼功,在场所有人被震耳欲聋的吼声震飞,房屋尽毁。 谢逊派人把所有的船都烧掉,让岛上的人自生自灭,他带张翠山和殷素素乘船离岛,在船上,殷素素表示对武林正派张三丰钦佩已久,希望有机会可以去拜访张三丰,张翠山满口答应,他突然发现船的方向错了,可谢逊想去一个人迹罕至的荒岛上,好好思考屠龙刀的秘密,不想被江湖人士打扰,还让张翠山和殷素素一起去岛上定居,让他们俩结为夫妻,张翠山发誓不会向外透露屠龙刀的事,可谢逊根本不相信任何人,他夺下屠龙刀就是为了报仇。 张翠山和殷素素商量偷袭谢逊,却被谢逊发现,就主动提出和张翠山比试,谢逊力大无比,还步步紧逼,张翠山一边伸出手接掌,一边催殷素素趁机动手。

3、输出结果


#names.txt
俞岱岩、江南、武当山、俞岱岩、长白、长白、俞岱岩、俞岱岩、长白、俞岱岩、武当、
张三丰、俞岱岩、张三丰、俞岱岩、俞岱岩、俞岱岩、俞岱岩、殷野王、俞岱岩、俞岱岩、俞、
岱岩、王、俞岱岩、俞岱岩、俞岱岩、俞岱岩、殷野王、龙门、俞岱岩、武当山、龙门、
武当山、张三丰、俞岱岩、张翠山、俞岱岩、俞岱岩、张翠山、俞岱岩、武当山、张三丰、俞岱岩、
武当山、张翠山、殷、俞岱岩、龙门、张翠山、张翠山、俞岱岩、张三丰、老七、莫声谷、
临安、宋远桥、张翠山、少林寺、张翠山、殷、俞岱岩、张翠山、张翠山、张翠山、张翠山、
张翠山、张翠山、殷、张翠山、俞岱岩、殷、张翠山、俞岱岩、殷素素、殷素素、武当山、
俞岱岩、临安、龙门、张翠山、张翠山、殷、张翠山、张翠山、张翠山、殷素素、张翠山、
张翠山、张翠山、张翠山、张翠山、张翠山、殷素素、张翠山、殷素素、殷素素、江南、殷素素、
张翠山、王谢逊、谢逊、张翠山、谢逊、谢逊、元光波、谢逊、元光波、谢逊、谢逊、
张翠山、谢逊、谢逊、张翠山、俞岱岩、谢逊、张翠山、张翠山、谢逊、谢逊、张翠山、
张翠山、张翠山、谢逊、张三丰教、谢逊、张翠山、谢逊、张翠山、谢逊、谢逊、张翠山、
殷素素、张三、张三丰、张翠山、谢逊、张翠山、张翠山、谢逊、张翠山、谢逊、谢逊、
张翠山、谢逊力、张翠山、

你可能感兴趣的:(python,ai,api)