問題タブ [porter-stemmer]
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.
lucene - ステミング付きの StandardAnalyzer
Luceneに統合する方法はありPorterStemFilter
ますか、または最終クラスとして定義されているため、ソース コードStandardAnalyzer
をコピーして貼り付けStandardAnalyzers
、フィルターを追加する必要がありますか。StandardAnalyzer
よりスマートな方法はありますか?
また、数字を考慮したくない場合は、どうすればそれを達成できますか?
ありがとう
elasticsearch - 1.2 と 1.4 の間の英語ステマーでの所有格 (アポストロフィ) の処理の違い
1.2.1 を実行するものと 1.4 を実行するものの 2 つのエラスティック検索のインスタンスがあり、設定とマッピングは両方のインスタンスで実行されているインデックスで同じですが、結果は異なります。
デフォルトのアナライザーの設定:
弾性検索バージョン間の違いは、所有格のインデックス作成/検索時に表示されますが、1.2.1 では「player」、「players」、および「player's」は同じ結果を返しますが、1.4 では最初の 2 つ (「player」と「players」) を返します。 "player's" はセットと一致していませんが、同一の結果セットがあります。これは既知の違いですか? 1.4以降で同じ動作を得る正しい方法は何ですか?
java - Java opennlp ツールキットのビルトイン Porter Stemmer
python nltk ( https://stackoverflow.com/a/10369407/3096792 )の porter Stemmer のような Stemmers が組み込まれているように、インターフェイスはありますが、Java Apache opennlp に組み込みの Porter Stemmer があるかどうかを知りたいです。このパッケージ [opennlp.tools.stemmer.Stemmer] の下にあります。今のところステミングの背後にあるアルゴリズムを知らない、または知る必要がないため、apache opennlp ツールキットの下に標準パッケージが必要です。存在しない場合、Java の代替手段は何ですか?
javascript - lunr: 検索語の語幹を返すので、結果内で強調表示できます
lunr を使用して検索を実行しており、現在、検索テキスト領域の値から検索を強調表示していますが、lunr はステマーを使用しており、完全な検索用語と明確に一致しない結果を返します。lunr が検索する検索語の語幹にアクセスする方法はありますか?
python - Porter Stemmer でファイルを実行する
私はPythonが初めてで、本の例で練習しています。私は1つの言葉を発散することができます:
しかし、たとえば、テキスト ファイルの最初の 50 語を Porter ステマーで実行することはできません。
編集: split() 以外の方法はありますか? split() は間違った結果を返すことがあります。
c# - 情報検索における Porter Stemmer アルゴリズム
アプリケーション用の単純な検索エンジンを作成する必要があります。次のように単純化しましょう: いくつかのテキスト (大量) があり、関連する結果を検索して表示する必要があります。
私はこの素晴らしい記事に基づいていくつかのことを拡張しましたが、それは私にとってはかなりうまくいきます。
しかし、単語を用語にステミングすることに問題があります。たとえば、"annotation"、"annotations" などの単語は "annot" に語幹変換されますが、何かを検索しようとすると、予期しない結果が表示されると想像してください。
- 「あんの」 - 何もない
- 「annota」 - 何もないなど
「annot」という単語のみが関連する結果をもたらします。では、期待どおりの結果が得られるように検索を改善するにはどうすればよいでしょうか? 「annot」には「anno」が含まれており、「annota」は「annot」よりもわずかに多いためです。常に含むを使用することは明らかに解決策ではありません
最初のケースで三分探索木を使用できる場合、2番目のケースでは何をすべきかわかりません。
どんなアイデアでも非常に役に立ちます。
アップデート
oleksiiは私に n-grams hereを指摘してくれました。
だから質問:
- 私のニーズに最適なデータ構造はどれですか
- n-gram の適切なインデックス付け方法
lucene - Java で単語を語幹化して見出し語化する最も軽量なライブラリ
この種のことを達成する必要がある簡単なプロジェクトがあります。
誰かがこれを達成できる最も軽い方法のライブラリを教えてもらえますか? (Lucene、CoreNLP などの lib があることは知っています。)しかし、これらは非常に重いので、ステマー/レンマタイザーが必要なだけです。
ありがとうございました!