Spacy - 在模式匹配中识别令牌
Spacy - Identify Token in Pattern Matching
我想做一个程序,从一个句子中提取两个词,我需要知道一个是出发,另一个是到达。
我尝试制作一个模式并在自定义扩展属性中设置标记类型,例如这句话:"I would like a London Paris train"
.
我创建了这个模式:
pattern = [
{"POS": "PROPN", "_": {"TYPE": "ARRIVAL"}},
{"POS": "PROPN", "_": {"TYPE": "DEPARTURE"}}
]
我还在 python 代码中创建了一个 custom_extension 属性:
Token.set_extension('TYPE', default="", force=True)
我的问题是,如果我的模式中的 TYPE
与默认值不匹配,则不会匹配任何内容。
我想知道是否有更好的模式匹配解决方案来识别匹配的令牌。
非常感谢
你想做的是“语义角色标注”,这很难。你绝对不能只用模式匹配来做到这一点。
您可以做的最简单的事情可能会起作用,这将适用于您的示例,即使用 spaCy 的 NER 模型获取所有 LOC 或 GPO 实体,并假设第一个是出发点,第二个是到货。不过那真的很脆弱。
我想做一个程序,从一个句子中提取两个词,我需要知道一个是出发,另一个是到达。
我尝试制作一个模式并在自定义扩展属性中设置标记类型,例如这句话:"I would like a London Paris train"
.
我创建了这个模式:
pattern = [
{"POS": "PROPN", "_": {"TYPE": "ARRIVAL"}},
{"POS": "PROPN", "_": {"TYPE": "DEPARTURE"}}
]
我还在 python 代码中创建了一个 custom_extension 属性:
Token.set_extension('TYPE', default="", force=True)
我的问题是,如果我的模式中的 TYPE
与默认值不匹配,则不会匹配任何内容。
我想知道是否有更好的模式匹配解决方案来识别匹配的令牌。
非常感谢
你想做的是“语义角色标注”,这很难。你绝对不能只用模式匹配来做到这一点。
您可以做的最简单的事情可能会起作用,这将适用于您的示例,即使用 spaCy 的 NER 模型获取所有 LOC 或 GPO 实体,并假设第一个是出发点,第二个是到货。不过那真的很脆弱。