调用百度API进行文本纠错

毕设做的是文本纠错方面,然后今天进组见研究生导师 。老师对我做的东西蛮感兴趣。然后介绍自己现在做的一些项目,其中有个模块需要有用到文本纠错功能。

要求1:有多人同时在线编辑文档,然后文档功能有类似Word中的在疑似错误下标浪线,或者标记高亮,并且要推荐修改选项

要求2:语料数据的获取、处理以及完善

要求3:文章写完后要有生成keyword

根据老师所讲要查阅文献,以及已有项目来分析可行性,首先想到之前曾有同学调用百度API来进行文档的纠错,然后在这里试了一下。

API描述

识别输入文本中有错误的片段,提示错误并给出正确的文本结果。支持短文本、长文本、语音等内容的错误识别,纠错是搜索引擎、语音识别、内容审查等功能更好运行的基础模块之一。

Step 1  获取assess_token

根据百度开发手册 ,我们需要进行获取assess_token(用户身份验证和授权的凭证)

详细请见百度开发手册

因为百度所给的实例中是python2    然后我用的是python3  会有一些变化  这里只贴python3代码供自己回忆参考

import urllib.request
import urllib,sys
import ssl

# client_id 为官网获取的AK, client_secret 为官网获取的SK
host = ‘https://aip.baidubce.com/oauth/2.0/token?‘        ‘grant_type=client_credentials&client_id=**********&client_secret=**************‘
request = urllib.request.Request(host)
request.add_header(‘Content-Type‘, ‘application/json; charset=UTF-8‘)
response = urllib.request.urlopen(request)
content = response.read()
if (content):
    print(content)

执行代码后  可在控制台中看到所要的token_key

另附实例

# -*- coding: utf-8 -*-

import urllib
import json
#client_id 为官网获取的AK, client_secret 为官网获取的SK
client_id =【百度云应用的AK】
client_secret =【百度云应用的SK】

#获取token
def get_token():
    host = ‘https://aip.baidubce.com/oauth/2.0/token?grant_type=client_credentials&client_id=‘ + client_id + ‘&client_secret=‘ + client_secret
    request = urllib.request.Request(host)
    request.add_header(‘Content-Type‘, ‘application/json; charset=UTF-8‘)
    response = urllib.request.urlopen(request)
    token_content = response.read()
    if token_content:
        token_info = json.loads(token_content)
        token_key = token_info[‘access_token‘]
    return token_key

Step 2 文本纠错应用部分

POST方式调用

注意:要求使用JSON格式的结构体来描述一个请求的具体内容。

body整体文本内容可以支持GBK和UTF-8两种格式的编码。

URL参数:参数 值

access_token 通过API Key和Secret Key获取的access_token,参考“Access Token获取”

Header如下:参数 值

Content-Type application/json

返回说明

参数 说明 描述

log_id uint64 请求唯一标识码

correct_query string 纠错后的文本

score double 模型置信度打分

item object 分析结果

+vec_fragment list 替换候选片段信息

++ori_frag string 原片段

++correct_frag double 替换片段

++begin_pos int 起始(长度单位)

++end_pos list 结尾(长度单位)

# -*- coding: utf-8 -*-
#!/usr/bin/env python

import urllib
import json
#Access Token的有效期为30天(以秒为单位),请您集成时注意在程序中定期请求新的token

#client_id 为官网获取的AK, client_secret 为官网获取的SK

client_id =‘Qk9yAcidNfHIeg63zCATZd2I‘
client_secret =‘gSjzxo0M7ZtBCQaMGgkBtfcrrIrWLPRC‘

#获取token
def get_token():
    host = ‘https://aip.baidubce.com/oauth/2.0/token?grant_type=client_credentials&client_id=‘ + client_id + ‘&client_secret=‘ + client_secret
    request = urllib.request.Request(host)
    request.add_header(‘Content-Type‘, ‘application/json; charset=UTF-8‘)
    response = urllib.request.urlopen(request)
    token_content = response.read()
    if token_content:
        token_info = json.loads(token_content)
        token_key = token_info[‘access_token‘]
    return token_key

def txt_correction(content):
    print(‘原文:‘, content)
    token = get_token()
    url = ‘https://aip.baidubce.com/rpc/2.0/nlp/v1/ecnet‘
    params = dict()
    params[‘text‘] = content
    params = json.dumps(params).encode(‘utf-8‘)
    access_token = token
    url = url + "?access_token=" + access_token
    request = urllib.request.Request(url=url, data=params)
    request.add_header(‘Content-Type‘, ‘application/json‘)
    response = urllib.request.urlopen(request)
    content = response.read()
    if content:
        content = content.decode(‘GB2312‘)
        data = json.loads(content)

        item = data[‘item‘]
        print(‘纠错后:‘, item[‘correct_query‘])
        print(‘Score:‘, item[‘score‘])

txt_correction(‘汽车形式在这条道路上‘)

运行结果如下:

>> 原文:汽车形式在这条道路上
>> 纠错后:汽车行驶在这条公路上
>> Score:0.982835

原文地址:https://www.cnblogs.com/baobaotql/p/11238725.html

时间: 2024-11-07 05:54:22

调用百度API进行文本纠错的相关文章

C#调用百度API方法,POST和GET请求

        #region Get请求         /// <summary>           /// HTTP GET方式请求数据.           /// </summary>           /// <param name="url">URL.</param>           /// <returns>返回数据</returns>           private static st

带头大哥777:Java调用百度API实现翻译

本设计参考了CSDN"京城第一歌姬"博客的设计思路,完成,本人在自己电脑上完全自己创建项目,自己敲代码完成,最后运行成功,我用的开发工具是Myeclipse10 ,JDK1.7 下运行,如图: 项目文件 下面是Java调用百度API实现翻译的具体步骤: 一.在写代码之前先在在百度翻译平台中,申请APP_ID 申请地址申请的详见 点击打开链接 http://api.fanyi.baidu.com/api/trans/product/index 申请之后,会得到APP_ID和SECURIT

关于iphone中微信无法调用百度api的解决方案

http://api.map.baidu.com/direction?origin=latlng:22.550297,113.962555|name:我的位置&destination=22.553143,113.95336&mode=driving&region=''&output=html&src=yourCompanyName|yourAppName 这样的地址在安卓的微信中是能够调用百度的api,但是在iPhone的微信中不行.原因是参数需要encodeurl

前端调用百度API

<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <script src="http://cdn.bootcss.com/jquery/2.1.1/jquery.min.js"></script> <!--调用百度地图api--> <script type="text/javascript" src=&

调用百度API地图

<link rel="stylesheet" href="http://api.map.baidu.com/library/DrawingManager/1.4/src/DrawingManager_min.css" /><script type="text/javascript">    function loadJScript() {        var script = document.createElement

怎样在自己的网页中调用百度API

https://blog.csdn.net/u010251278/article/details/52877370 以下内容转自上述网站,为了以后的学习方便,为此才特地将该网站内容转到自己的博客,多谢博主,见谅! step1:获取密钥 为了统一平台服务的配额管理,JavaScript API在新版本引入ak机制.JavaScript API v1.4及以前版本无须申请密钥(ak),自v1.5版本开始需要先申请密钥(ak),才可使用.申请密钥的链接:点击打开链接 打开链接后点击创建应用,填入相关的

python调用百度api应用--小小翻译器

urllib库的使用 urllib库是python标准库中最常用的PYthon网页访问的模块,它可以让用户像访问本地文本文件一样读取网页的内容. urlib.request模块:用来打开和读取url urlib.error模块:包含一些由urlib.request产生的错误,可用try进行捕捉 urlib.parse模块:包含一些解析url的方法 urlib.robotparser模块:用来解析robots.txt文本文件 案例小小翻译器: 设计思路: 1.使用百度翻译向http://api.f

怎样在自己网页中调用百度API

https://blog.csdn.net/u010251278/article/details/52877370 以下内容转自上述网站,为了以后的学习方便,为此才特地将该网站内容转到自己的博客,多谢博主,见谅! step1:获取密钥 为了统一平台服务的配额管理,JavaScript API在新版本引入ak机制.JavaScript API v1.4及以前版本无须申请密钥(ak),自v1.5版本开始需要先申请密钥(ak),才可使用.申请密钥的链接:点击打开链接 打开链接后点击创建应用,填入相关的

python调用百度API

from urllib.request import urlopen import requests import json url = "http://apis.baidu.com/txapi/mvtp/meinv" #API req = requests.get(url) headers= {'apikey':'自己的apikey'} #自己的apikey params = {'num':'5'} #请求参数(urlParam) : r = requests.get(url,par