[ 
https://issues.apache.org/jira/browse/OPENNLP-1867?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=18092827#comment-18092827
 ] 

Kristian Rickert commented on OPENNLP-1867:
-------------------------------------------

Closing. Not needed for OPENNLP-1852.  Adding some tests in OPENNLP-1868 
instead.  

> Offset-aware normalization pipeline: AlignedText contract across 
> CharSequenceNormalizer and TextNormalizer
> ----------------------------------------------------------------------------------------------------------
>
>                 Key: OPENNLP-1867
>                 URL: https://issues.apache.org/jira/browse/OPENNLP-1867
>             Project: OpenNLP
>          Issue Type: Task
>          Components: dl, Sentiment Detection
>    Affects Versions: 3.0.0-M4
>            Reporter: Kristian Rickert
>            Assignee: Kristian Rickert
>            Priority: Major
>
> *This is one of 4 tickets we will work on in a similar fashion to 1850.  The 
> main requirements are on OPENNLP-1852*
> This would be referred to as 1852-a until all tickets are created at which 
> time I'll correct it.
> *Stacks on:* main (post-1850). *Blocks:* OPENNLP-1868, OPENNLP-1869, 
> OPENNLP-1870. 
> *Summary.* Give the {{CharSequenceNormalizer}} family an offset-aware mode 
> that returns an {{AlignedText}} (normalized text plus {{{}Alignment{}}}) 
> alongside the existing {{CharSequence}} method: a length-preserving rung 
> returns an identity alignment, a length-changing rung builds a real one. Add 
> an offset-aware build/apply mode to {{TextNormalizer}} that runs the 
> configured rungs in order, folds {{andThen}} over their alignments, and 
> returns one {{AlignedText}} for the whole chain. Settle and implement the 
> gate decision (recommendation: keep NFC/NFKC offset-opaque via the existing 
> {{buildAligned()}} rejection; author-able folds are offset-aware).
> *Design note.* Decide whether the offset-aware method lives on 
> {{CharSequenceNormalizer}} directly (every rung implements it) or on a 
> parallel capability interface that the pipeline adapts (mirrors how 
> {{OffsetMappingNameFinder}} was done in OPENNLP-1850). The CharClass-backed 
> rungs already have the machinery; the standard-engine rungs are where the 
> gate applies.
> *Acceptance criteria.*
>  * Offset-aware mode on the {{CharSequenceNormalizer}} family and on 
> {{{}TextNormalizer{}}}, returning a composed {{AlignedText}} for a multi-rung 
> chain.
>  * Length-preserving rungs return identity alignments; the pipeline composes 
> via {{{}andThen{}}}.
>  * NFC/NFKC (and any fold that cannot emit edits) fail loud in the 
> offset-aware path, consistent with today's {{{}buildAligned(){}}}.
>  * Round-trip tests: a position in the normalized output maps back to the 
> correct original characters through a multi-rung chain (mix of identity and 
> length-changing rungs).



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to