fix(chunker): תיקון זיהוי כותרות טענות הצדדים ביחיד/נקבה + שלוש שכבות הגנה
**סיבת-שורש:** רג'קס respondent_claims כיסה רק צורת רבים (המשיבים/המשיבין), ולא יחיד נקבה (המשיבה) ויחיד זכר (המשיב). הכותרת "טענות המשיבה:" בתיק 8181-21 נבלעה לתוך מקטע ruling → חולצה כהלכה שגויה. **שלוש שכבות הגנה:** 1. chunker.py — הרחבת SECTION_PATTERNS לכסות יחיד/זכר/נקבה + תגובת/תשובת 2. halacha_extractor.py — עיגון חיובי: drop ל-ruling chunks שלפני legal_analysis 3. halacha_quality.py — FLAG_PARTY_CLAIM: זיהוי שפת-טענות-צד בציטוט התומך **היקף:** 93 תיקים עם 0 chunks של טענות (כנראה בגלל כותרות ביחיד שלא הוכרו); 628 הלכות מאושרות מתיקים אלה — חלקן עשויות להיות תקינות, יש לעשות re-chunk. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -270,3 +270,55 @@ def test_lexical_near_duplicate_band():
|
||||
assert hq.lexical_near_duplicate(a, b) is True
|
||||
c = "המועד להגשת ערר על שומה הוא שלושים ימים"
|
||||
assert hq.lexical_near_duplicate(a, c) is False
|
||||
|
||||
|
||||
# ── party-claim language detector (FLAG_PARTY_CLAIM) ────────────────────────
|
||||
|
||||
@pytest.mark.parametrize("quote", [
|
||||
# Named-party attribution — always party-claim language
|
||||
"לטענת העורר אין בסיס לחיוב בהיטל",
|
||||
"לטענת המשיבה יש לדחות את הערר",
|
||||
"לטענת המשיב לא הייתה כל השבחה",
|
||||
"לטענת המשיבים ההחלטה תקינה",
|
||||
"טוענת המשיבה כי אין מקום לפיצוי",
|
||||
])
|
||||
def test_detect_party_claim_language_hits(quote):
|
||||
assert hq.detect_party_claim_language(quote) is not None, (
|
||||
f"Quote '{quote[:40]}' should trigger party_claim detection"
|
||||
)
|
||||
|
||||
|
||||
@pytest.mark.parametrize("quote", [
|
||||
# Court's own reasoning — must NOT trigger the flag
|
||||
"ועדת הערר קובעת כי ההיתר תואם את התכנית",
|
||||
"מן הטעמים האמורים, הערר מתקבל",
|
||||
"לאחר בחינת הטענות אנו סבורים כי יש לדחות",
|
||||
# Broad passive forms courts also use in their reasoning (excluded from markers)
|
||||
"נטען כי ההיתר ניתן שלא כדין",
|
||||
"נטען על ידי העורר כי השומה שגויה",
|
||||
# The 8181-21 bad halacha quote — no party-claim markers
|
||||
"גם אם ניתן בעבר פטור לעוררת על בסיס פרשנות הוראות החוק שהשתנתה כיום הרי שיש לפעול בהתאם לפרשנות כיום",
|
||||
])
|
||||
def test_detect_party_claim_language_misses(quote):
|
||||
assert hq.detect_party_claim_language(quote) is None, (
|
||||
f"Quote '{quote[:40]}' must NOT trigger party_claim detection"
|
||||
)
|
||||
|
||||
|
||||
def test_party_claim_flag_in_compute_quality_flags():
|
||||
flags = hq.compute_quality_flags(
|
||||
"ביטול היתר מחייב בסיס חוקי",
|
||||
"לטענת העורר ההיתר ניתן שלא כדין ויש לבטלו",
|
||||
quote_verified=True,
|
||||
)
|
||||
assert hq.FLAG_PARTY_CLAIM in flags
|
||||
|
||||
|
||||
def test_court_quote_does_not_trigger_party_claim_flag():
|
||||
flags = hq.compute_quality_flags(
|
||||
"ביטול היתר מחייב בסיס חוקי מוצק",
|
||||
"ועדת הערר קובעת כי ביטול היתר מחייב בסיס חוקי מוצק בדמות פגיעה ממשית באינטרס ציבורי",
|
||||
quote_verified=True,
|
||||
rule_type="holding",
|
||||
)
|
||||
assert hq.FLAG_PARTY_CLAIM not in flags
|
||||
|
||||
Reference in New Issue
Block a user