3

Sphinx 検索で使用できるスロベニア語のステミング アルゴリズムを検索しています。

私が達成しようとしているのは、たとえば「jabolka」を検索するときに、「jabolko」、「jabolki」、「jabolk」などを含むドキュメントの結果も求めていることです。

スロベニア語ステマーの存在に関する参考文献をいくつか見つけましたが、ダウンロードする場所が見つかりません。どこにも販売されていません...

私が遭遇した別のオプションはwordforms、Sphinx ソース構成 ( http://sphinxsearch.com/docs/manual-0.9.9.html#conf-wordforms ) でオプションを使用することですが、独自の辞書を作成するのは難しすぎるので、公的にアクセス可能な辞書が既に利用可能であるかどうか疑問に思っていますか?


スロベニア語のステマーが利用できない場合、同様の検索結果を得るための他の方法を誰か提案できますか?

4

3 に答える 3

4

次の手順でスロベニア語ステマーをコンパイルできました。

  1. http://snowball.tartarus.org/dist/snowball_code.tgz (snowball のソース コード) をダウンロードして展開します。
  2. http://snowball.tartarus.org/archives/snowball-discuss/0725.htmlからスロベニア語アルゴリズムをダウンロードし、フォルダー /algorithms/slovene の手順 1 で解凍したプロジェクトに保存します。ファイル名はstem_ISO_8859_2.sbl
  3. アルゴリズムは ISO エンコーディングなので、UTF8 に変換して保存しましたstem_Unicode.sbl(ČŠŽĆ などのスロベニア語の特殊文字の utf char コードを見つける必要があります)。
  4. /libstemmer フォルダー内の両方の .txt ファイルを編集し、スロベニア語のエントリを追加します。

    slovene         UTF_8,ISO_8859_2        slovene,sl,slv
    
  5. /GNUmakefile を編集し、slovene を追加します (utf の言語リストに 1 回、ISO_8859_2_algorithms の言語リストに 1 回)。
  6. フォルダー /libstemmer に移動し、次を実行します。

    ./mkmodules.pl modules.h src_c modules.txt ../mkinc.mak
    ./mkmodules.pl modules_utf8.h src_c  modules_utf8.txt ../mkinc_utf8.mak
    

    これにより、後でコンパイルするために必要なファイルが生成されます。

  7. 実行make(解凍されたファイルのルートから)
  8. コンパイル中にエラーが発生しなかった場合は、/src_c フォルダーとスロベニア語ステマーのコードが含まれているはずです (他のフォルダーの隣に)。

    stem_UTF_8_slovene.c
    stem_ISO_8859_2_slovene.c
    ...
    
  9. 最新の sphinx を解凍し、すべてのファイルを Snowball プロジェクトから sphinx /libstemmer_c フォルダー (libstemmer.oおよびを除くGNUmakefile)にコピーします。

  10. スフィンクスをコンパイルします。

    touch NEWS README AUTHORS ChangeLog
    autoreconf --force --install
    ./configure --with-libstemmer
    make
    make install
    
  11. すべてうまくいけば、スフィンクス用のスロベニア語ステマーが機能するはずです。スフィンクスのインデックス構成で有効にするだけです (私の Debian では /usr/local/etc/sphinx.conf にあります):

    charset_type = utf-8
    morphology = libstemmer_slovene
    

これが誰かの助けになることを願っています.autoconfの経験がなかったので、これを理解するのに時間がかかりました.

このスロベニア語ステマーはhttp://snowball.tartarus.orgで正式にリリースされていませんが、私のテストでは、私のプロジェクトには十分に機能します。

于 2012-03-05T14:04:53.143 に答える
1

これでうまくいくかどうかはわかりません が、Sphinx のドキュメントでspelldumpというツールへの参照を見つけました。

spelldump は、Sphinx パッケージ内のヘルパー ツールの 1 つです。

ispell または MySpell 形式を使用する辞書ファイルの内容を抽出するために使用されます。これは、単語形式の単語リストを作成するのに役立ちます。可能な形式はすべて事前に作成されています。

http://sphinxsearch.com/docs/current.html#ref-spelldump

「ispell または MySpell を使用する辞書ファイル」が必要です。スロベニア語の ispell 辞書ファイルへの参照が見つかりました。

于 2012-01-11T17:34:20.440 に答える