1. 接口说明

以哈工大社会计算与信息检索研究中心研发的 “语言技术平台(LTP)” 为基础,为用户提供高效精准的中文自然语言处理服务。该自然语言基础处理服务包括:词法分析、依存句法分析、语义角色标注、语义依存 (依存树) 分析、语义依存 (依存图) 分析五类,其中词法分析又可以分为:中文分词、词性标注、命名实体识别。

模块简介:

  • 中文分词(cws)

    中文分词(Chinese Word Segmentation, CWS)指的是将汉字序列切分成词序列。因为在汉语中,词是承载语义的最基本的单元。分词是信息检索、文本分类、情感分析等多项中文自然语言处理任务的基础。

  • 词性标注(pos)

    词性标注(Part-of-speech Tagging, POS)是给句子中每个词一个词性类别的任务。这里的词性类别可能是名词、动词、形容词或其他。

  • 命名实体识别(ner)

    命名实体识别(Named Entity Recognition, NER)是在句子的词序列中定位并识别人名、地名、机构名等实体的任务。

  • 依存句法分析(dp)

    依存语法(Dependency Parsing, DP) 通过分析语言单位内成分之间的依存关系揭示其句法结构。直观来讲,依存句法分析识别句子中的“主谓宾”、“定状补”这些语法成分,并分析各成分之间的关系。

  • 语义角色标注(srl)

    语义角色标注(Semantic Role Labeling, SRL) 是一种浅层的语义分析技术,标注句子中某些短语为给定谓词的论元 (语义角色),如施事、受事、时间和地点等。其能够对问答系统、信息抽取和机器翻译等应用产生推动作用。

  • 语义依存 (依存树) 分析(sdp)

    语义依存 (依存树) 分析(Semantic Dependency Parsing, SDP),分析句子各个语言单位之间的语义关联,并将语义关联以依存结构呈现。使用语义依存刻画句子语义,好处在于不需要去抽象词汇本身,而是通过词汇所承受的语义框架来描述该词汇,而论元的数目相对词汇来说数量总是少了很多的。语义依存分析目标是跨越句子表层句法结构的束缚,直接获取深层的语义信息。

  • 语义依存 (依存图) 分析(sdgp)

    语义依存 (依存图) 分析(Semantic Dependency Graph Parsing, SDGP) 是在语义依存树基础上做了突破,使得对连动、兼语、概念转位等汉语中常见的现象的分析更全面深入。

2. 接口地址

  1. POST http[s]://ltpapi.xfyun.cn/v1/{func} HTTP/1.1
  2. Content-Type:application/x-www-form-urlencoded; charset=utf-8

说明: 接口地址中{func}需替换为相应的功能模块名称,目前开放的功能模块有:中文分词(cws)、词性标注(pos)、依存句法分析(dp)、命名实体识别(ner)、语义角色标注(srl)、语义依存 (依存树) 分析(sdp)、语义依存 (依存图) 分析(sdgp)

3. 请求参数

在 Http Request Header 中配置授权认证参数,见【接口描述-授权认证】。其中 X-Param 为各配置参数组成的JSON串经BASE64编码之后的字符串,原始JSON串各字段说明如下:

参数类型必须说明示例
typestring类型,可选值:dependentdependent

X-Param生成示例:

  1. 原始JSON串:
  2. {
  3. "type": "dependent"
  4. }
  5. BASE64编码(即X-Param):
  6. eyJ0eXBlIjoiZGVwZW5kZW50In0=

在 Http Request Body 中配置以下参数:

参数类型必须说明示例
textstring待分析文本,长度限制为500字节(中文简体)他叫汤姆去拿外衣。

4. 返回值

返回值为json串,各字段如下:

参数类型说明
codestring结果码(具体见错误码)
datajson对象对应具体的文本分析结果,例如分词结果
descstring描述
sidstring会话ID

其中sid字段主要用于追查问题,如果出现问题,可以提供sid给讯飞技术人员帮助确认问题。

data各字段说明如下:

参数类型说明
wordjson数组中文分词结果
posjson数组词性标注结果
dpjson数组依存句法分析结果,对象中字段parent,relate分别是 父节点,标注关系
nerjson数组命名实体识别结果
srljson数组语义角色标注结果,对象中字段beg,end,id,type分别是语义角色 开始位置,结束位置,谓词位置,角色标签名
sdpjson数组语义依存 (依存树) 分析结果,对象中字段parent,relate分别是 父节点,语义关系
sdgpjson数组语义依存 (依存图) 分析结果,对象中字段id,parent,relate分别是 弧指向节点词索引,弧父节点词索引,语义关系

结果示例如下:

失败结果:

  1. {
  2. "code": "10105",
  3. "desc": "illegal access|invalid X-Appid",
  4. "data": {},
  5. "sid": "ltp0000a744@ch78290eb1e128000100"
  6. }

成功结果:


中文分词(cws)


  1. {
  2. "code": "0",
  3. "data": {
  4. "word": [
  5. "他",
  6. "叫",
  7. "汤姆",
  8. "去",
  9. "拿",
  10. "外衣",
  11. "。"
  12. ]
  13. },
  14. "desc": "success",
  15. "sid": "ltp00000006@ch7ea90e9a28b8000100"
  16. }

词性标注(pos)


  1. {
  2. "code": "0",
  3. "data": {
  4. "pos": [
  5. "r",
  6. "v",
  7. "nh",
  8. "v",
  9. "v",
  10. "n",
  11. "wp"
  12. ]
  13. },
  14. "desc": "success",
  15. "sid": "ltp00000007@ch7ea90e9a28ef000100"
  16. }

"r", "v", "nh", "v", "v", "n", "wp" 分别对应cws返回结果中的"他", "叫", "汤姆", "去", "拿", "外衣", "。"


依存句法分析(dp)


  1. {
  2. "code": "0",
  3. "data": {
  4. "dp": [
  5. {
  6. "parent": 1,
  7. "relate": "SBV"
  8. },
  9. {
  10. "parent": -1,
  11. "relate": "HED"
  12. },
  13. {
  14. "parent": 1,
  15. "relate": "DBL"
  16. },
  17. {
  18. "parent": 4,
  19. "relate": "ADV"
  20. },
  21. {
  22. "parent": 1,
  23. "relate": "VOB"
  24. },
  25. {
  26. "parent": 4,
  27. "relate": "VOB"
  28. },
  29. {
  30. "parent": 1,
  31. "relate": "WP"
  32. }
  33. ]
  34. },
  35. "desc": "success",
  36. "sid": "ltp00000005@ch7ea90e9a2858000100"
  37. }

以dp[0]为例,"他"的父节点是"叫",他们中间的关系为SBV,即主谓关系。


命名实体识别(ner)


  1. {
  2. "code": "0",
  3. "data": {
  4. "ner": [
  5. "O",
  6. "O",
  7. "S-Nh",
  8. "O",
  9. "O",
  10. "O",
  11. "O"
  12. ]
  13. },
  14. "desc": "success",
  15. "sid": "ltp00000008@ch7ea90e9a2928000100"
  16. }

"O", "O", "S-Nh", "O", "O", "O", "O" 分别对应cws返回结果中的"他", "叫", "汤姆", "去", "拿", "外衣", "。"


语义角色标注(srl)


  1. {
  2. "code": "0",
  3. "data": {
  4. "srl": [
  5. {
  6. "beg": 0,
  7. "end": 0,
  8. "id": 1,
  9. "type": "A0"
  10. },
  11. {
  12. "beg": 2,
  13. "end": 2,
  14. "id": 1,
  15. "type": "A1"
  16. },
  17. {
  18. "beg": 3,
  19. "end": 5,
  20. "id": 1,
  21. "type": "A2"
  22. },
  23. {
  24. "beg": 5,
  25. "end": 5,
  26. "id": 4,
  27. "type": "A1"
  28. }
  29. ]
  30. },
  31. "desc": "success",
  32. "sid": "ltp0000a741@ch78290eb1df9e000100"
  33. }

语义依存 (依存树) 分析(sdp)


  1. {
  2. "code": "0",
  3. "data": {
  4. "sdp": [
  5. {
  6. "parent": 2,
  7. "relate": "Agt"
  8. },
  9. {
  10. "parent": 0,
  11. "relate": "Root"
  12. },
  13. {
  14. "parent": 2,
  15. "relate": "Datv"
  16. },
  17. {
  18. "parent": 2,
  19. "relate": "eSucc"
  20. },
  21. {
  22. "parent": 4,
  23. "relate": "ePurp"
  24. },
  25. {
  26. "parent": 5,
  27. "relate": "Pat"
  28. },
  29. {
  30. "parent": 2,
  31. "relate": "mPunc"
  32. }
  33. ]
  34. },
  35. "desc": "success",
  36. "sid": "ltp00000002@ch409d0e9a29ec000100"
  37. }

以sdp[0]为例,"他"的父节点是"叫",他们中间的关系为Agt,即施事关系。


语义依存 (依存图) 分析(sdgp)


  1. {
  2. "code": "0",
  3. "data": {
  4. "sdgp": [
  5. {
  6. "id": 0,
  7. "parent": 1,
  8. "relate": "Agt"
  9. },
  10. {
  11. "id": 1,
  12. "parent": -1,
  13. "relate": "Root"
  14. },
  15. {
  16. "id": 2,
  17. "parent": 1,
  18. "relate": "Datv"
  19. },
  20. {
  21. "id": 2,
  22. "parent": 3,
  23. "relate": "Agt"
  24. },
  25. {
  26. "id": 2,
  27. "parent": 4,
  28. "relate": "Agt"
  29. },
  30. {
  31. "id": 3,
  32. "parent": 1,
  33. "relate": "eSucc"
  34. },
  35. {
  36. "id": 4,
  37. "parent": 3,
  38. "relate": "ePurp"
  39. },
  40. {
  41. "id": 5,
  42. "parent": 4,
  43. "relate": "Pat"
  44. },
  45. {
  46. "id": 6,
  47. "parent": 4,
  48. "relate": "mPunc"
  49. }
  50. ]
  51. },
  52. "desc": "success",
  53. "sid": "ltp0000000a@dx4f2f0f1f5931000100"
  54. }

以sdgp[0]为例,"他"的父节点是"叫",他们中间的关系为Agt,即施事关系。

5. 调用示例


python脚本示例(python3)


说明:将脚本中TEXT, API_KEY, APPID,{func}, 换成相应的待分析文本,讯飞开放平台提供的apiKey,讯飞开放平台应用的appid以及功能模块名称即可,运行脚本可打印相应结果。

  1. #!/usr/bin/python
  2. # -*- coding: UTF-8 -*-
  3. import time
  4. import urllib.request
  5. import urllib.parse
  6. import json
  7. import hashlib
  8. import base64
  9. def main():
  10. body = urllib.parse.urlencode({'text': 'TEXT'}).encode('utf-8')
  11. url = 'http://ltpapi.xfyun.cn/v1/{func}'
  12. api_key = 'API_KEY'
  13. param = {"type": "dependent"}
  14. x_appid = 'APPID'
  15. x_param = base64.b64encode(json.dumps(param).replace(' ', '').encode('utf-8'))
  16. x_time = int(int(round(time.time() * 1000)) / 1000)
  17. x_checksum = hashlib.md5(api_key.encode('utf-8') + str(x_time).encode('utf-8') + x_param).hexdigest()
  18. x_header = {'X-Appid': x_appid,
  19. 'X-CurTime': x_time,
  20. 'X-Param': x_param,
  21. 'X-CheckSum': x_checksum}
  22. req = urllib.request.Request(url, body, x_header)
  23. result = urllib.request.urlopen(req)
  24. result = result.read()
  25. print(result.decode('utf-8'))
  26. return
  27. if __name__ == '__main__':
  28. main()

6. 附录

6.1. 词性标记集

TagDescription含义描述Example
rpronoun代词我们
ngeneral noun名词苹果
nsgeographical name地名北京
wppunctuation标点,。!
ksuffix后缀界, 率
hprefix前缀阿, 伪
uauxiliary助词的, 地
cconjunction连词和, 虽然
vverb动词跑, 学习
ppreposition介词在, 把
dadverb副词
qquantity量词
nhperson name人名杜甫, 汤姆
mnumber数词一,第一
eexclamation语气词
bother noun-modifier状态词大型, 西式
aadjective形容词美丽
nddirection noun方位词右侧
nllocation noun处所词城郊
oonomatopoeia拟声词哗啦
nttemporal noun时间词近日, 明代
nzother proper noun其他专名诺贝尔奖
nlorganization name机构团体保险公司
iidiom成语百花齐放
jabbreviation缩写词公检法
wsforeign words外来词CPU
gmorpheme词素茨, 甥
xnon-lexeme非词位萄, 翱

6.2. 依存句法分析标注关系

关系类型TagDescriptionExample
主谓关系SBVsubject-verb我送她一束花 (我 \<— 送)
动宾关系VOB直接宾语,verb-object我送她一束花 (送 —> 花)
间宾关系IOB间接宾语,indirect-object我送她一束花 (送 —> 她)
前置宾语FOB前置宾语,fronting-object他什么书都读 (书 \<— 读)
兼语DBLdouble他请我吃饭 (请 —> 我)
定中关系ATTattribute红苹果 (红 \<— 苹果)
状中结构ADVadverbial非常美丽 (非常 \<— 美丽)
动补结构CMPcomplement做完了作业 (做 —> 完)
并列关系COOcoordinate大山和大海 (大山 —> 大海)
介宾关系POBpreposition-object在贸易区内 (在 —> 内)
左附加关系LADleft adjunct大山和大海 (和 \<— 大海)
右附加关系RADright adjunct孩子们 (孩子 —> 们)
独立结构ISindependent structure两个单句在结构上彼此独立
标点WPpunctuation
核心关系HEDhead指整个句子的核心

6.3. 命名实体说明

标记说明
Nh人名
Ns地名
Ni机构名

前缀说明: 包含BIES四种前缀,分别表示 开始中间结束独立

6.4. 语义角色列表

标记说明
ADVadverbial, default tag ( 附加的,默认标记 )
BNEbeneficiary ( 受益人 )
CNDcondition ( 条件 )
DIRdirection ( 方向 )
DGRdegree ( 程度 )
EXTextent ( 扩展 )
FRQfrequency ( 频率 )
LOClocative ( 地点 )
MNRmanner ( 方式 )
PRPpurpose or reason ( 目的或原因 )
TMPtemporal ( 时间 )
TPCtopic ( 主题 )
CRDcoordinated arguments ( 并列参数 )
PRDpredicate ( 谓语动词 )
PSRpossessor ( 持有者 )
PSEpossessee ( 被持有 )

备注: 核心的语义角色为A0-5六种,A0通常表示动作的施事,A1通常表示动作的影响等,A2-5根据谓语动词不同会有不同的语义含义。

6.4.1. 语义依存关系说明

关系类型TagDescriptionExample
施事关系AgtAgent我送她一束花 (我 \<— 送)
当事关系ExpExperiencer我跑得快 (跑 —> 我)
感事关系AftAffection我思念家乡 (思念 —> 我)
领事关系PossPossessor他有一本好读 (他 \<— 有)
受事关系PatPatient他打了小明 (打 —> 小明)
客事关系ContContent他听到鞭炮声 (听 —> 鞭炮声)
成事关系ProdProduct他写了本小说 (写 —> 小说)
源事关系OrigOrigin我军缴获敌人四辆坦克 (缴获 —> 坦克)
涉事关系DatvDative他告诉我个秘密 ( 告诉 —> 我 )
比较角色CompComitative他成绩比我好 (他 —> 我)
属事角色BelgBelongings老赵有俩女儿 (老赵 \<— 有)
类事角色ClasClassification他是中学生 (是 —> 中学生)
依据角色AccdAccording本庭依法宣判 (依法 \<— 宣判)
缘故角色ReasReason他在愁女儿婚事 (愁 —> 婚事)
意图角色IntIntention为了金牌他拼命努力 (金牌 \<— 努力)
结局角色ConsConsequence他跑了满头大汗 (跑 —> 满头大汗)
方式角色MannManner球慢慢滚进空门 (慢慢 \<— 滚)
工具角色ToolTool她用砂锅熬粥 (砂锅 \<— 熬粥)
材料角色MaltMaterial她用小米熬粥 (小米 \<— 熬粥)
时间角色TimeTime唐朝有个李白 (唐朝 \<— 有)
空间角色LocLocation这房子朝南 (朝 —> 南)
历程角色ProcProcess火车正在过长江大桥 (过 —> 大桥)
趋向角色DirDirection部队奔向南方 (奔 —> 南)
范围角色ScoScope产品应该比质量 (比 —> 质量)
数量角色QuanQuantity一年有365天 (有 —> 天)
数量数组QpQuantity-phrase三本书 (三 —> 本)
频率角色FreqFrequency他每天看书 (每天 \<— 看)
顺序角色SeqSequence他跑第一 (跑 —> 第一)
描写角色Desc(Feat)Description他长得胖 (长 —> 胖)
宿主角色HostHost住房面积 (住房 \<— 面积)
名字修饰角色NmodName-modifier果戈里大街 (果戈里 \<— 大街)
时间修饰角色TmodTime-modifier星期一上午 (星期一 \<— 上午)
反角色r + main role打篮球的小姑娘 (打篮球 \<— 姑娘)
嵌套角色d + main role爷爷看见孙子在跑 (看见 —> 跑)
并列关系eCooevent Coordination我喜欢唱歌和跳舞 (唱歌 —> 跳舞)
选择关系eSeltevent Selection您是喝茶还是喝咖啡 (茶 —> 咖啡)
等同关系eEquevent Equivalent他们三个人一起走 (他们 —> 三个人)
先行关系ePrecevent Precedent首先,先
顺承关系eSuccevent Successor随后,然后
递进关系eProgevent Progression况且,并且
转折关系eAdvtevent adversative却,然而
原因关系eCauevent Cause因为,既然
结果关系eResuevent Result因此,以致
推论关系eInfevent Inference才,则
条件关系eCondevent Condition只要,除非
假设关系eSuppevent Supposition如果,要是
让步关系eConcevent Concession纵使,哪怕
手段关系eMetdevent Method
目的关系ePurpevent Purpose为了,以便
割舍关系eAbanevent Abandonment与其,也不
选取关系ePrefevent Preference不如,宁愿
总括关系eSumevent Summary总而言之
分叙关系eRectevent Recount例如,比方说
连词标记mConjRecount Marker和,或
的字标记mAuxAuxiliary的,地,得
介词标记mPrepPreposition把,被
语气标记mToneTone吗,呢
时间标记mTimeTime才,曾经
范围标记mRangRange都,到处
程度标记mDegrDegree很,稍微
频率标记mFreqFrequency Marker再,常常
趋向标记mDirDirection Marker上去,下来
插入语标记mParsParenthesis Marker总的来说,众所周知
否定标记mNegNegation Marker不,没,未
情态标记mModModal Marker幸亏,会,能
标点标记mPuncPunctuation Marker,。!
重复标记mPeptRepetition Marker走啊走 (走 —> 走)
多数标记mMajMajority Marker们,等
实词虚化标记mVainVain Marker
离合标记mSepaSeperation Marker吃了个饭 (吃 —> 饭) 洗了个澡 (洗 —> 澡)
根节点RootRoot全句核心节点

6.5. 调用示例

自然语言基础处理demo go语言

自然语言基础处理demo php语言

自然语言基础处理demo java语言

自然语言基础处理demo python3语言

自然语言基础处理demo c#语言

Copyright © iflytek.com 2018 all right reserved,powered by Gitbook该文件修订时间:2019-05-07 07:12:51