首页 > 解决方案 > 使用 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”))

标签: pythonjsonhttp

解决方案


有效载荷是一个字符串,这个字符串里面是一个字典,所以要直接使用变量而不是字符串,你应该使用这个代码:

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']

输出将是:

['هذا', 'مثال', 'بسيط']

推荐阅读