0

拉萨 v - 0.15

操作系统 - Mac 操作系统

文本 - 在凌晨 3 点设置闹钟

实体=红衣主教

值 = 3

我们可以看到文本中的预期实体应该是-

实体=时间

价值 = 凌晨 3 点

为什么它显示错误的结果?

spacy 中使用的模型 - 'en_core_web_md'

我正在使用的管道是 -

language: "en" pipeline: - name: "SpacyNLP" model: "en_core_web_sm" case_sensitive: false - name: "WhitespaceTokenizer" - name: "SpacyEntityExtractor" - name: "CRFEntityExtractor" - name: "EntitySynonymMapper" - name: "CountVectorsFeaturizer" - name: "EmbeddingIntentClassifier"

4

2 回答 2

1

我建议尝试 rasa/duckling。这是使用来自 wit.ai 的实体提取器,它对于提取时间和日期实体非常好用且功能强大。为此,有必要运行一个单独的 docker 容器并将其包含在您的 nlu_config.yml 的管道配置中,并在您的 endpoints.yml 中指定此 docker 容器的端点

于 2019-05-07T10:41:12.360 回答
1

我不熟悉不是 Spacy 的堆栈元素,但就 Spacy 而言:模型并不总是正确的。他们使用概率方法来确定命名实体的类别。

您可以尝试使用更大的模型(例如 en_core_web_lg),但它们的计算成本更高。或者,您可以考虑训练 NER 模型以更适合您的目的。Spacy.io 为此提供了一个工具,我认为它称为 Prodigy。无论哪种方式 - 如果没有广泛的培训,创建完全强大的命名实体识别仍然是一个挑战。

于 2019-05-06T17:38:40.040 回答