python - 使用 http.client 登录在线 Farasa lemmatizer 并对内容进行词形还原
问题描述
我正在尝试在我的代码中使用 Farasa lemmatizer 的代码来对包含阿拉伯语的 json 文件进行词形分析。这是代码的链接http://alt.qcri.org/farasa/
我阅读了所有的 json 文件,这返回了一个字符串列表。我的问题是如何将此列表列表提供给 farasa 网站上的代码以启动词形还原过程。我试图了解什么是(有效载荷),但我无法
这是我尝试的
import http.client
conn = http.client.HTTPSConnection(“farasa-api.qcri.org”)
payload = “{\”text\”: \”هذا مثال بسيط\”}”
headers = { ‘content-type’: “application/json”, ‘cache-control’: “no-cache”, }
conn.request(“POST”, “/msa/webapi/lemma”, payload, headers)
res = conn.getresponse()
data = res.read()
print(data.decode(“utf-8”))
解决方案
有效载荷是一个字符串,这个字符串里面是一个字典,所以要直接使用变量而不是字符串,你应该使用这个代码:
import json
import http.client
text = '"هذا مثال بسيط"'
text = text.replace('"', '')
conn = http.client.HTTPSConnection("farasa-api.qcri.org")
payload = "{\"text\":\"%s\"}"% text
payload = payload.encode('utf-8')
headers = { 'content-type': "application/json", 'cache-control': "no-cache", }
conn.request("POST", "/msa/webapi/lemma", payload, headers)
res = conn.getresponse()
data = res.read().decode('utf-8')
data_dict = json.loads(data)
您可以使用以下方式访问令牌列表:
data_dict['result']
输出将是:
['هذا', 'مثال', 'بسيط']
推荐阅读
- html - Qt 中的 Sphinx 集成
- c - 计算段中的个数(二进制)
- google-admin-sdk - 如何让 Google 群组成为我的 Cloud Identity 的超级管理员
- php - 在 MyAccountController [backpack-laravel] 中添加个人资料信息
- sql-server - 使用记录中的文件路径列使用最新文件更新 varbinary 列
- shared-libraries - 无法打开共享对象文件 libpng12.so.0
- firebase - 我可以在没有通知许可的情况下使用 Firebase 云消息吗?(Javascript)
- swift - 修复 - 线程 1:致命错误:在展开可选值时意外发现 nil
- webview - 我可以将 JavaScript 和 CSS 注入 Xamarin 表单 WebView 吗?
- git - 我可以强制 git 将更改视为一个整体吗?