5
4

2 に答える 2

5

Hai Feng Kao の character tokenizer を試してみてください。接頭辞、接尾辞、およびその間のすべてを検索できます。中国語にも対応しています。任意の部分文字列検索をサポートするトークナイザーは他にないと思います。

ところで、それは恥知らずな自己宣伝です。

characterObjective-C でトークナイザーによってエンコードされたデータベースを開く場合は、次の手順を実行します。

#import <FMDB/FMDatabase.h>
#import "character_tokenizer.h"

FMDatabase* database = [[FMDatabase alloc] initWithPath:@"my_database.db"];
if ([database open]) {
    // add FTS support
    const sqlite3_tokenizer_module *ptr;
    get_character_tokenizer_module(&ptr);
    registerTokenizer(database.sqliteHandle, "character", ptr);
}
于 2013-08-22T19:31:41.293 に答える
3

FMDB の FMSimpleTokenizer を試すこともできます。FMSimpleTokenizer は組み込みの CFStringTokenizer を使用し、Apple のドキュメントによると、「CFStringTokenizer を使用すると、言語に中立な方法で文字列を単語、文、または段落にトークン化できます。単語をスペースで区切らない日本語や中国語などの言語をサポートしています」

FMSimpleTokenizer コードを確認すると、CFStringTokenizerAdvanceToNextToken と CFStringTokenizerGetCurrentTokenRange を呼び出すことによって行われていることがわかります。

興味深い「事実」の 1 つは、CFStringTokenizer がどのように中国語の単語をトークン化するかということです。まったく結果がありません!

その場合、おそらく Hai Feng Kao の sqlite トークナイザーのようなトークナイザーを作成する必要があります。

于 2015-07-14T03:09:35.530 に答える