跳转至

作文批改接入文档

文档修订记录

文档版本号 修订日期 修订原因
V1.0.1 2023年6月13日 创建文档
V1.0.2 2023年7月18日 将char_box字段都改成location_info

概述

支持中英文作文批改,输入支持纯文本及图片列表。

集成步骤

1. 添加依赖库

//必须依赖库
implementation 'com.google.code.gson:gson:2.6.2'
implementation 'com.squareup.okhttp3:okhttp:3.9.0'
implementation "org.java-websocket:Java-WebSocket:1.4.0"
implementation 'androidx.appcompat:appcompat:1.1.0'
implementation 'com.aliyun.dpa:oss-android-sdk:2.9.11'//SDKV2.4.1.25 以后需加入

2. AndroidManifest配置

添加权限

    <!--网络-->
    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
    <uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />   
    <!--文件读写-->
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />  
    <!--deviceID-->
    <uses-permission android:name="android.permission.READ_PHONE_STATE" />  
    <!-- 读取手机状态,获取IMEI -->
    <uses-permission android:name="android.permission.READ_PHONE_STATE" />
    <uses-permission android:name="android.permission.MANAGE_EXTERNAL_STORAGE"/>

    <!-- android 10 在application节点添加以下适配高版本 -->
     android:usesCleartextTraffic="true"
     android:requestLegacyExternalStorage="true"

3. 代码混淆

代码混淆文件proguard-project.txt,添加如下内容

    -keep class com.turing.**{ *;}
    -dontwarn com.turing.**

    -keep class org.java_websocket.**{*;}
    -dontwarn org.java_websocket.**
    -keep class org.slf4j.**{*;}
    -dontwarn org.slf4j.**

    -keep class org.eclipse.** { *; }
    -dontwarn org.eclipse.**

4. SDK 初始化

使用作文批改功能前调用,请先调用SDK初始化代码。SDK初始化详情见《Android SDK接入指南说明文档》

TuringInitializer.getInstance().initV3XXX()

5. 开启功能集成

使用说明见下面【功能集成】描述。

实例化

var turingCorrect = TuringCorrect.getInstance(this);

功能集成

1. 中文批改

输入中文作文的题目、文本或图片信息,支持从主题、结构、内容、表达四个维度,进行分项评分和综合评分。

方法

void compCorrectCn(CNCompCorrParams param, TuringListener<CNCompCorrResult> listener);

输入说明

CNCompCorrParams 说明

参数名称 是否必填 参数类型 参数描述
userId N string 学生id
userName N string 学生姓名(用于生成评语)
grade N int 学生年级:
0-学前;
1-小一;
2-小二;
3-小三;
4-小四;
5-小五;
6-小六;
7-初一;
8-初二;
9-初三;
10-高一;
11-高二;
12-高三
minTextLength N int 作文要求的最小长度
maxTextLength N int 作文要求的最大长度,值不超过1400
topicType N int 作文题目类型:
1: '全命题',
2: '半命题',
3: '材料作文',
4: '话题作文'
maxScore N int 题目满分(默认为100分)
requirement N int 作文类型:
1: '人物写作',
2: '事件写作',
3: '景物文',
4: '状物文',
5: '想象文',
6: '读后感',
7: '故事新编续编',
8: '诗歌写作',
9: '提纲写作',
10: '书信写作',
11: '文章梗概',
12: '缩写故事',
13: '童话',
14: '看图写话',
15: '漫画作文'
knowledge N int 写作要重点考查的知识点(填写后,将在总评中对该知识点的学生表现进行点评):

1: '运用动作描写',
2: '运用神态描写',
3: '运用语言描写',
4: '运用外貌描写',
5: '运用心理描写',
6: '运用修辞',
7: '运用修辞进行诗歌创作',
8: '运用人物/环境描写进行诗歌创作',
9: '使用五感描写想象物品',
10: '人物描写-成长主题',
11: '读后感格式',
12: '风俗介绍',
13: '科幻小说',
14: '开头设置悬念',
15: '运用人物描写'
isFragment N int 是否为片段写作:
1-是 0-否(默认)
answerTitle N string 学生作答的题目标题
correctionType N int 是否需要纠错(纠错会影响接口处理速度)
1-需要(默认) 0-不需要
commentType N int 总评语模式(默认为1):

1-鼓励性质评语(两条优点+一条建议);
2-建议性质评语(两条优点+两条建议);
3-通用评语;4-仅供WX小低使用
spellType N int 是否需要拼音检测(拼音检测会影响接口处理速度)(默认为0)
1-需要; 0-不需要
correctionThreshold N int 错别字检测严格度(默认为0)
1-宽松; 0-严格
rotateModel N int 是否进行旋转(默认为0)
1-旋转; 0-不旋转
answerText N List\ 三选一,优先级:answerText > answerData > answerUrl

学生作文的文本内容(1400字以内,分段传输,若语言非中文,判定参数错误)
answerData N List\ 三选一,优先级:answerText > answerData > answerUrl

学生作文的二进制图片数据(字节数组)图片数据分辨率小于4k且图片小于4M (最多10张)
answerUrl N List\ 三选一,优先级:answerText > answerData > answerUrl

学生作文的图片url地址(1400字以内,图片数据分辨率小于等于4K且小于等于3M)(最多10张)

输出说明

CNCompCorrResult 说明

参数名称 参数类型 参数描述
original_essay_info OriginalEssayInfo 原始作文信息
overall_result OverallResult 综合结果
features_result CNFeaturesResult 特征结果
gec_result CNGecResult 批改结果
writing_highlight CNWritingHighlight 写作亮点
article_neatness object 书写工整度
path_id string 路径id

OriginalEssayInfo参数说明

参数名称 参数类型 参数描述
original_paragraph_list array 包含段落的数组
original_sentence_list array 每个句子的分段和分句信息
font_size array 平均字宽, 平均字高(只有两个元素,单位px)
page_font_size array 每页平均字体大小
page_rotate array 对应每页的旋转角度,不旋转则都为0;旋转角度为[0, 90, 180, 270]中的一个
answer_title string 识别到的标题
path_id string 路径id

PageFontSize参数说明

参数名称 参数类型 参数描述
w int 该页平均字宽
h int 该页平均字高

OriginalSentenceList参数说明

参数名称 参数类型 参数描述
paragraph_id int 该句所在的段落号,从0开始
sentence_id int 句子在全文的编号,从0开始
original_text string 句子内容
path_id string 路径id

OverallResult参数说明

参数名称 参数类型 参数描述
total_score int 学生总得分(百分制)
total_comment string 作文综合评语
total_suggestion string 作文综合建议
category_score CategoryScore 各个维度得分
paragraph_comment List 段评
path_id string 路径id

ParagraphComment参数说明

参数名称 参数类型 参数描述
paragraph_id int 段落编号,从0开始
comment string 评语内容

CategoryScore参数说明

参数名称 参数类型 参数描述
theme Evaluate 主题维度得分及评语
organization Evaluate 结构维度得分及评语
content Evaluate 内容维度得分及评语
expression Evaluate 表达维度得分及评语
path_id string 路径id

Evaluate参数说明

参数名称 参数类型 参数描述
score float 得分
comment string 评语
path_id string 路径id

CNFeaturesResult参数说明

参数名称 参数类型 参数描述
total_char_num int 总字数
total_term_num int 总词汇量(去重后)
total_sentence_num int 总句数
text_length_type int 字数是否达到要求 0-未达到;1-达到
paterm_typeragraph object 词性分布
path_id string 路径id

TermType参数说明

参数名称 参数类型 参数描述
noun_num int 名词数目
verb_num int 动词数目
adj_num int 形容词数目
adv_num int 副词数目
conjunction_num int 连词数目
path_id string 路径id

CNWritingHighlight参数说明

参数名称 参数类型 参数描述
idiom Idiom 成语引用详细信息
allegorical Idiom 俗语引用详细信息
quote Idiom 佳句引用详细信息
rhetorical Rhetorical 修辞句信息
description Description 描写句信息
path_id string 路径id

Idiom参数说明

参数名称 参数类型 参数描述
num int 成语/俗语/佳句引用数量
info array 成语/俗语/佳句引用详细信息
path_id string 路径id

IdiomInfo参数说明

参数名称 参数类型 参数描述
sentence_id int 成语/俗语/佳句所在句子在全文的编号
sentence_comment string 句评内容(可能为空)
details array 成语/俗语/佳句引用详细信息
path_id string 路径id

IdiomInfo.Details参数说明

参数名称 参数类型 参数描述
content string 成语/俗语/佳句内容
start_index int 成语/俗语/佳句在段落中的起始位置(下标从0开始)
end_index int 成语/俗语/佳句在段落中的结束位置(下标从0开始)
location_info array[]{} 句评对应的下划线信息。一级元素代表一条线;二级元素代表线的关键点坐标(每个字一个关键点)
path_id string 路径id
+page int 所在图片编号(以入参中图片顺序为准,从1开始)
+location array{} 句评下划线坐标。

Location元素说明

参数名称 参数类型 参数描述
x int 相对于图片左上角的横坐标
y int 相对于图片左上角的纵坐标

Rhetorical参数说明

参数名称 参数类型 参数描述
num int 修辞句数量
info object 修辞句信息
path_id string 路径id

RhetoricalInfo参数说明

参数名称 参数类型 参数描述
fanwen List\
使用反问修辞的内容列表
parallelism List\
使用排比修辞的内容列表
analogy List\
使用比喻修辞的内容列表
personification List\
使用拟人修辞的内容列表
List\
List\
使用设问修辞的内容列表
path_id string 路径id

Details参数说明

参数名称 参数类型 参数描述
sentence_id int 句子在全文的编号
sentence_comment string 句评内容
location_info array[]{} 句评对应的下划线信息。一级元素代表一条线;二级元素代表线的关键点坐标(每个字一个关键点)
path_id string 路径id
+page int 所在图片编号(以入参中图片顺序为准,从1开始)
+location array{} 句评下划线坐标

Description参数说明

参数名称 参数类型 参数描述
num int 描写句数量
info object 描写句信息
path_id string 路径id

DescriptionInfo参数说明

参数名称 参数类型 参数描述
taste List\
使用味觉描写的内容列表
psychology List\
使用心理描写的内容列表
smell List\
使用嗅觉描写的内容列表
appearance List\
使用外貌描写的内容列表
enviroment List\
使用环境描写的内容列表
shentai List\
使用神态描写的内容列表
language List\
使用语言描写的内容列表
hearing List\
使用听觉描写的内容列表
action List\
使用动作描写的内容列表
scenery List\
使用景物描写的内容列表
see List\
使用视觉描写的内容列表
touch List\
使用触觉描写的内容列表
path_id string 路径id

CNGecResult参数说明

参数名称 参数类型 参数描述
theme_info object 文题相关性信息
grammar_mistake_info object 拼写错误信息
grammar_sentence_mistake_info object 病句信息
path_id string 路径id

ThemeInfo参数说明

参数名称 参数类型 参数描述
theme_type int 是否切合题意:0-跑题;1-切合题意
theme_word_list List\ 主题词信息
path_id string 路径id

ThemeWord参数说明

参数名称 参数类型 参数描述
word string 主题词
info array 主题词信息

ThemeWord.Info参数说明

参数名称 参数类型 参数描述
sentence_id int 句子在全文的编号
start_index int 主题词在句子内开始的位置
end_index int 主题词在句子内结束的位置
path_id string 路径id

GrammarMistakeInfo参数说明

参数名称 参数类型 参数描述
grammar_mistake_statistic GrammarMistakeStatistic 语病错误类型统计(类型+数量,本期仅支持拼写错误类和拼音识别)
info GrammarMistakeInfo.Info 详细语病信息(位置+类型+纠错,本期仅支持拼写错误类和拼音识别)
correction_result List\ 整篇文章的纠错后结果(本期仅供参考,效果待优化),和输入的格式一样,数组中为string,按照段落输出
path_id string 路径id

GrammarMistakeStatistic参数说明

参数名称 参数类型 参数描述
spell_errors int 拼写错误个数
pinyin_nums int 识别出的拼音个数(本期仅支持拼写错误类和拼音识别)
path_id string 路径id

GrammarMistakeInfo.Info参数说明

参数名称 参数类型 参数描述
sentence_id int 句子在全文的编号
details GrammarMistakeInfo.Info.Details 该句的语病信息(位置+类型+纠错),如果没检测到,则返回空数组
path_id string 路径id

GrammarMistakeInfo.Info.Details参数说明

参数名称 参数类型 参数描述
type string 类型:1)拼写错误(spell_errors);2)拼音(pinyin_span)
corrected string 纠正后的字词
origin string 含语病错误的字词
start_index int 含语病错误的字词在该句中的起始位置(下标从0开始)
end_index int 含语病错误的字词在该句中的结束位置(下标从0开始)
path_id string 路径id
+page int 所在图片编号(以入参中图片顺序为准,从1开始)
+location List\ 错别字坐标。顺序:中心点、左上、右上、右下、左下

GrammarSentenceMistakeInfo参数说明

参数名称 参数类型 参数描述
missing_component List\
成分残缺的句子列表
path_id string 路径id

artical_neatness参数说明

参数名称 参数类型 参数描述
total_score object 总分
+score int 总分的打分值
+confidence float 总分打分置信度
writing_score object 书写打分
+score int 书写打分值
+confidence float 书写打分置信度
scribbling_score object 涂改打分
+score int 涂改打分值
+confidence float 涂改打分置信度
+weighted_score float 涂改占比
+candidate int 涂改个数
layout_score object 布局打分
+score int 布局打分值
+confidence float 布局打分置信度
position_score object 按格书写打分
+score int 按格书写打分值
+confidence float 按格书写打分置信度

请求示例

//中文作文
val builderCn = CNCompCorrParams.Builder()
if (binding.tvMessage.text.isNotEmpty()) {
    builderCn.setAnswerText("作文正文")
} else if (imageList.size > 0) {
    builderCn.setAnswerUrl(imageList)
}
builderCn.setGrade(6)
    .setAnswerTitle("春天")
turingCorrect.compCorrectCn(builderCn.build(),
    object : TuringListener<CNCompCorrResult> {
        override fun onSuccess(result: CNCompCorrResult?) {
            Log.i(TAG, "onSuccess")
        }
        override fun onError(code: Int, message: String?) {
            Log.i(TAG, "onError")
        }
    })

2. 英文批改

输入一篇英文作文的文本内容或者图片,对该作文进行智能批改,输出综合和分项打分结果,以及语法纠错等批改信息。

方法

void compCorrectEn(ENCompCorrParamsparam, TuringListener<ENCompCorrResult> listener);

输入说明

ENCompCorrParams 说明

参数名称 是否必填 参数类型 参数描述
uestion Y string 作文题(要求为英文,若包含中文,则判定参数错误)
keypointList Y array 作文要点列表,列表内元素为string格式(要求为英文,若包含中文,则判定参数错误)
contentCopy Y string 作文正文(副文本),字段要求同上;

备注:如果content,content_copy字段来自预处理接口,则content对应预处理接口输出中的detected_text字段,则content_copy对应预处理接口输出中的detected_text_copy字段;如果用户输入的是文本,且没有经过预处理接口,则不用该字段,只填写content字段即可
minContentLength Y int 作文要求的最小长度
grade Y string 考试类型:KET(目前仅支持KET)
questionType Y int 题目类型:0:主题类;1:要点类
textType Y int 文本识别类型(默认1);
1:只识别手写体部分(适合段落/篇章作文);
2:识别印刷体+手写体(适合低龄的填词类作文)。
content N String 三选一,优先级:answerText > answerData > answerUrl

学生作文的文本内容(1400字以内,分段传输,若语言非中文,判定参数错误)
imageData N List\ 三选一,优先级:answerText > answerData > answerUrl

学生作文的二进制图片数据(字节数组)图片数据分辨率小于4k且图片小于4M (最多10张)
imageUrls N List\ 三选一,优先级:answerText > answerData > answerUrl

学生作文的图片url地址(1400字以内,图片数据分辨率小于等于4K且小于等于3M)(最多10张)

输出说明

ENCompCorrResult 说明

参数名称 参数类型 参数描述
original_essay_info OriginalEssayInfo 原始作文信息
overall_result OverallResult 综合结果
features_result CNFeaturesResult 特征结果
gec_result CNGecResult 批改结果
writing_highlight CNWritingHighlight 写作亮点
suggestion List\ 批改建议

OverallResult类型说明

参数名称 参数类型 参数描述
total_score float 总得分
total_comment string 总评语
category_score CategoryScore 分项打分

CategoryScore类型说明

参数名称 参数类型 参数描述
organization Evaluate 组织维度
language Evaluate 语言维度
content Evaluate 内容维度

Evaluate类型说明

参数名称 参数类型 参数描述
score float 得分
comment string 评语
category_comment categoryComment 二级评语

categoryComment类型说明

参数名称 参数类型 参数描述
num_words string 词汇量评语
spell string 拼写评语
gec string 语法评语
sentence string 长难句评语

ENFeaturesResult类型说明

参数名称 参数类型 参数描述
num_words int 统计整篇接收文档包含的英文词汇总数
num_words_unique int 统计整篇接收文档包含的去重后的英文词汇总数
num_sentences int 统计整篇接收文档包含的句子总数
avg_sentence_length float 统计整篇接收文档包含的平均句子长度
level_words_and_ratio LevelWordsAndRatio 统计整篇接收文档包含的各等级词汇数量及其占比。
readability Readability 统计整篇接收文档可读性信息

LevelWordsAndRatio类型说明

参数名称 参数类型 参数描述
KET string ket级别词汇占比
PET string pet级别词汇占比
over_PET string PET级别以上的词数

Readability类型说明

参数名称 参数类型 参数描述
avg_sentence_length float 平均句长
word_length float 词音节数
score float 可读性评分

OriginalEssayInfo类型说明

参数名称 参数类型 参数描述
title string 作文标题
original_paragraph_list List\ 包含段落的数组
original_sentence_list List\ 每个句子的分段和分句信息

OriginalSentenceList类型说明

参数名称 参数类型 参数描述
paragraph_id int 该句所在的段落号,从0开始
sentence_id int 句子在全文的编号,从0开始
original_text string 句子内容

ENGecResult类型说明

参数名称 参数类型 参数描述
sentence_id int 句子在全文的编号
corrected_text string 纠错后句子文本
error_info List\ 句子纠错信息

ErrorInfo类型说明

参数名称 参数类型 参数描述
start_pos int 错误对应在句子内开始的位置,从0开始
end_pos int 错误对应在句子内结束的位置,从0开始
error_type_level_one string 错误对应的一级错误类别
error_type_level_two string 错误对应的二级错误类别
corrected_words string 修改后的单词
wrong_words string 原始错误单词
error_description string 错误的相关描述
prob float 纠错的置信度(0~1)
location_info List\ 字符的坐标框(坐标信息只有在输入是图片的情况下才会输出)

LocationInfo类说明

参数名称 参数类型 参数描述
location List> 字符的坐标框
page int

ENWritingHighlight类型说明

参数名称 参数类型 参数描述
clause_info ClauseInfo 从句信息
conjunctions_info ConjunctionsInfo 连词信息
sentence_patterns List\ 特殊句式信息
phrases List\ 词组和短语信息

ClauseInfo类型说明

参数名称 参数类型 参数描述
attributive_clause ClauseDetails 定语从句
object_clause ClauseDetails 宾语从句
adverbial_clause ClauseDetails 状语从句

ClauseDetails类型说明

参数名称 参数类型 参数描述
info List\ 从句信息
descriptions string 从句描述

Info类型说明

参数名称 参数类型 参数描述
sentence_id int 句子在全文的编号
location_info List\ 字符的坐标框

ConjunctionsInfo类型说明:

参数名称 参数类型 参数描述
conjunctions_descriptions ConjunctionsDescriptions 连词信息描述
conjunction_list List\ 连词信息

ConjunctionsDescriptions类型说明

参数名称 参数类型 参数描述
causality string 表因果关系的连词
addition string 表递进关系的连词
comparison string 表对比关系的连词
contrast string 表转折关系的连词
example string 表解释说明的连词
summary string 表总结的连词
time_sequence string 表时间顺序的连词

ConjunctionList类型说明

参数名称 参数类型 参数描述
sentence_id int 句子在全文的编号
conjunctions List\ 连词信息

Conjunctions类型说明

参数名称 参数类型 参数描述
word string 检测到的连词
start_pos int 检测到的连词在句子内开始的位置,从0开始
end_pos int 检测到的连词在句子内结束的位置,从0开始
type string 连词的类型,参考conjunctions_descriptions字段
location_info List\ 字符的坐标框

SentencePatterns类型说明

参数名称 参数类型 参数描述
sentence_id int 句子在全文的编号
sentence string 句子中包含的特殊句式内容
location_info List\ 字符的坐标框

Phrases类型说明

参数名称 参数类型 参数描述
sentence_id int 句子在全文的编号
sentence string 句子中包含的词组/短语内容
meaning string 词组的中文释义
start_pos int 检测到的词在句子内开始的位置,从0开始
end_pos int 检测到的词在句子内结束的位置,从0开始
location_info List\ 字符的坐标框

Suggestion类型说明

参数名称 参数类型 参数描述
word string 重复用词
word_info WordInfo 重复用词详细信息
candidates List\ 推荐词列表

WordInfo类型说明

参数名称 参数类型 参数描述
sentence_id int 句子在全文的编号
start_pos int 检测到的词在句子内开始的位置,从0开始
end_pos int 检测到的词在句子内结束的位置,从0开始
location_info List\ 字符的坐标框

请求示例

//英文作文
val builderEn = ENCompCorrParams.Builder()
if (binding.tvMessage.text.isNotEmpty()) {
    builderEn.setContent("作文正文")
}else{
    builderEn.setImageUrls(imageList)
}
builderEn.setUestion("spring")
turingCorrect.compCorrectEn(builderEn.build(), object : TuringListener<ENCompCorrResult> {
    override fun onSuccess(result: ENCompCorrResult?) {
        Log.i(TAG, "onSuccess")
    }
    override fun onError(code: Int, message: String?) {
        Log.i(TAG, "onError")
    }
})