我正在寻找使用Stanford CoreNLP捕获度量的方法。(如果您可以建议使用其他提取器,那也可以。)
例如,我想找到15kg,15 kg,15.0 kg,15千克,15 lbs,15磅,等等。但是在CoreNLP提取规则中,我看不到要进行测量的规则。
当然,我可以使用纯正则表达式来做到这一点,但是工具箱可以更快地运行,并且它们提供了在更高层次上进行分块的机会,例如将gb和GB一起处理,以及将RAM和内存视为构建块-即使没有完整的语法分析-当他们构建更大的单元时,例如128 gb RAM和8 GB内存。
我想要一个基于规则的提取器,而不是基于机器学习的提取器,但不要将其中一个作为RegexNer或其他部分的一部分。我该怎么办?
IBM命名实体提取可以做到这一点。正则表达式以一种有效的方式运行,而不是通过每个文本传递文本。并将正则表达式捆绑在一起以表达有意义的实体,例如将所有度量单位统一为一个概念的实体。
我认为该特定任务不存在基于规则的系统。但是,使用TokensregexNER并不难。例如,映射如下:
[{ner:NUMBER}]+ /(k|m|g|t)b/ memory? MEMORY
[{ner:NUMBER}]+ /"|''|in(ches)?/ LENGTH
...
您也可以尝试使用vanilla TokensRegex,然后通过捕获组提取相关值:
(?$group_name [{ner:NUMBER}]+) /(k|m|g|t)b/ memory?
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句