added doi

This commit is contained in:
2025-07-31 12:59:04 +02:00
parent eb2d14ba98
commit deb3fc9b02
42 changed files with 3811 additions and 3449 deletions

View File

@ -2,7 +2,7 @@
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en"><head>
<meta charset="utf-8">
<meta name="generator" content="quarto-1.7.23">
<meta name="generator" content="quarto-1.8.17">
<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=yes">
@ -88,17 +88,19 @@ div.csl-indent {
<meta name="quarto:offset" content="../">
<script src="../site_libs/quarto-html/quarto.js" type="module"></script>
<script src="../site_libs/quarto-html/tabsets/tabsets.js" type="module"></script>
<script src="../site_libs/quarto-html/axe/axe-check.js" type="module"></script>
<script src="../site_libs/quarto-html/popper.min.js"></script>
<script src="../site_libs/quarto-html/tippy.umd.min.js"></script>
<script src="../site_libs/quarto-html/anchor.min.js"></script>
<link href="../site_libs/quarto-html/tippy.css" rel="stylesheet">
<link href="../site_libs/quarto-html/quarto-syntax-highlighting-dark-2c84ecb840a13f4c7993f9e5648f0c14.css" rel="stylesheet" class="quarto-color-scheme quarto-color-alternate" id="quarto-text-highlighting-styles">
<link href="../site_libs/quarto-html/quarto-syntax-highlighting-6cf5824034cebd0380a5b9c74c43f006.css" rel="stylesheet" class="quarto-color-scheme" id="quarto-text-highlighting-styles">
<link href="../site_libs/quarto-html/quarto-syntax-highlighting-ff1c8a91a872873ab9706226229f9e30.css" rel="stylesheet" class="quarto-color-scheme" id="quarto-text-highlighting-styles">
<link href="../site_libs/quarto-html/quarto-syntax-highlighting-dark-04b38c9dba5d7c0f1fe2b621b39e7e62.css" rel="stylesheet" class="quarto-color-scheme quarto-color-alternate" id="quarto-text-highlighting-styles">
<link href="../site_libs/quarto-html/quarto-syntax-highlighting-ff1c8a91a872873ab9706226229f9e30.css" rel="stylesheet" class="quarto-color-scheme-extra" id="quarto-text-highlighting-styles">
<script src="../site_libs/bootstrap/bootstrap.min.js"></script>
<link href="../site_libs/bootstrap/bootstrap-icons.css" rel="stylesheet">
<link href="../site_libs/bootstrap/bootstrap-ec71cb1e120c0dd41819aca960e74e38.min.css" rel="stylesheet" append-hash="true" class="quarto-color-scheme" id="quarto-bootstrap" data-mode="light">
<link href="../site_libs/bootstrap/bootstrap-dark-716ed94a23403968eaa6fe981e0cbf91.min.css" rel="stylesheet" append-hash="true" class="quarto-color-scheme quarto-color-alternate" id="quarto-bootstrap" data-mode="dark">
<link href="../site_libs/bootstrap/bootstrap-ec71cb1e120c0dd41819aca960e74e38.min.css" rel="stylesheet" append-hash="true" class="quarto-color-scheme-extra" id="quarto-bootstrap" data-mode="light">
<link href="../site_libs/bootstrap/bootstrap-9b56b6674ace31b1957ea5f5ef42286f.min.css" rel="stylesheet" append-hash="true" class="quarto-color-scheme" id="quarto-bootstrap" data-mode="light">
<link href="../site_libs/bootstrap/bootstrap-dark-3c8015a3c2181875b3e8a350495bd83c.min.css" rel="stylesheet" append-hash="true" class="quarto-color-scheme quarto-color-alternate" id="quarto-bootstrap" data-mode="dark">
<link href="../site_libs/bootstrap/bootstrap-9b56b6674ace31b1957ea5f5ef42286f.min.css" rel="stylesheet" append-hash="true" class="quarto-color-scheme-extra" id="quarto-bootstrap" data-mode="light">
<script id="quarto-search-options" type="application/json">{
"location": "navbar",
"copy-button": false,
@ -167,11 +169,11 @@ maintaining data privacy and reproducibility.
<meta name="citation_online_date" content="2025-05-05">
<meta name="citation_fulltext_html_url" content="https://drezil.de/Writing/ner4all-case-study.html">
<meta name="citation_language" content="en">
<meta name="citation_reference" content="citation_title=NER4all or Context is All You Need: Using LLMs for low-effort, high-performance NER on historical texts. A humanities informed approach;,citation_author=Torsten Hiltmann;,citation_author=Martin Dröge;,citation_author=Nicole Dresselhaus;,citation_author=Till Grallert;,citation_author=Melanie Althage;,citation_author=Paul Bayer;,citation_author=Sophie Eckenstaler;,citation_author=Koray Mendi;,citation_author=Jascha Marijn Schmitz;,citation_author=Philipp Schneider;,citation_author=Wiebke Sczeponik;,citation_author=Anica Skibba;,citation_publication_date=2025;,citation_cover_date=2025;,citation_year=2025;,citation_fulltext_html_url=https://arxiv.org/abs/2502.04351;">
<meta name="citation_reference" content="citation_title=NER4all or context is all you need: Using LLMs for low-effort, high-performance NER on historical texts. A humanities informed approach;,citation_author=Torsten Hiltmann;,citation_author=Martin Dröge;,citation_author=Nicole Dresselhaus;,citation_author=Till Grallert;,citation_author=Melanie Althage;,citation_author=Paul Bayer;,citation_author=Sophie Eckenstaler;,citation_author=Koray Mendi;,citation_author=Jascha Marijn Schmitz;,citation_author=Philipp Schneider;,citation_author=Wiebke Sczeponik;,citation_author=Anica Skibba;,citation_publication_date=2025;,citation_cover_date=2025;,citation_year=2025;,citation_fulltext_html_url=https://arxiv.org/abs/2502.04351;">
<meta name="citation_reference" content="citation_title=Run LLMs locally: 5 best methods (+ self-hosted AI starter kit);,citation_author=Mihai Farcas;,citation_publication_date=2024;,citation_cover_date=2024;,citation_year=2024;,citation_fulltext_html_url=https://blog.n8n.io/local-llm/;">
<meta name="citation_reference" content="citation_title=Tutorial on How to Integrate DeepSeek-R1 and the n8n Agent Development Framework;,citation_author=Aleksandar Haber;,citation_publication_date=2025-02-23;,citation_cover_date=2025-02-23;,citation_year=2025;,citation_fulltext_html_url=https://aleksandarhaber.com/tutorial-on-how-to-develop-private-and-secure-local-ai-agents-using-deepseek-r1-and-the-n8n-agent-development-framework/;">
<meta name="citation_reference" content="citation_title=DeepSeek-R1: Incentivizing Reasoning Capability in LLMs via Reinforcement Learning;,citation_author=undefined DeepSeek-AI;,citation_publication_date=2025;,citation_cover_date=2025;,citation_year=2025;,citation_fulltext_html_url=https://arxiv.org/abs/2501.12948;">
<meta name="citation_reference" content="citation_title=Cogito v1 Preview - Introducing IDA as a path to general superintelligence;,citation_author=Deep Cogito;,citation_publication_date=2025;,citation_cover_date=2025;,citation_year=2025;,citation_fulltext_html_url=https://www.deepcogito.com/research/cogito-v1-preview;">
<meta name="citation_reference" content="citation_title=Tutorial on how to integrate DeepSeek-R1 and the n8n agent development framework;,citation_author=Aleksandar Haber;,citation_publication_date=2025-02-23;,citation_cover_date=2025-02-23;,citation_year=2025;,citation_fulltext_html_url=https://aleksandarhaber.com/tutorial-on-how-to-develop-private-and-secure-local-ai-agents-using-deepseek-r1-and-the-n8n-agent-development-framework/;">
<meta name="citation_reference" content="citation_title=DeepSeek-R1: Incentivizing reasoning capability in LLMs via reinforcement learning;,citation_author=undefined DeepSeek-AI;,citation_publication_date=2025;,citation_cover_date=2025;,citation_year=2025;,citation_fulltext_html_url=https://arxiv.org/abs/2501.12948;">
<meta name="citation_reference" content="citation_title=Cogito v1 preview - introducing IDA as a path to general superintelligence;,citation_author=Deep Cogito;,citation_publication_date=2025;,citation_cover_date=2025;,citation_year=2025;,citation_fulltext_html_url=https://www.deepcogito.com/research/cogito-v1-preview;">
</head>
<body class="nav-sidebar docked nav-fixed quarto-light"><script id="quarto-html-before-body" type="application/javascript">
@ -192,7 +194,7 @@ maintaining data privacy and reproducibility.
toggleBodyColorMode(bsSheetEl);
}
}
window.setColorSchemeToggle = (alternate) => {
const setColorSchemeToggle = (alternate) => {
const toggles = window.document.querySelectorAll('.quarto-color-scheme-toggle');
for (let i=0; i < toggles.length; i++) {
const toggle = toggles[i];
@ -225,7 +227,7 @@ maintaining data privacy and reproducibility.
}
manageTransitions('#quarto-margin-sidebar .nav-link', true);
// Switch the toggles
window.setColorSchemeToggle(alternate)
setColorSchemeToggle(alternate)
// Hack to workaround the fact that safari doesn't
// properly recolor the scrollbar when toggling (#1455)
if (navigator.userAgent.indexOf('Safari') > 0 && navigator.userAgent.indexOf('Chrome') == -1) {
@ -265,7 +267,7 @@ maintaining data privacy and reproducibility.
const isFileUrl = () => {
return window.location.protocol === 'file:';
}
window.hasAlternateSentinel = () => {
const hasAlternateSentinel = () => {
let styleSentinel = getColorSchemeSentinel();
if (styleSentinel !== null) {
return styleSentinel === "alternate";
@ -293,7 +295,7 @@ maintaining data privacy and reproducibility.
const baseTheme = document.querySelector('#giscus-base-theme')?.value ?? 'light';
const alternateTheme = document.querySelector('#giscus-alt-theme')?.value ?? 'dark';
let newTheme = '';
if(darkModeDefault) {
if(authorPrefersDark) {
newTheme = isAlternate ? baseTheme : alternateTheme;
} else {
newTheme = isAlternate ? alternateTheme : baseTheme;
@ -316,17 +318,20 @@ maintaining data privacy and reproducibility.
changeGiscusTheme();
}
};
const authorPrefersDark = false;
const queryPrefersDark = window.matchMedia('(prefers-color-scheme: dark)');
const darkModeDefault = queryPrefersDark.matches;
document.querySelector('link.quarto-color-scheme-extra').rel = 'disabled-stylesheet';
document.querySelector('link#quarto-text-highlighting-styles.quarto-color-scheme-extra').rel = 'disabled-stylesheet';
document.querySelector('link#quarto-bootstrap.quarto-color-scheme-extra').rel = 'disabled-stylesheet';
let localAlternateSentinel = darkModeDefault ? 'alternate' : 'default';
// Dark / light mode switch
window.quartoToggleColorScheme = () => {
// Read the current dark / light value
let toAlternate = !window.hasAlternateSentinel();
let toAlternate = !hasAlternateSentinel();
toggleColorMode(toAlternate);
setStyleSentinel(toAlternate);
toggleGiscusIfUsed(toAlternate, darkModeDefault);
window.dispatchEvent(new Event('resize'));
};
queryPrefersDark.addEventListener("change", e => {
if(window.localStorage.getItem("quarto-color-scheme") !== null)
@ -337,7 +342,7 @@ maintaining data privacy and reproducibility.
toggleGiscusIfUsed(alternate, darkModeDefault);
});
// Switch to dark mode if need be
if (window.hasAlternateSentinel()) {
if (hasAlternateSentinel()) {
toggleColorMode(true);
} else {
toggleColorMode(false);
@ -349,6 +354,8 @@ maintaining data privacy and reproducibility.
<nav class="navbar navbar-expand-lg " data-bs-theme="dark">
<div class="navbar-container container-fluid">
<div class="navbar-brand-container mx-auto">
<a href="../index.html" class="navbar-brand navbar-brand-logo">
</a>
<a class="navbar-brand" href="../index.html">
<span class="navbar-title">Nicole Dresselhaus</span>
</a>
@ -360,12 +367,12 @@ maintaining data privacy and reproducibility.
<div class="collapse navbar-collapse" id="navbarCollapse">
<ul class="navbar-nav navbar-nav-scroll me-auto">
<li class="nav-item">
<a class="nav-link" href="../index.html"> <i class="bi bi-house" role="img">
<a class="nav-link active" href="../index.html" aria-current="page"> <i class="bi bi-house" role="img">
</i>
<span class="menu-text">Home</span></a>
</li>
<li class="nav-item">
<a class="nav-link active" href="../About/index.html" aria-current="page"> <i class="bi bi-file-person" role="img">
<a class="nav-link" href="../About/index.html"> <i class="bi bi-file-person" role="img">
</i>
<span class="menu-text">About</span></a>
</li>
@ -403,6 +410,10 @@ maintaining data privacy and reproducibility.
<div id="quarto-content" class="quarto-container page-columns page-rows-contents page-layout-article page-navbar">
<!-- sidebar -->
<nav id="quarto-sidebar" class="sidebar collapse collapse-horizontal quarto-sidebar-collapse-item sidebar-navigation docked overflow-auto">
<div class="pt-lg-2 mt-2 text-left sidebar-header">
<a href="../index.html" class="sidebar-logo-link">
</a>
</div>
<div class="sidebar-menu-container">
<ul class="list-unstyled mt-1">
<li class="sidebar-item sidebar-item-section">
@ -446,12 +457,6 @@ maintaining data privacy and reproducibility.
<a href="../Writing/Obsidian-RAG.html" class="sidebar-item-text sidebar-link">
<span class="menu-text">RAG für eine Obsidian-Wissensdatenbank: Technische Ansätze</span></a>
</div>
</li>
<li class="sidebar-item">
<div class="sidebar-item-container">
<a href="../Obsidian-Articles/Artikelbewertung durch LLM.html" class="sidebar-item-text sidebar-link">
<span class="menu-text">Artikelbewertung durch ein Large Language Model (LLM) - Ein Beispiel aus der Praxis</span></a>
</div>
</li>
</ul>
</li>
@ -801,21 +806,21 @@ maintaining data privacy and reproducibility.
<p>To reproduce this solution, you will need a machine with an <strong>NVIDIA GPU</strong> and the following software components installed:</p>
<ul>
<li><p><strong>n8n (v1.</strong>x** or later)** the workflow automation tool. You can install n8n via npm, Docker, or use the desktop app. For a server environment, Docker is convenient. For example, to run n8n with Docker:</p>
<div class="sourceCode" id="cb1"><pre class="sourceCode bash code-with-copy"><code class="sourceCode bash"><span id="cb1-1"><a href="#cb1-1" aria-hidden="true" tabindex="-1"></a><span class="ex">docker</span> run <span class="at">-it</span> <span class="at">--rm</span> <span class="dt">\</span></span>
<div class="code-copy-outer-scaffold"><div class="sourceCode" id="cb1"><pre class="sourceCode bash code-with-copy"><code class="sourceCode bash"><span id="cb1-1"><a href="#cb1-1" aria-hidden="true" tabindex="-1"></a><span class="ex">docker</span> run <span class="at">-it</span> <span class="at">--rm</span> <span class="dt">\</span></span>
<span id="cb1-2"><a href="#cb1-2" aria-hidden="true" tabindex="-1"></a> <span class="at">-p</span> 5678:5678 <span class="dt">\</span></span>
<span id="cb1-3"><a href="#cb1-3" aria-hidden="true" tabindex="-1"></a> <span class="at">-v</span> ~/.n8n:/home/node/.n8n <span class="dt">\</span></span>
<span id="cb1-4"><a href="#cb1-4" aria-hidden="true" tabindex="-1"></a> n8nio/n8n:latest</span></code><button title="Copy to Clipboard" class="code-copy-button"><i class="bi"></i></button></pre></div>
<span id="cb1-4"><a href="#cb1-4" aria-hidden="true" tabindex="-1"></a> n8nio/n8n:latest</span></code></pre></div><button title="Copy to Clipboard" class="code-copy-button"><i class="bi"></i></button></div>
<p>This exposes n8n on <code>http://localhost:5678</code> for the web interface. (If you use Docker and plan to connect to a host-running Ollama, start the container with <code>--network=host</code> to allow access to the Ollama API on localhost.)</p></li>
<li><p><strong>Ollama (v0.x*)</strong> an LLM runtime that serves models via an HTTP API. Installing Ollama is straightforward: download the installer for your OS from the official site (Linux users can run the one-line script <code>curl -sSL https://ollama.com/install.sh | sh</code>). After installation, start the Ollama server (daemon) by running:</p>
<div class="sourceCode" id="cb2"><pre class="sourceCode bash code-with-copy"><code class="sourceCode bash"><span id="cb2-1"><a href="#cb2-1" aria-hidden="true" tabindex="-1"></a><span class="ex">ollama</span> serve</span></code><button title="Copy to Clipboard" class="code-copy-button"><i class="bi"></i></button></pre></div>
<div class="code-copy-outer-scaffold"><div class="sourceCode" id="cb2"><pre class="sourceCode bash code-with-copy"><code class="sourceCode bash"><span id="cb2-1"><a href="#cb2-1" aria-hidden="true" tabindex="-1"></a><span class="ex">ollama</span> serve</span></code></pre></div><button title="Copy to Clipboard" class="code-copy-button"><i class="bi"></i></button></div>
<p>This will launch the service listening on port 11434. You can verify its running by opening <code>http://localhost:11434</code> in a browser it should respond with “Ollama is running”. <em>Note:</em> Ensure your system has recent NVIDIA drivers and CUDA support if using GPU. Ollama supports NVIDIA GPUs with compute capability ≥5.0 (the A100 is well above this). Use <code>nvidia-smi</code> to confirm your GPU is recognized. If everything is set up, Ollama will automatically use the GPU for model inference (falling back to CPU if none available).</p></li>
<li><p><strong>LLM Model (14B class):</strong> Finally, download at least one large language model to use for NER. You have a few options here, and you can “pull” them via Ollamas CLI:</p>
<ul>
<li><p><em>DeepSeek-R1 14B:</em> A 14.8B-parameter model distilled from larger reasoning models (based on Qwen architecture). Its optimized for reasoning tasks and compares to OpenAIs models in quality. Pull it with:</p>
<div class="sourceCode" id="cb3"><pre class="sourceCode bash code-with-copy"><code class="sourceCode bash"><span id="cb3-1"><a href="#cb3-1" aria-hidden="true" tabindex="-1"></a><span class="ex">ollama</span> pull deepseek-r1:14b</span></code><button title="Copy to Clipboard" class="code-copy-button"><i class="bi"></i></button></pre></div>
<div class="code-copy-outer-scaffold"><div class="sourceCode" id="cb3"><pre class="sourceCode bash code-with-copy"><code class="sourceCode bash"><span id="cb3-1"><a href="#cb3-1" aria-hidden="true" tabindex="-1"></a><span class="ex">ollama</span> pull deepseek-r1:14b</span></code></pre></div><button title="Copy to Clipboard" class="code-copy-button"><i class="bi"></i></button></div>
<p>This downloads ~9 GB of data (the quantized weights). If you have a very strong GPU (e.g.&nbsp;A100 80GB), you could even try <code>deepseek-r1:70b</code> (~43 GB), but 14B is a good balance for our use-case. DeepSeek-R1 is licensed MIT and designed to run locally with no restrictions.</p></li>
<li><p><em>Cogito 14B:</em> A 14B “hybrid reasoning” model by Deep Cogito, known for excellent instruction-following and multilingual capability. Pull it with:</p>
<div class="sourceCode" id="cb4"><pre class="sourceCode bash code-with-copy"><code class="sourceCode bash"><span id="cb4-1"><a href="#cb4-1" aria-hidden="true" tabindex="-1"></a><span class="ex">ollama</span> pull cogito:14b</span></code><button title="Copy to Clipboard" class="code-copy-button"><i class="bi"></i></button></pre></div>
<div class="code-copy-outer-scaffold"><div class="sourceCode" id="cb4"><pre class="sourceCode bash code-with-copy"><code class="sourceCode bash"><span id="cb4-1"><a href="#cb4-1" aria-hidden="true" tabindex="-1"></a><span class="ex">ollama</span> pull cogito:14b</span></code></pre></div><button title="Copy to Clipboard" class="code-copy-button"><i class="bi"></i></button></div>
<p>Cogito-14B is also ~9 GB (quantized) and supports an extended context window up to <strong>128k tokens</strong> which is extremely useful if you plan to analyze very long documents without chunking. Its trained in 30+ languages and tuned to follow complex instructions, which can help in structured output tasks like ours.</p></li>
<li><p><em>Others:</em> Ollama offers many models (LLaMA 2 variants, Mistral, etc.). For instance, <code>ollama pull llama2:13b</code> would get a LLaMA-2 13B model. These can work, but for best results in NER with no fine-tuning, we suggest using one of the above well-instructed models. If your hardware is limited, you could try a 7-8B model (e.g., <code>deepseek-r1:7b</code> or <code>cogito:8b</code>), which download faster and use ~45 GB VRAM, at the cost of some accuracy. In CPU-only scenarios, even a 1.5B model is available it will run very slowly and likely miss more entities, but it proves the pipeline can work on minimal hardware.</p></li>
</ul></li>
@ -828,10 +833,10 @@ maintaining data privacy and reproducibility.
<section id="webhook-input-for-entities-and-text" class="level3">
<h3 class="anchored" data-anchor-id="webhook-input-for-entities-and-text">1. Webhook Input for Entities and Text</h3>
<p>Start by creating a <strong>Webhook trigger</strong> node in n8n. This will provide a URL (endpoint) that you can send a request to. Configure it to accept a POST request containing the necessary inputs. For example, we expect the request JSON to look like:</p>
<div class="sourceCode" id="cb5"><pre class="sourceCode json code-with-copy"><code class="sourceCode json"><span id="cb5-1"><a href="#cb5-1" aria-hidden="true" tabindex="-1"></a><span class="fu">{</span></span>
<div class="code-copy-outer-scaffold"><div class="sourceCode" id="cb5"><pre class="sourceCode json code-with-copy"><code class="sourceCode json"><span id="cb5-1"><a href="#cb5-1" aria-hidden="true" tabindex="-1"></a><span class="fu">{</span></span>
<span id="cb5-2"><a href="#cb5-2" aria-hidden="true" tabindex="-1"></a> <span class="dt">"entities"</span><span class="fu">:</span> <span class="st">"PER, ORG, LOC"</span><span class="fu">,</span></span>
<span id="cb5-3"><a href="#cb5-3" aria-hidden="true" tabindex="-1"></a> <span class="dt">"text"</span><span class="fu">:</span> <span class="st">"John Doe visited Berlin in 1921 and met with the Board of Acme Corp."</span></span>
<span id="cb5-4"><a href="#cb5-4" aria-hidden="true" tabindex="-1"></a><span class="fu">}</span></span></code><button title="Copy to Clipboard" class="code-copy-button"><i class="bi"></i></button></pre></div>
<span id="cb5-4"><a href="#cb5-4" aria-hidden="true" tabindex="-1"></a><span class="fu">}</span></span></code></pre></div><button title="Copy to Clipboard" class="code-copy-button"><i class="bi"></i></button></div>
<p>Here, <code>"entities"</code> is a simple comma-separated string of entity types (you could also accept an array or a more detailed schema; for simplicity we use the format used in the paper: PER for person, LOC for location, ORG for organization). The <code>"text"</code> field contains the content to analyze. In a real scenario, the text could be much longer or might be sent as a file. If its a file, one approach is to send it as form-data and use n8ns <strong>Read Binary File</strong> + <strong>Move Binary Data</strong> nodes to get it into text form. Alternatively, send a URL in the JSON and use an HTTP Request node in the workflow to fetch the content. The key is that by the end of this step, we have the raw text and the list of entity labels available in the n8n workflow as variables.</p>
</section>
<section id="constructing-the-llm-prompt" class="level3">
@ -983,7 +988,7 @@ LLM-Based NER with N8n and Ollama.”</span> May 5, 2025. <a href="https://drezi
a.appendChild(i);
window.document.body.appendChild(a);
}
window.setColorSchemeToggle(window.hasAlternateSentinel())
setColorSchemeToggle(hasAlternateSentinel())
const icon = "";
const anchorJS = new window.AnchorJS();
anchorJS.options = {