1

icu::BreakIterator特定の単語を見つけるために使用する方法を理解しようとしています。

たとえば、次の文があります。

なるか、ならないか?それが質問です...

ブレーク イテレータの Word インスタンスは、そこにブレークを配置します。

|へ| |する| |または| |ない| |へ| |で|?| |あれ| |は| |ザ| |質問|.|.|.|

さて、ブレークポイントのすべてのペアが実際の単語であるとは限りません。

派生クラスicu::RuleBasedBreakIteratorには、ブレークに関する何らかの情報を返す「getRuleStatus()」があり、「次のポイント (「/」でマーク) での Word ステータス」を返します。

|To/ |be/ |or/ |not/ |to/ |be/?| |それ/ |は/ |その/ |質問/.|.|.|

しかし...それはすべて特定のルールに依存しており、それを理解するためのドキュメントはまったくありません(試してみない限り)が、辞書が使用されている異なるロケールや言語ではどうなるでしょうか? バックウェア反復で何が起こるか?

Qt QTextBoundaryFinder のように「単語の始まり」または「単語の終わり」の情報を取得する方法はあります?

ICUでこのような問題を正しく解決するにはどうすればよいですか?

4

1 に答える 1

3

ICUのドキュメントを試しましたか?これは、国際化の処理、逆反復、およびデフォルトと独自のカスタムセットの作成方法の両方を含む、あなたが求めているすべてのことを説明しているように見えます。また、役立つコードスニペットもあります。

于 2009-09-28T19:58:58.700 に答える