Spaces:
Runtime error
Runtime error
import re | |
# 1. Define clause types and keywords | |
clause_keywords = { | |
"Termination": ["terminate", "termination", "cancel", "notice period"], | |
"Indemnity": ["indemnify", "hold harmless", "liability", "defend"], | |
"Jurisdiction": ["governed by", "laws of", "jurisdiction"], | |
"Confidentiality": ["confidential", "non-disclosure", "NDA"], | |
"Risky Terms": ["sole discretion", "no liability", "not responsible"] | |
} | |
# 2. Risk levels (simple mapping) | |
risk_levels = { | |
"Termination": "Medium", | |
"Indemnity": "High", | |
"Jurisdiction": "Low", | |
"Confidentiality": "Medium", | |
"Risky Terms": "High" | |
} | |
# 3. Clause detection logic | |
def detect_clauses(text): | |
sentences = re.split(r'(?<=[.?!])\s+', text.strip()) | |
results = [] | |
for sentence in sentences: | |
for clause_type, keywords in clause_keywords.items(): | |
if any(keyword.lower() in sentence.lower() for keyword in keywords): | |
results.append({ | |
"clause": sentence.strip(), | |
"type": clause_type, | |
"risk_level": risk_levels.get(clause_type, "Unknown") | |
}) | |
break # Stop after first match to avoid duplicates | |
return results | |