2

私は 2 つの Xapian データベースを持っています。一方を「EN」と呼び、もう一方を「DE」と呼びましょう。前者には英語のドキュメントが含まれており、後者にはドイツ語のドキュメントが含まれているとします。

ユーザーが両方を同時に検索できるようにするには、両方のデータベースを簡単にロードできます。しかし、1 つのステマーとストップ ワードのセットしか使用できないようです。

英語のステマーをインスタンス化して、"EN" データベースからの結果だけに適用する方法はありませんか? 英単語でストッパーを作成する方法はなく、「EN」データベースからの結果のみに適用されますか?

これは正しいでしょうか?

4

1 に答える 1

2

ステミングは、ステミングするテキストの言語を知っている場合にのみ役立ちます。ステミングを使用して Xapian データベースを作成した場合 (つまり、Xapian データベースが元の単語のステミングされた形式を格納している場合)、言語を指定したことになります。

ただし、検索時には、正しくステミングするために言語を知っている必要もあります。ユーザーが英語でクエリを入力する場合は、英語のデータベースにクエリを適用する前に、語幹を英語にする必要があります。同じことがドイツ語にも当てはまります。各データベースを検索する場合は、おそらく、各ユーザー リクエストから 2 つの言語固有のクエリを個別に作成する必要があります。

ただし、最初にドイツ語で入力されたクエリを英語のステマーで語幹処理すると、奇妙な結果が生じる可能性があることに注意してください。ユーザーがクエリ時に使用している言語を調べる方法があれば、これを使用して適用できます。正しいステマー。

HTH - ところで、Xapian-discuss メーリング リスト (www.xapian.org を参照) は、この種の質問をするのに適した場所です。

チャーリー

于 2009-08-05T09:50:13.203 に答える