百度AI攻略:文本纠错

调用攻略(Python3)

首先认证授权:

在开始调用任何API之前需要先进行认证授权,具体的说明请参考:

http://ai.baidu.com/docs#/Auth/top

获取Access Token

向授权服务地址https://aip.baidubce.com/oauth/2.0/token发送请求(推荐使用POST),并在URL中带上以下参数:

grant_type:?必须参数,固定为client_credentials;

client_id:?必须参数,应用的API Key;

client_secret:?必须参数,应用的Secret Key;

例如:

https://aip.baidubce.com/oauth/2.0/token?grant_type=client_credentials&client_id=Va5yQRHlA4Fq5eR3LT0vuXV4&client_secret=0rDSjzQ20XUj5itV6WRtznPQSzr5pVw2&

具体Python3代码如下:

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

#!/usr/bin/env python

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

文本纠错调用:

详细说明请参考:http://ai.baidu.com/docs#/NLP-API/741e48da

接口描述

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

请求说明

HTTP方法: POST

请求URL: https://aip.baidubce.com/rpc/2.0/nlp/v1/ecnet

URL参数:

参数 值

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

Header如下:

参数 值

Content-Type application/json

Body请求示例:

{

"text": "百度是一家人工只能公司"

}

请求参数

参数 类型 描述 是否必填

text string 待纠错文本,输入限制511字节 必填

返回说明

参数 说明 描述

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 结尾(长度单位)

Python3调用代码如下:

#调用百度文本纠错接口

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

测试:

选用不同的数据对文本纠错的准确性进行测试,具体的案例包括生活用语,文章,古诗等。具体案例如下:

test_list = [

            '我来自夏门',

            '朝辞白底彩云间',

            '时光葱葱而过',

            '形像代言人',

            '此事不会影像大局',

            '化夏子孙团结一心',

            '他有点必理不平衡。',

            '这是我们最新的研发计画。',

            '我早就在这排对了。',

            '你中于来了。']

import datetime

print (datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S'))

for text in test_list:

    txt_correction(text)

print (datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S'))

结果:

2019-04-16 11:29:52

原文: 我来自夏门

纠错后: 我来自夏门

Score: 0

原文: 朝辞白底彩云间

纠错后: 朝辞白帝彩云间

Score: 0.961476

原文: 时光葱葱而过

纠错后: 时光匆匆而过

Score: 0.938082

原文: 形像代言人

纠错后: 形象代言人

Score: 0.947005

原文: 此事不会影像大局

纠错后: 此事不会影响大局

Score: 0.969137

原文: 化夏子孙团结一心

纠错后: 华夏子孙团结一心

Score: 0.885656

原文: 他有点必理不平衡。

纠错后: 他有点必理不平衡。

Score: 0

原文: 这是我们最新的研发计画。

纠错后: 这是我们最新的研发计划。

Score: 0.441279

原文: 我早就在这排对了。

纠错后: 我早就在这排队了。

Score: 0.977007

原文: 你中于来了。

纠错后: 你中于来了。

Score: 0

2019-04-16 11:30:19

发现在10个测试案例中,有7个错误被成功纠正。纠正成功率为70%左右,感觉不错,不过还有优化空间。随着百度不断地优化应该会有进一步的提高。

10个调用,用时27秒,每次调用2.7秒左右。

使用场景及建议:

文本纠错有很广阔的应用前景,现在已经有了以下场景:

写作辅助:在内容写作平台上内嵌纠错模块,可在作者写作时自动检查并提示错别字情况。从而降低因疏忽导致的错误表述,有效提升作者的文章写作质量,同时给用户更好的阅读体验

搜索纠错:用户经常在搜索时输入错误,通过分析搜索query的形式和特征,可自动纠正搜索query并提示用户,进而给出更符合用户需求的搜索结果,有效屏蔽错别字对用户真实需求的影响

对话语音识别纠错:将文本纠错嵌入对话系统中,可自动修正语音识别转文本过程中的错别字,向对话理解系统传递纠错后的正确query,明显提高语音识别准确率,使产品整体体验更佳

此外还可以应用在:

NLP数据预处理:如在对客服记录,景区评价的数据进行客户情绪分析前可以使用文本纠错功能对数据进行预处理,提高分析的准确度。

单据扫描信息的后处理:对单据扫描文本识别后的数据进行后处理,提高准确度

在自然语言相关的AI应用越来越多的时候,文本纠错作为NLP应用的关键组件,必将得到广泛的应用。在试验中发现,百度AI作为这方面的先行者,已经具备了很好的易用性和调用速度,希望能进一步提高识别的准确率,百尺竿头更进一步。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 214,029评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,238评论 3 388
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 159,576评论 0 349
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,214评论 1 287
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,324评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,392评论 1 292
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,416评论 3 412
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,196评论 0 269
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,631评论 1 306
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,919评论 2 328
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,090评论 1 342
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,767评论 4 337
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,410评论 3 322
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,090评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,328评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,952评论 2 365
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,979评论 2 351

推荐阅读更多精彩内容