我正在尝试使用 Spacy 的德语文本 NER 从文本中提取命名实体。我已将该服务公开为 REST POST 请求,该请求将源文本作为输入并返回命名实体(人、位置、组织)列表的字典(地图)。这些服务使用托管在 linux 服务器上的 Flask Restplus 公开。
考虑一个示例文本,我在通过 Swagger UI 公开的 REST API 上使用 POST 请求得到以下响应:
{
"ner_locations": [
"Deutschland",
"Niederlanden"
],
"ner_organizations": [
"Miele & Cie. KG",
"Bayer CropScience AG"
],
"ner_persons": [
"Sebastian Krause",
"Alex Schröder"
]
}
当我使用 Spring 的 RestTemplate 从 Spring 启动应用程序(在 Eclipse 中的 Windows 操作系统上)在 Linux 服务器上托管的 API 上发布请求时。json解析正确完成。我添加了以下行以使用 UTF-8 编码。
restTemplate.getMessageConverters().add(0, new StringHttpMessageConverter(Charset.forName("UTF-8")));
但是当我在 linux 机器上部署这个 spring boot 应用程序并向 API 发送请求以进行 NER 标记时,ner_persons 未正确解析。远程调试时,我得到以下响应
{
"ner_locations": [
"Deutschland",
"Niederlanden"
],
"ner_organizations": [
"Miele & Cie. KG",
"Bayer CropScience AG"
],
"ner_persons": [
"Sebastian ",
"Krause",
"Alex ",
"Schröder"
]
}
我无法理解为什么这种奇怪的行为会发生在个人而不是组织的情况下。