I want to use Chinese Word Segmentation and find this API.
sample case work:
URLRead[HTTPRequest["api.ltp-cloud.com/analysis/", <|"Query" -> {"api_key" -> "x1e3E1Z3H4AzgRQolEGE8PxHlCEXtTnDbJvkjw5p",
"text" -> "这是一个简单的报文请求",
"pattern" -> "ws",
"format" -> "plain"},
"Method" -> "GET"|>]["URL"], "Body", CharacterEncoding -> "UTF-8"]
这 是 一个 简单 的 报文 请求
For adding custom keyworks,we have to build a XML tree.
the text
parameter of body is the string object of the XML tree.
I use Postman
to simulate this process:
POST http://api.ltp-cloud.com/analysis/ HTTP/1.1
Host: api.ltp-cloud.com
Content-Type: application/x-www-form-urlencoded
Cache-Control: no-cache
Postman-Token: 6a28f2a0-79f4-af0c-ef5b-23f2c9b03f3f
text=%3Cxml4nlp%3E%3Cnote+lstmsemparser%3D%22n%22+ne%3D%22n%22+parser%3D%22n%22+pos%3D%22n%22+semparser%3D%22n%22+sent%3D%22y%22+srl%3D%22n%22+word%3D%22y%22+%2F%3E%3Cdoc%3E%3Cpara+id%3D%220%22%3E%3Csent+cont%3D%22%E8%87%AA%E5%AE%9A%E4%B9%89%E5%88%86%E8%AF%8D%E7%BB%93%E6%9E%9C%E7%9A%84%E7%A4%BA%E4%BE%8B%22+id%3D%220%22%3E%3Cword+cont%3D%22%E8%87%AA%E5%AE%9A%E4%B9%89%22+id%3D%220%22+%2F%3E%3Cword+cont%3D%22%E5%88%86%E8%AF%8D%22+id%3D%221%22+%2F%3E%3Cword+cont%3D%22%E7%BB%93%E6%9E%9C%22+id%3D%222%22+%2F%3E%3Cword+cont%3D%22%E7%9A%84%22+id%3D%223%22+%2F%3E%3Cword+cont%3D%22%E7%A4%BA%E4%BE%8B%22+id%3D%224%22+%2F%3E%3C%2Fsent%3E%3C%2Fpara%3E%3C%2Fdoc%3E%3C%2Fxml4nlp%3E&api_key=x1e3E1Z3H4AzgRQolEGE8PxHlCEXtTnDbJvkjw5p&pattern=ws&xml_input=true&format=plain
自定义 分词 结果 的 示例
I use mma to call this API:
xml = Import["https://wolfr.am/nhIeHvVf"];
URLRead[HTTPRequest["api.ltp-cloud.com/analysis/",
<|"Body" -> {"api_key" -> "x1e3E1Z3H4AzgRQolEGE8PxHlCEXtTnDbJvkjw5p",
"text" -> xml,
"pattern" -> "ws",
"format" -> "plain",
"xml_input" -> "true"},
"Method" -> "POST",
"Headers" -> <|"Content-Type" -> "application/x-www-form-urlencoded"|>|>]["URL"],
"Body", CharacterEncoding -> "UTF-8"]
It tells me to input username and password, but this is not necessary.
In Fiddler
,I find it not sent the body of HTTPRequest
because it use GET
.
(weird!)
How to get the same result as Postman?
"URL"
inHTTPRequest[...]["URL"]
. $\endgroup$URLFetch
and so something about passing"Parameters"
to it interfered with the"Body"
but I hit a similar snag withHTTPRequest
. What happens if you pre-export your body to a string? $\endgroup$["URL"]
and it can works!!! But before,it throwed an error....... $\endgroup$