Neuronowe wykrywanie zdań

Przegląd

Snapper zawiera neuronowy detektor granic zdań poprzez nnsplit, model LSTM na poziomie bajtów działający na tract (wnioskowanie ONNX w czystym Rust).

Detektor oparty na regułach (domyślny) dobrze obsługuje angielski tekst akademicki: skróty (Dr., Fig., Eq.), tokeny inline (linki, matematyka) i standardową interpunkcję. Detektor neuronowy obsługuje języki, w których podział oparty na regułach zawodzi.

Kiedy używać wykrywania neuronowego

  • Tekst w językach innych niż angielski (niemiecki, francuski, chiński, rosyjski, turecki itp.)

  • Tekst z nietypowymi wzorcami interpunkcji

  • Dokumenty wielojęzyczne, w których listy skrótów nie obejmują wszystkich języków

Dla angielskich artykułów akademickich detektor oparty na regułach daje lepsze wyniki (szybszy, bez fałszywych podziałów na skrótach takich jak „Fig.”).

Podstawowe użycie

snapper --neural paper.org

Przy pierwszym uruchomieniu angielski model (~4MB) jest pobierany i zapisywany w ~/.cache/nnsplit/en/. Kolejne uruchomienia ładują z pamięci podręcznej.

Języki inne niż angielski

Użyj --lang, aby wybrać model językowy:

snapper --neural --lang de paper_german.tex
snapper --neural --lang fr article_french.md
snapper --neural --lang zh document_chinese.org

Dostępne języki: en, de, fr, no, sv, zh, tr, ru, uk.

Każdy model jest pobierany przy pierwszym użyciu (~4MB każdy) i zapisywany w ~/.cache/nnsplit/<lang>/.

Niestandardowe modele

Załaduj niestandardowy plik modelu ONNX:

snapper --neural --model-path /path/to/custom_model.onnx paper.org

Niestandardowe modele muszą być zgodne z formatem nnsplit ONNX (wejście na poziomie bajtów, wyjście sigmoid, metadane split_sequence).

Porównanie wydajności

Tryb

Szybkość

Obsługa skrótów

Najlepsze do

Oparty na regułach (domyślny)

~5ms/plik

Doskonałe (80+ reguł)

Angielski tekst akademicki

Neuronowy (--neural)

~200ms/plik

Zależne od modelu

Nieangielski, mieszany tekst

Detektor oparty na regułach uruchamia się natychmiast. Detektor neuronowy ładuje model przy pierwszym wywołaniu (~100-500ms), a następnie przetwarza tekst z prędkością ~200ms na typowy plik akademicki.

Łączenie z parserem rozpoznającym format

Wykrywanie neuronowe zastępuje jedynie krok podziału zdań. Parser rozpoznający format (bloki kodu, matematyka, szuflady, tabele) nadal obowiązuje. Ochrona tokenów inline (linki, matematyka, kod) nadal obowiązuje.

# Neural splitting + Org-mode format awareness
snapper --neural --format org paper.org

# Neural splitting + LaTeX format awareness
snapper --neural --format latex paper.tex