Trovare tipo di interruzione in terapia intensiva :: BreakIterator
-
16-09-2019 - |
Domanda
Sto cercando di understang come utilizzare icu::BreakIterator
per trovare parole specifiche.
Per esempio io ho seguente frase:
Essere o non essere? Questo è il problema ...
istanza Parola di rottura iteratore metterebbe pause c'è:
| A | | Essere | | O | | Non | | A | | Essere |? | | Quello | | È | | Il | | Domanda |. |. |. |
Ora, non ogni coppia di punti di rottura è la parola vera e propria.
In icu::RuleBasedBreakIterator
classe derivata c'è un "getRuleStatus ()" che restituisce un qualche tipo di informazioni sulla rottura, e dà "status Word in seguenti punti (contrassegnato con '/')"
| A / | essere / | o / | no / | a / | essere /? | | Che / | è / | il / | domanda /. |. |. |
Ma ... Tutto dipende da regole specifiche, e non c'è assolutamente alcuna documentazione per capirlo (a meno che io cerco solo), ma cosa sarebbe happend con diversi locali e lingue in cui vengono utilizzati dizionari? cosa succede con l'iterazione Backware?
C'è un modo per ottenere "Begin della Parola" o "fine della parola" informazione come in Qt QTextBoundaryFinder: http://qt.nokia.com/doc/4.5/qtextboundaryfinder.html#BoundaryReason-enum ?
Come devo risolvere tale problema in terapia intensiva correttamente?
Soluzione
Hai provato la ICU documentazione ? Sembra di spiegare tutto ciò che state chiedendo circa, inclusa la manipolazione di internazionalizzazione, invertire l'iterazione, e le regole, sia di default e come creare il proprio set personalizzato. Essi hanno anche frammenti di codice per aiutare.