問題タブ [snowball]
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.
python - nltk.stem.snowball を使用して Shakespere/KJV をステム処理する方法
初期の現代英語のテキストをステミングしたい:
どうやら、私がする必要があるのは、Snowball Stemmer を微調整することだけです。
エンディングを英語のステマーに入れるには、リスト
edly ingly ingly
ステップ 1b の
edly ingly est eth edly ingly est eth
Snowball スクリプトに関する限り、末尾の 'ing' に対して末尾の 'est' 'eth' を追加する必要があります。
すばらしいので、変数を変更するだけです。おそらく、「thee」/「thou」/「you」および「shall」/「shall」を扱う特別なルールを追加します。NLTK のドキュメントでは、変数を次のように示しています。
クラスnltk.stem.snowball.EnglishStemmer(ignore_stopwords=False)
ベース: nltk.stem.snowball._StandardStemmer
英語の Snowball ステマー。
変数:
__vowels – 英語の母音。
__double_consonants – 英語の二重子音。
__li_ending – 語尾の「li」の直前に現れる文字。
__step0_suffixes – アルゴリズムのステップ 0 で削除されるサフィックス。
__step1a_suffixes – アルゴリズムのステップ 1a で削除されるサフィックス。
__step1b_suffixes – アルゴリズムのステップ 1b で削除されるサフィックス。(どうぞ)
__step2_suffixes – アルゴリズムのステップ 2 で削除されるサフィックス。
__step3_suffixes – アルゴリズムのステップ 3 で削除されるサフィックス。
__step4_suffixes – アルゴリズムのステップ 4 で削除されるサフィックス。
__step5_suffixes – アルゴリズムのステップ 5 で削除されるサフィックス。
__special_words – 特別にステミングする必要がある単語を含む辞書。(「thee」/「thou」と「sholt」の問題をここに貼り付けることができます)
さて、ばかげた質問です。変数を変更するにはどうすればよいですか? 変数を探したところどこでも、「オブジェクトに属性がありません」というメッセージが表示され続けます...
python - Snowball のカタロニア語ステマーの使い方
ここで提供されているカタロニア語ステマーを使用したい: http://snowball.tartarus.org/algorithms/catalan/stemmer.html
しかし、私がするとき:
それは言います:
カタロニア語はサポートされていません
誰でも私を助けることができますか?私は何を間違っていますか?
スペイン語の場合、次のように入力すると機能します。
どうもありがとう!
elasticsearch - フランス語の Elasticsearch Snowball が正しくステミングしない
フランス語で同じ語幹語に問題があるのを見たことがあります。
ここに例があります:フランス語で雪だるま
また
そしてtoken
鍵を見る
これらすべての単語に同じ語幹を持たせるにはどうすればよいでしょうか?
r - tm パッケージの stemDocment が過去時制の単語で機能しない
「 say say say make made 」を含むファイル「check_text.txt」があります。「say say say make make」を取得するためにステミングを実行したいと思います。stemDocument
次のようにパッケージで使用しようとしましtm
たが、「sais say make made」しか取得しません。過去時制の単語のステミングを実行する方法はありますか? 現実世界の自然言語処理でそうする必要がありますか? ありがとう!
編集:私もパッケージで試しwordStem
ましたSnowballC
elasticsearch - Elasticsearch 言語アナライザー (ドイツ語) の構成方法またはカスタム ノーマライザーの作成方法
ドイツ語アナライザーを使用して、一部のコンテンツをトークン化しています。基本的に、「lowercase」、「german_stop」、「german_keywords」、「german_normalization」、「german_stemmer」のマクロ フィルターであることはわかっています。
私の問題は、正規化フィルターに関係しています。Elasticsearch のドキュメントとフィルターのLucene 実装は次のとおりです。問題は、ae ue と oe がドイツ語の文字 ä、ö、ü として扱われるため、a、o、u に変換されることです。
2 番目の変換は優れていますが、最初の変換は解決するよりも多くの問題を引き起こします。通常、ドイツ語のテキストには ä、ü、ö を実際に表す ae、ue、oe はありません。それらが実際に現れるほとんどの時間は、「エアロダイナミク」(空気力学)のようなラテン語または英語に由来する外国語の中にあります。次に、フィルターは「Ae」を「Ä」として解釈し、「A」に変換します。これにより、「arodynamik」がトークンとして生成されます。通常、検索語もそのフィルタで正規化されるため、これは問題になりません。ただし、ワイルドカード検索と組み合わせると、これが問題になります。
「FooEdit」のような単語を想像してみてください。これは「foodit」にトークン化されます。'edit OR *edit*' の検索 (ユーザーが 'edit' を検索するときの私の通常の検索) では、'edit' の 'e' が失われたため、結果が得られません。私のコンテンツにはそのような単語がたくさんあり、人々は部分的な単語を検索しているので、見かけほど特殊なケースではありません.
だから私の質問は、「ae -> a」変換を取り除く方法はありますか? 私の理解では、これはGerman2 スノーボール アルゴリズムの一部であるため、おそらくこれを変更することはできません。つまり、正規化ステップ全体を取り除かなければならないということですか、それとも、気に入らない部分を取り除くだけの独自のバージョンのスノーボール アルゴリズムを提供できますか (カスタムの使用方法に関するドキュメントは見つかりませんでした)。正規化のためのスノーボールアルゴリズム)?
乾杯
トム
nlp - Snowball Stemming: Null 領域の定義
スノーボール ステミング アルゴリズムを理解しようとしています。HW90にも同様の質問がありましたが、私のものではありません。このアルゴリズムは、次のように定義された 2 つの領域 R1 と R2 を使用しています。
R1 は、母音に続く最初の非母音の後の領域、またはそのような非母音がない場合は単語の末尾のヌル領域です。
R2 は、R1 の母音に続く最初の非母音の後の領域、またはそのような非母音がない場合は単語の末尾のヌル領域です。
「単語の最後のヌル領域」とは何かわかりません。誰かその例を教えてください。
java - rJava を使用して、この JAR ファイルからクラスをインスタンス化するにはどうすればよいですか?
R でテキスト分析プロジェクトに取り組んでいて、ステマーが必要でした。Snowball Stemmer の Java コンパイルの JAR ファイルを見つけました。ドキュメント:
http://lucene.apache.org/core/3_0_3/api/contrib-snowball/
ダウンロード リンク (一番下のリンク)
:
http://www.java2s.com/Code/JarDownload/snowball/
この R コードは、新しいステマー オブジェクトを作成する必要があります。
ただし、コードの最後の行で次のエラーが発生します。
これにかなりの時間を費やした後 (特に、次の投稿を読んでヘルプを参照してください: https://darrenjw.wordpress.com/2011/01/01/calling-java-code-from-r/ )、正確な問題が何であるかわからないため、立ち往生しています。私が知る限り、可能性が高い順に次のようになります
。 1. コードの誤り
2. 依存関係の問題
3. JAR ファイルが何らかの形で破損している
問題がどこにあるのかについて、誰かが私にいくつかの指針を与えることができますか?
編集:回答、コメントを参照してください。この特定の jar ファイル内のクラス名は小文字です。