問題タブ [snowballanalyzer]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
1107 参照

java - クリーンアップに SnowballAnalyzer を使用して、Lucene でテキスト ドキュメントのインデックスを作成するときの例外

Lucene を使用してドキュメントのインデックスを作成しており、テキストから句読点とストップワードを削除するために SnowballAnalyzer を適用しようとしています。次のエラーが発生し続けます :(

IllegalAccessError: クラス org.apache.lucene.analysis.snowball.SnowballAnalyzer からメソッド org.apache.lucene.analysis.Tokenizer.(Ljava/io/Reader;)V にアクセスしようとしました

これがコードです。助けていただければ幸いです!!!! 私はこれで新しい..

public class インデクサー {

}

private void indexDocument(File someDoc) throws IOException {

} }

0 投票する
1 に答える
1199 参照

lucene - Lucene で語幹単語を取得する

Lucene では、インデックス作成と検索に SnowballAnalyzer を使用しています。

インデックスを構築したら、インデックスに対してクエリを実行します。たとえば、「本文」フィールドに「特化」したクエリを作成します。IndexSearcher は、「specialize、specialized など」を含むドキュメントを返します。SnowballAnalyzer によってステミングが行われるためです。

今 - トップドキュメントを持っている - 私は本文フィールドからテキストスニペットを取得したい. この切り取りには、クエリ ワードの語幹バージョンが含まれている必要があります。
たとえば、返されたドキュメントの 1 つに body フィールドがあります。いつでも利用できます。」次に、「これらの場合、視覚に特化したサービス」の部分をスニペットとして取得したいと思います。さらに、このスニペットの用語が必要です。それを行うコードですが、「?」とマークされたコードがあります。質問があるキャラクターは次のとおりです。

私がやりたい方法は IndexReader ir = IndexReader.open(fsDir);
TermPositionVector tv = (TermPositionVector)ir.getTermFreqVector(hits.scoreDocs[i].doc, "body");

? - ここ: クエリ - クエリは用語でなければなりません。したがって、実際のクエリが「特殊化」されている場合、クエリは特殊化されている必要があります。これは通常、スノーボール アナライザーが行うことです。クエリには「specialized machines」というフレーズを含めることができるため、単一の単語またはフレーズについてアナライザーによって分析された用語を取得するにはどうすればよいですか。

int idx = tv.indexOf(query);
int [] idxs = tv.getTermPositions(idx);
for(String t : tv.getTerms()){
int iidx = tv.indexOf(t);
int [] iidxs = tv.getTermPositions(iidx);
for(int ni : idxs){
tmpValue = 0.0f;
for(int nni : iidxs){
if(Math.abs(nni-ni)<= Settings.termWindowSize){

編集
語幹語を取得する方法を見つけました:
Query q = queryParser.parse("some text to be parsed"); String parsedQuery = q.toString();
Query オブジェクトtoString(String fieldName)のメソッドがあります。

0 投票する
1 に答える
540 参照

lucene - PyLucene での SnowBallAnalyzer の使用

PyLucene で SnowBallAnalyzer を使用しようとしていますが、次のようにインスタンスを作成しようとすると、常に InvalidArgsError というエラーが表示されます。

analyzer = SnowBallAnalyzer("Spanish")

また

analyzer = SnowBallAnalyzer("Spanish", STOPWORDS)

本当に必要なのは、"Fútbol" を検索する場合、"futbol" または "fútbol" という単語を含むドキュメントを取得することです。だから...クエリにインデックスを付けたいテキストにSnowBallAnalyzerを適用したいと思います。

どんな助けでも大歓迎です。

前もって感謝します。

0 投票する
1 に答える
1453 参照

solr - Solr SnowballPorterFilterFactory フィルターが誤った提案を提供する

インデックスおよびクエリ アナライザーには SnowballPorterFilterFactory を使用します。「リンゴ」という単語を検索します。Solr は必要な記事を正常に見つけますが、単語のスペルが間違っていることを示し、"appl" という提案をします。「リンゴ」を検索すると正しく機能します。提案は行われず、「リンゴ」という単語を含む記事が見つかりました。

schema.xml:

間違った提案を除外する方法はありますか?

0 投票する
1 に答える
2759 参照

lucene - ステミング アナライザーを備えた Lucene ハイライター

Lucene の Highlighter クラスを使用して、一致した検索結果のフラグメントを強調表示していますが、うまく機能します。StandardAnalyzer による検索から、用語のステミングを実行する EnglishAnalyzer に切り替えたいと考えています。

検索結果は良好ですが、ハイライターが常に一致するとは限りません。これが私が見ているものの例です:

EnglishAnalyzer を使用して "goat" を検索すると、両方のドキュメントが一致しますが、ハイライターはドキュメント 2 から一致するフラグメントしか見つけることができません。両方のドキュメントのデータをハイライターに返す方法はありますか?

トークンの文字が異なることは理解していますが、同じトークンがまだ存在するため、その場所に存在するトークンを強調表示するのが妥当と思われます。

それが役立つ場合、これは Lucene 3.5 を使用しています。

0 投票する
1 に答える
6707 参照

search - インデックスおよびクエリアナライザー用のSolrSnowballPorterFilterFactory

インデックスアナライザーとクエリアナライザーにはSnowballPorterFilterFactoryを使用しています。「職業」という言葉を検索すると。Solrは、「profession」を含む記事のみを正常に検索しますが、「professional」「professionalism」が必要です...

これはschema.xmlの現在の構成です

0 投票する
1 に答える
275 参照

lucene - Lucene 3.0 と互換性のある snowball.dll の場所

Lucene 3.0 を使用しており、Lucene 3.0 と互換性のあるステミング用の Snowball アナライザーが必要です。Google で 1 時間検索しましたが、信頼できる情報源を見つけることができませんでした。snowball.dll をダウンロードできる信頼できる場所を教えてください。

0 投票する
0 に答える
381 参照

java - SnowballPorterFilterFactory を使用したドイツ語ステミング

ドイツ語のステミング SnowballPorterFilterFactory に問題があります。私はそれを機能させることができません。英語でもドイツ語でもありません。このAnalzyderDefを使用しています。

ここで述べたように、ウォーク/ウォーキング/ウォークで試しました。フィルターの組み合わせが問題なのでしょうか。