如何使用 spaCy Matcher 为仅解释为单个标记的序列创建基于规则的匹配模式

问题描述 投票:0回答:1

我是 nlp 和 spaCy 的新手,但我正在将它用于我的项目。我正在尝试使用 spaCy 的 Matcher 类创建一个模式来从临床摘要中提取信息,特别是智商分数。我想使用 Matcher 提取临床摘要中经常出现的序列,例如“IQ=68”。最初它看起来相对简单,我创建了以下模式:

pattern2 = [{"LOWER": "iq"}, {"TEXT": "=", "OP": "?"}, {"IS_DIGIT": True}]

但是,这并没有起作用,我认为这是因为 spaCy 的标记化将序列“IQ=68”视为单个标记,因此模式 2 不起作用。使用 Matcher 有解决方案吗?我一直在使用 Matcher,因为它有助于创建从序列中提取 IQ 的模式,例如“IQ 是 68”,因为这被视为三个易于识别的标记,可以轻松地制作和使用模式。

任何帮助将不胜感激!对于使用的任何错误术语表示歉意,我仍在学习!

谢谢。 塔兰:)

regex nlp pattern-matching spacy tokenize
1个回答
0
投票

啊,我想我通过使用正则表达式解决了这个问题,我有预感正则表达式会很有用,但不知道如何将其合并到模式中。但经过一番尝试并查看文档和 spaCy 指南https://spacy.io/usage/rule-based-matching我想出了这个解决方案,并且从外观上看它是有效的:

pattern2 = [{"LOWER": {"REGEX":"iq[=><]\d+"}}]

希望这可以帮助其他使用 spaCy 和 Matcher 类的人!

© www.soinside.com 2019 - 2024. All rights reserved.