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 ( |
~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