Match causal clauses independently of punctuation attachment
Verify syntax DAG / verify (push) Failing after 13s

This commit is contained in:
2026-11-04 16:39:12 +08:00
parent ec9dd5f72e
commit eb5c156104
2 changed files with 6 additions and 1 deletions
+2 -1
View File
@@ -118,7 +118,8 @@ class Encoder:
or any(token.dep_ in {"neg", "aux", "conj"} for token in sentence)
or not any(child.dep_ == "nsubj" for child in sentence.root.children)
or not any(child.dep_ == "nsubj" for child in verb.children)
or {token.i for token in verb.subtree} != set(range(marker.i, end))
or {token.i for token in verb.subtree if not token.is_punct}
!= set(range(marker.i, end))
):
return None
return marker, end
+4
View File
@@ -21,6 +21,10 @@ class SyntaxDAGTest(unittest.TestCase):
def test_causal_commit(self):
text = "The road flooded because it rained. They waited."
graph = self.encoder.encode(text)
self.assertEqual(len(graph.proposals), 1, [
(token.text, token.head.text, token.dep_, token.pos_, token.tag_)
for token in self.encoder.nlp(text)
])
proposal, = graph.proposals
self.assertTrue(any(
len({edge.source for edge in graph.edges if edge.target == node}) > 1