use*_*837 -2 web-services r rcurl asp.net-web-api httr
http://snomedct.t3as.org/这是一个Web服务,可以分析英文临床文本,并报告任何可以检测到的概念.
对于例如 - 我有头痛.它会将头痛识别为症状.
现在我想做的是通过R将句子发送到Web服务,并将表格从网页返回到R进行进一步分析.
如果我们采用他们的示例curl命令行:
curl -s --request POST \
-H "Content-Type: application/x-www-form-urlencoded" \
--data-urlencode "The patient had a stroke." \
http://snomedct.t3as.org/snomed-coder-web/rest/v1.0/snomedctCodes
Run Code Online (Sandbox Code Playgroud)
这可以httr很容易地翻译成.
的-s意思是"沉默"(无进度表或错误信息),所以我们真的没有把这种.
任何-H向请求添加标头的方法.Content-Type使用encode参数to 可以更好地处理此特定标头httr::POST.
该--data-urlencode参数表示URL编码该字符串并将其放入body请求中.
最后,URL是要调用的资源.
library(httr)
result <- POST("http://snomedct.t3as.org/snomed-coder-web/rest/v1.0/snomedctCodes",
body="The patient had a stroke.",
encode="form")
Run Code Online (Sandbox Code Playgroud)
由于您不经常这样做,您可以打包POST电话with_verbose()以查看正在发生的事情(在httr文档中查找).
在此之后技术上应该有很多细微差别(比如检查HTTP状态代码stop_for_status(),warn_for_status()或者甚至只是status_code(),但为了简单起见,我们假设调用有效(这是他们的示例,因此它确实有效并返回200HTTP状态代码)这是一件好事).
默认情况下,该Web服务返回JSON,因此我们需要将其转换为R对象.虽然httr内置解析,我喜欢使用jsonlite包来处理结果:
dat <- jsonlite::fromJSON(content(result, as="text"), flatten=TRUE)
Run Code Online (Sandbox Code Playgroud)
该fromJSON函数采用一些参数,旨在帮助将JSON形成合理的R数据结构(许多API返回可怕的JSON和/或XML).这个API适合"恐怖"类别.数据dat非常粗糙,进一步解码它将是一个单独的SO问题.
| 归档时间: |
|
| 查看次数: |
6226 次 |
| 最近记录: |