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?

È stato utile?

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.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top