我想用以下模式匹配Spacy中的文本:
例如:
text=" Some texte about a company, company number: 254455, Dénomination\n (entire name): NAME_OF_THE_COMPANY , \n, some other informations of the... "
我想提取“NAME_OF_COMPANY”,它被Spacy识别为实体MISC
要获得具有间距的实体,我需要:
^{pr2}$但后来我尝试了许多模式,如下图所示,但没有成功:
matcher=Matcher(nlp.vocab)
pattern = [{"REGEX" : "[D|d][é|e]nomination\s{0,}"},{"REGEX" : "[A-Za-z\n\r\s:)]{1,}"},{"ENT_TYPE" : "MISC"}]
matcher.add('company_name', None, pattern)
matches = matcher(doc)
请记住以下几点:
模式中的每个dict对应于一个没有空格的标记。
您可以用
{"OP": "*"}
匹配任意数量的中间令牌。使用
validate=True
和Matcher()
来获得更多的反馈是很有用的。我觉得你的模式可能更像:
Matcher会查看整个文档,因此如果您有一个长文档,则不仅提供下一个MISC,还将提供一个匹配的“mination”,后面跟着每个MISC。你必须从结果中分别选择最短的匹配。在
相关问题 更多 >
编程相关推荐