我有下面的句子,我想从中提取出“12am”
He is working at 12am
我正在使用Spacy Matcher(语言模型en_core\u web\u lg),它将文本分解为以下标记:
[He] [is] [working] [at] [12am]
我尝试的模式是:
[{ "LIKE_NUM": true }, {"IS_SPACE": false}, { "LOWER": "am" }],
[{ "LIKE_NUM": true , "LOWER": "am" }],
[{ "SHAPE": 'dd' , "ORTH": "am" }]
到目前为止,一切都不起作用。基本上,因为令牌是[12am]
我需要帮助来创建匹配模式:
谢谢你的建议。谢谢
不需要使用spaCy,您可以使用简单的正则表达式。但是,如果您想使用spaCy,我将在下面介绍如何使用spaCy matcher regex功能
使用Regex
模式:
[0-9]+[,.]?[0-9]+[ ]?[A-Za-z]+
说明:查找1+字符([0-9]+)的任何重复数字。还有一个可选的点、逗号([,.])和其他字符([0-9]+)。然后,有一个可选的空格([]),后跟大写或小写字符([A-Za-z]+)
如果你是这样的话,你可以修改它以排除空白
这里有一个活生生的例子:https://regex101.com/r/HmTKD7/1
在python中:
使用空间匹配器:
在spaCy中,您可以执行以下匹配:
pattern = [{"TEXT": {"REGEX": "[0-9]+[,.]?[0-9]+[A-Za-z]+"}}]
请记住,如果数字和度量值类型之间有空格,spacy将分成两个标记。这就是为什么模式的正则表达式不包含空格
目前还没有办法在https://explosion.ai/demos/matcher中使用正则表达式来演示实时演示,但从v2.1开始,正则表达式就在spaCy matcher中
相关问题 更多 >
编程相关推荐