gpt4 book ai didi

python - spaCy 模式匹配 - OR 语句

转载 作者:行者123 更新时间:2023-12-04 03:44:45 24 4
gpt4 key购买 nike

有没有办法对模式匹配器使用或应用“或”逻辑?可以用正则表达式来完成类似的事情吗?如果可能(例如汽车、轮船、公共(public)汽车),我不想为每次出现都创建单独的解析器。我也在想,如果我能做到这一点,我就可以使用脚本来生成我的规则。任何帮助将不胜感激。

我可以做类似下面的事情,但没有正则表达式吗?显然,在这种情况下,总线可能会接收其他东西。

import spacy
from spacy.matcher import Matcher

nlp = spacy.load("en_core_web_sm")
matcher = Matcher(nlp.vocab)

matcher.add("VEHICLE", None,
[{"LOWER":{"REGEX":"car|boat|bus"}}]
)

text = "I saw a car pulling a boat today, which was really funny. I also saw a bus pulling a boat."

doc = nlp(text)
matches = matcher(doc)

最佳答案

如果您有一个要用作模式的项目列表,请从中创建一个字典列表并将其作为第三个参数传递给 matcher.add():

l = ['car', 'boat', 'bus']
patterns = [{"LOWER":x} for x in l]
matcher.add("VEHICLE", None, patterns)
>>> for _, start, end in matcher(doc):
print(doc[start:end].text)
car
boat
bus
boat

模式看起来像[{'LOWER': 'car'}, {'LOWER': 'boat'}, {'LOWER': 'bus'}].

关于python - spaCy 模式匹配 - OR 语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65357750/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com