我正在尝试使用Spacy 2.0创建基于规则的短语匹配器。我有一个要匹配的字符串列表,我通过NLP管道运行该字符串,并删除了超过9个令牌的字符串(Spacy PhraseMatcher最多)。这以前对我有用,但是,当我现在这样做时,出现错误,好像某些文档中有10个以上的令牌。下面是我的代码的最低可复制版本,具有不同的匹配项(实际上,我在一个巨大的集合中进行匹配,但是列表理解过滤器仍应适用。)
[[ 36. +0.j -4.5+2.59807621j -4.5-2.59807621j]
[-13.5+7.79422863j 0. +0.j 0. +0.j ]
[-13.5-7.79422863j 0. +0.j 0. +0.j ]]
----------
[[ 3.6000000e+01-7.1525574e-07j -4.5000000e+00+2.5980773e+00j
-4.5000000e+00-2.5980768e+00j]
[-1.3499999e+01+7.7942281e+00j 2.4583073e-07+1.2431387e-06j
-5.8748759e-07-8.8979027e-07j]
[-1.3500000e+01-7.7942295e+00j 5.1619134e-07+2.9802322e-07j
-9.0576123e-07+8.5356874e-07j]]
**************************************************
[[ 0. 2.61799388 -2.61799388]
[ 2.61799388 0. 0. ]
[-2.61799388 0. 0. ]]
----------
[[-1.9868216e-08 2.6179936e+00 -2.6179938e+00]
[ 2.6179938e+00 1.3755652e+00 -2.1543462e+00]
[-2.6179938e+00 5.2359879e-01 2.3858519e+00]]
-------------------------------------------------- ---------------------------- ValueError Traceback(最近的呼叫 最后)在() 2个文档= [如果len(d)<10],则d为list(nlp.pipe(matches))中的d 3个匹配项= PhraseMatcher(nlp.vocab) ----> 4 matcher.add('things',None,* docs)
spacy.matcher.PhraseMatcher.add()中的matcher.pyx
spacy.matcher.get_bilou()中的matcher.pyx
ValueError:[T001]词组匹配当前最大长度为10