Nlp 如何改进空间模型以完全识别坐标?

Nlp 如何改进空间模型以完全识别坐标?,nlp,annotations,spacy,named-entity-recognition,ner,Nlp,Annotations,Spacy,Named Entity Recognition,Ner,我使用Wonder prodigy训练了一个自定义命名实体识别模型,但它无法识别以下坐标: “但是太阳是7°长,距离火星51'24” 如你所见,它给了我: [7°长51'24”] 但应该是这样的 [7°51'24”长] 有人能帮我解释一下为什么会这样吗 更多详情: 我用正则表达式为标签做了如下注释:日期、时间、坐标,然后我用Prodigy训练了自定义命名实体识别 我首先对每个标签执行此步骤 1-通过此命令编辑注释(例如,经度) 通过正则表达式编辑(由注释器)我的每注释数据。然后我合并了我的数据

我使用Wonder prodigy训练了一个自定义命名实体识别模型,但它无法识别以下坐标:

“但是太阳是7°长,距离火星51'24”

如你所见,它给了我:

[7°长51'24”]

但应该是这样的

[7°51'24”长] 有人能帮我解释一下为什么会这样吗

更多详情:

我用正则表达式为标签做了如下注释:日期、时间、坐标,然后我用Prodigy训练了自定义命名实体识别

我首先对每个标签执行此步骤

1-通过此命令编辑注释(例如,经度)

通过正则表达式编辑(由注释器)我的每注释数据。然后我合并了我的数据集。下一步是通过

2-bulid a模型(适用于所有合并数据)

问题: 我怎样才能有更好的注释关于长

现在我有一个模型,它有这样的结果:

BEFORE     0.008
Correct    36
Incorrect  4438
Entities   2802
Unknown    0


#          LOSS       RIGHT      WRONG      ENTS       SKIP       ACCURACY
01         110.744    1614       163        1683       0          0.908
02         98.563     1660       107        1719       0          0.939
03         98.472     1668       96         1724       0          0.946
04         96.250     1673       93         1731       0          0.947
05         96.192     1679       80         1730       0          0.955
06         96.108     1678       71         1719       0          0.959
07         94.347     1681       67         1721       0          0.962
08         96.472     1679       66         1716       0          0.962
09         98.936     1681       57         1711       0          0.967
10         96.175     1681       57         1711       0          0.967

Correct    1681
Incorrect  57
Baseline   0.008
Accuracy   0.967
它可以像您在这里看到的那样对数据进行注释(单击链接)

![注释文本]

()

![注释文本]

问题是模型无法像您所看到的那样完全学习坐标 7°长51英尺24英寸 7°51'24“长

注释错误(但在训练集中由正则表达式正确注释,但在测试集中由模型正确注释!)

你知道如何改进吗


第二个问题,我如何使用ner的结果对句子进行分类?

既然您试图识别的命名实体非常具体,一个坐标,它的形状定义得很好,为什么不使用模式/规则,例如正则表达式?

在这里,您可以看到正则表达式可以完美地注释长字符串(我在regex101.com中测试)

但我不知道为什么训练后会出现一些错误(错误这不是问题,但我想知道为什么它会给我一部分跨度)

正如你在这里所说:

像 在第三行:[837是注释,但------->837双子座]是正确的 第四行中[7已注释,但------->7 51 21]是正确的


另一个注释是可以的,即使是时间,但是我们有10h 50m,看起来像是长的结构(不止一个单词)但这是正确的,我真的不知道问题出在哪里!

非常感谢David的回答,实际上计划是首先用正则表达式提供规则方法,然后我们基本上注释所有数据,以便有一个空间模型,并可能改进注释(因为在prodigy中训练模型后,可以由annotor重新注释),我们将数据导入Prodigy(spaCY的产品)但是,即使s oRegex给了我们正确的坐标,在试验了mdoel之后,也有一些错误。但是正则表达式已经给了你正确的坐标,为什么不依赖正则表达式来找到这些LAT/LON和其他命名实体的统计模型呢?你可以同时使用这两个,只需使用一点soft.eng。你可以让你的管道同时使用这两个。我不知道我不知道如何使用这两种方法,因为我使用了“prodigy”来训练regex基于模型的预注释标签。从您的主代码中,您可以调用基于prodigy的模型,也可以应用regex,最后合并结果。您是说我应该使用除“LONG”之外的所有标签制作模型然后保存了数据,并将regex中的注释数据与结果合并为“LONG”。可能吗?请给我发送一个示例或链接,我不知道在prodigy中创建模式后如何保存数据
python -m prodigy ner.batch-train data_merged_v06 en_core_web_sm --output Model_12 --n-iter 10 --eval-split 0.2 --dropout 0.2 --no-missing
BEFORE     0.008
Correct    36
Incorrect  4438
Entities   2802
Unknown    0


#          LOSS       RIGHT      WRONG      ENTS       SKIP       ACCURACY
01         110.744    1614       163        1683       0          0.908
02         98.563     1660       107        1719       0          0.939
03         98.472     1668       96         1724       0          0.946
04         96.250     1673       93         1731       0          0.947
05         96.192     1679       80         1730       0          0.955
06         96.108     1678       71         1719       0          0.959
07         94.347     1681       67         1721       0          0.962
08         96.472     1679       66         1716       0          0.962
09         98.936     1681       57         1711       0          0.967
10         96.175     1681       57         1711       0          0.967

Correct    1681
Incorrect  57
Baseline   0.008
Accuracy   0.967

regex_patterns = [
                  re.compile(r"\d{1,3}\s?°\s?\d{1,2}\s?[\'|’]\s?\d{1,2}\s?[\"|”|“]\s?[A-Z][a-z.]+"   #LONG in format 
                              "|\d{1,3}\s?°\s?\d{1,2}\s?[\'|’]\s?\s?[A-Z][a-z.]+"
                              "|\d{1,3}\s?°\s?\d{1,2}\s?[\'|’]\s?\d{1,2}\s?[\"|”|“]"
                              "|\d{1,3}\s?°\s?\d{1,2}\s?[\'|’]"
                              "|\d{1,3}\s?°\s?[A-Z][a-z.]+")           
]