問題タブ [stemming]

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 投票する
2 に答える
2739 参照

solr - SolrSnowballステマーがスペイン語と矛盾しています

私はこのステムフィールドを持っています:

検索クエリalquileres(rents)の期待される結果は、 alquiler(rent)と一致します。しかし、Solr Adminサイトの「FieldAnalysis」にアクセスして、のインデックス値alquilerとクエリ値を確認するとalquileres、次のようになります。

  • インデックスを作成alquilerすると、にステム処理されalquilます。
  • クエリalquileresを実行すると、にステミングされ alquilerます。

したがって、単語の複数形()を検索する単純なケースは、alquileresその単数形()と一致しませんalquiler

インデックスとクエリの両方を同じ語幹(alquilerまたはalquil)にまとめるべきではありませんか?これはアルゴリズムの制限ですか、それとも私の側からの誤解/設定ミスですか?

0 投票する
3 に答える
2007 参照

php - Sphinx のスロベニア語ステマー

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

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

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

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


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

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

lucene - Lucene アナライザーの作成

基本的なヘブライ語のステミングを行いたいです。

私が見つけることができるカスタム アナライザーのすべての例は、常に他のアナライザーとフィルターをマージしますが、文字列レベルの処理自体は決して行いません。

たとえば、取得したストリーム内の用語ごとに、次のルールに従って 1 つまたは 2 つの用語を出力するアナライザーを作成したい場合、どうすればよいでしょうか。そのまま渡されます。着信用語が「a」で始まる場合、2 つの用語が発せられる必要があります。元の用語と、先頭の「a」がなく、ブーストが低い 2 番目の用語です。

そのため、ドキュメントに「help away」が含まれている場合、「help」、「away」、「way^0.8」が返されます。

これを行うには、アナライザーのどのメソッドをオーバーライドする必要がありますか? (同様の性質の例へのポインタは非常に役立ちます)。

ありがとう

0 投票する
4 に答える
5855 参照

java - ステミングの逆のプロセス

Lucene Snowball Analyzer を使用してステミングを実行します。結果は意味のある言葉ではありません。この質問を参照しました。

解決策の 1 つは、単語の語幹バージョンと単語の 1 つの安定したバージョンとの間のマップを含むデータベースを使用することです。(communiti から community への例。communti のベースが何であれ(communities / または他の単語))

そのような機能を実行するデータベースがあるかどうか知りたいです。

0 投票する
2 に答える
929 参照

java - 単語見出し語化および同様のタスクのための独自のルールを作成するためのツール

少し変わった要件で多くの自然言語処理を行っています。多くの場合、見出し語化に似たタスクを取得します。単語 (またはテキストの一部) が与えられた場合、いくつかのパターンを見つけて、何らかの方法で単語を変換する必要があります。たとえば、スペルミスを修正する必要がある場合があります。たとえば、「eatin」という単語が与えられた場合、それを「eating」に変換する必要があります。または、「あははは」、「あはははは」などの単語を「あはは」などに変換する必要があるかもしれません。

そのため、そのような場合の変換ルールを定義できる汎用ツールを探しています。ルールは次のようになります。

つまり、キャプチャされたパターンを左側から右側に使用できるようにする必要があります。

私はプログラミングをまったく知らない言語学者と仕事をしているので、理想的には、このツールは外部ファイル単純な言語をルールに使用する必要があります。

私は Clojure でこのプロジェクトを行っているので、理想的にはこのツールは JVM 言語 (Java、Scala、Clojure) のいずれかのライブラリである必要がありますが、他の言語やコマンド ライン ツールも問題ありません。

GATEStanford CoreNLPNLTKなど、非常に優れた NLP プロジェクトがいくつかありますが、私はそれらすべての専門家ではないため、必要なツールを見逃す可能性があります。もしそうなら、私に知らせてください。

私はいくつかの言語で作業しており、非常に異なるタスクを実行しているため、具体的な言語の具体的なレンマタイザー、ステマー、スペルミスの修正などは私のニーズに合わないことに注意してください-もっと汎用的なツールが本当に必要です。

アップデート。必要なものの詳細/例をいくつか提供する必要があるようです。

基本的に、テキストをある種の正規表現 (Java の に似ています) に置き換える関数が必要ですが、キャッチされたテキストを置換文字列で使用String.replaceAll()する可能性があります。たとえば、現実世界のテキストでは、人々は特定の単語を強調するために文字を繰り返すことがよくあります。これらの繰り返しの "oooo" を 1 文字だけに置き換えることができる必要があります。したがって、次のようなルールがあるかもしれません (この投稿で以前に使用したものと同様の構文で):

つまり、いくつかの文字 ( chars1) で始まり、少なくとも 3 文字で、場合によっては他の文字 ( chars2) で終わる単語を同様の文字列に置き換えますが、単一の . ここでの重要なポイントは、ルールの左側でキャッチし、右側で使用することです。

0 投票する
2 に答える
1547 参照

wordnet - Stemming in Wordnet API

Java アプリケーションで wordnet を使用するために、MIT Wordnet API (http://projects.csail.mit.edu/jwi/) を使用しています。次の問題があります。

http://wordnetweb.princeton.eduの Wordnet 検索で「signed」を検索すると、「signed」が形容詞 (例: signed book) として、「sign」が動詞として表示されます。完全。

ただし、MIT API を使用すると、形容詞しか取得できません。これはステミングによるものだと理解しているので、MIT API で利用できる wordnet ステマーを使用して「sign」を取得します。良い。しかし、「sign」は今や名詞にもなる可能性があり、事態は非常に複雑になる可能性があります。

API を介して Wordnet 検索 Web インターフェイスと同じ結果を得る「簡単な」方法はありますか? 別の API を使用してもかまいません。

ありがとう!

Krt_マルタ

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

php - サイト検索で使用されるPorterStemmer

私のウェブサイトの検索エンジンには、ここhttp://tartarus.org/~martin/PorterStemmer/で入手可能なPHPバージョンのPorterStemmer単語ステミングアルゴリズムを使用していました。

問題は、「funny」のような単語が「funni」に変わることに気付いたところです。つまり、正しい一致が検索結果に表示されません。

Porter Stemmerアルゴリズムはサイト検索に適していますか、検索に適したアルゴリズムはありますか?また、どうすれば問題を解決できますか?

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

r - R のテキスト マイニング パッケージ... getTransformation に新しい関数を追加

テーブル ルックアップ メソッドを使用して機能する新しいステマーを追加しようとしています。h がステミング操作を含むハッシュの場合、次のようにエンコードされます: ステミング前の単語としてのキーとステミング後の単語としての値。

理想的には、次のことを可能にするカスタム ハッシュを追加したいと思います

myCorpus = tm_map(myCorpus, replaceWords, h)

replaceWords 関数が myCorpus 内の各ドキュメントに適用され、ハッシュを使用してドキュメントの内容を抽出します

私のreplaceWords関数のサンプルコードは次のとおりです

これは機能しますが、変換されたコーパスには、タイプ「TextDocument」または「PlainTextDocument」ではなくタイプ「character」のコンテンツが含まれなくなりました

使ってみた

しかし、実行しようとするとエラーが発生します。

R の tm パッケージの以前のバージョンでは、同義語と WORDNET ベースの置換を可能にする replaceWords 関数を確認しました。しかし、現在のバージョンの tm パッケージでは表示されなくなりました (特に関数 getTransformations() を呼び出す場合)。

これを実現する方法についてアイデアを持っている人はいますか?

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

乾杯、シヴァニ

ありがとう、シヴァニ・ラオ

0 投票する
2 に答える
140 参照

search - 「歯科」などのクエリから「歯科」、「歯科医」などの単語を取得するための適切なアプローチ (およびその逆)

私はステミングにある程度精通していますが、プロジェクトに使用するために与えられたステミング ライブラリは、次のいずれかのクエリを実行する場合のように、関連する単語を見つけたい場合にはうまく機能しません。

「歯科」、「歯医者」、「歯科」

私は他の人たちと一致するはずです。私はこれを調べていて、関連語やトロポニムなど、存在さえ知らなかった品詞について学んでいるので、これらすべての間のマッピングを持つライブラリがそこにないのではないかと思っています私が探している種類の一致を返すことができるさまざまな品詞?

私はこれを検索してきましたが、理解できるものはあまり見つかりませんでした。私はおそらく正しい用語などを知らないので、誰かが私を正しい方向に向けることができれば幸いです.

0 投票する
3 に答える
1411 参照

nlp - 単語ステミングと複数化解除の違い

文字列マッチングを理解する上で:語幹抽出と複数化解除の正確な違いは何ですか?

それとも同じ意味ですか?