HEX
Server: LiteSpeed
System: Linux houston.panomity.com 6.8.0-100-generic #100-Ubuntu SMP PREEMPT_DYNAMIC Tue Jan 13 16:40:06 UTC 2026 x86_64
User: nudepix (1011)
PHP: 7.4.33
Disabled: pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare,
Upload Files
File: //opt/textanalyse/tools/argument_mining_tool.py
# tools/argument_mining_tool.py
try:
    import spacy
except Exception as e:
    print(f"Warning: spaCy import disabled in argument_mining_tool: {e}")
    spacy = None

from dataclasses import dataclass
from typing import List, Union

# Lade spaCy-Modell für Deutsch (Stubbed bei Fehlern)
if spacy:
    try:
        nlp = spacy.load("de_core_news_sm")
    except Exception as e:
        print(f"Warning: could not load spaCy model in argument_mining_tool: {e}")
        nlp = None
else:
    nlp = None

@dataclass
class Claim:
    text: str

@dataclass
class Evidence:
    text: str

def extract_arguments(text: str) -> List[Union[Claim, Evidence]]:
    # Stub wenn spaCy nicht verfügbar
    if nlp is None:
        return []
    """
    Identifiziert Behauptungen (Claims) und Belege (Evidence) im deutschen Text.
    Gibt eine Liste von Claim- und Evidence-Objekten in ihrer Reihenfolge zurück.
    """
    doc = nlp(text)
    results: List[Union[Claim, Evidence]] = []
    for sent in doc.sents:
        s_text = sent.text.strip()
        # Heuristische Klassifikation anhand evidentieller Marker
        if any(marker in s_text.lower() for marker in ["laut", "studie", "evidenz", "belegt", "nachdem"]):
            results.append(Evidence(text=s_text))
        else:
            results.append(Claim(text=s_text))
    return results