問題タブ [lemmatization]
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.
java - レマタイゼーション用の Java ツール
形容詞を含む英語で見出し語化を実行する必要があります。
例: メキシコ --> メキシコ
できれば Java のツールをお勧めできますか。
ステミングではなく、見出し語化を探していることを強調したいと思います。
nlp - 英語のlemmatizerデータベース?
次のサンプル単語に対して正しい結果を返す十分な大きさのレンマタイザーデータベースを知っていますか?
Wordnetの形態素解析器は、次の誤った結果をもたらすため、十分ではありません。
python - Nltk の WordNetLemmatizer は単語を語幹化できますか?
で単語の語幹を検索したいWordnet
。wordnet
ステミング機能はありますか?このインポートをステミングに使用していますが、期待どおりに動作しません。
php - wordnetを使用して単語の見出語を取得する
Wordnetを使用して特定の単語の補題を取得するにはどうすればよいですか。ワードネットのドキュメントで欲しいものが見つからなかったようです。 http://wordnet.princeton.edu/wordnet/man/wn.1WN.html
たとえば、「本」という単語の場合、「本」、灰=>灰、予約=>本、リンゴ=>リンゴ...などを取得します。
コマンドラインでwordnetを使用してこれを実現したいのですが、そのような場合を取得するための正確なオプションが見つかりません。
私はもともとwordnetphpAPIを使用するつもりだったので、phpソリューションも非常に役立ちますが、彼らのWebサイトにある現在のソリューションは機能していないようです。
python - nltk lemmatizer は、Americans という単語をどう処理すればよいかわかりません
以下を実行しました。
どちらも引数を返すだけです。アメリカ人をアメリカ人に減らしてほしい。これを実現する方法を知っている人はいますか?
レマタイザーが使用している内部辞書を変更する必要があると思いました。これは正しいです?誰もがより良い方法を知っていますか?
ありがとう!
java - 辞書検索を回避する効率的なLemmatizer
'eat'のような文字列を'eating'、'eats'に変換したい。私は解決策としてレンマタイゼーションを検索して見つけましたが、私が見つけたすべてのレンマタイザーツールはワードリストまたは辞書ルックアップを使用しています。辞書検索を回避し、高効率を提供するレンマタイザーはありますか?ルールに基づくレンマタイザーである可能性があります。はい、私は「ステマー」を探していません。
java - 単語見出し語化および同様のタスクのための独自のルールを作成するためのツール
少し変わった要件で多くの自然言語処理を行っています。多くの場合、見出し語化に似たタスクを取得します。単語 (またはテキストの一部) が与えられた場合、いくつかのパターンを見つけて、何らかの方法で単語を変換する必要があります。たとえば、スペルミスを修正する必要がある場合があります。たとえば、「eatin」という単語が与えられた場合、それを「eating」に変換する必要があります。または、「あははは」、「あはははは」などの単語を「あはは」などに変換する必要があるかもしれません。
そのため、そのような場合の変換ルールを定義できる汎用ツールを探しています。ルールは次のようになります。
つまり、キャプチャされたパターンを左側から右側に使用できるようにする必要があります。
私はプログラミングをまったく知らない言語学者と仕事をしているので、理想的には、このツールは外部ファイルと単純な言語をルールに使用する必要があります。
私は Clojure でこのプロジェクトを行っているので、理想的にはこのツールは JVM 言語 (Java、Scala、Clojure) のいずれかのライブラリである必要がありますが、他の言語やコマンド ライン ツールも問題ありません。
GATE、Stanford CoreNLP、NLTKなど、非常に優れた NLP プロジェクトがいくつかありますが、私はそれらすべての専門家ではないため、必要なツールを見逃す可能性があります。もしそうなら、私に知らせてください。
私はいくつかの言語で作業しており、非常に異なるタスクを実行しているため、具体的な言語の具体的なレンマタイザー、ステマー、スペルミスの修正などは私のニーズに合わないことに注意してください-もっと汎用的なツールが本当に必要です。
アップデート。必要なものの詳細/例をいくつか提供する必要があるようです。
基本的に、テキストをある種の正規表現 (Java の に似ています) に置き換える関数が必要ですが、キャッチされたテキストを置換文字列で使用String.replaceAll()
する可能性があります。たとえば、現実世界のテキストでは、人々は特定の単語を強調するために文字を繰り返すことがよくあります。これらの繰り返しの "oooo" を 1 文字だけに置き換えることができる必要があります。したがって、次のようなルールがあるかもしれません (この投稿で以前に使用したものと同様の構文で):
つまり、いくつかの文字 ( chars1
) で始まり、少なくとも 3 文字で、場合によっては他の文字 ( chars2
) で終わる単語を同様の文字列に置き換えますが、単一の . ここでの重要なポイントは、ルールの左側でキャッチし、右側で使用することです。
python - レマタイザーの構築: 速度の最適化
私はPythonでレンマタイザーを構築しています。リアルタイムで実行/かなり大量のデータを処理する必要があるため、処理速度が重要です。データ: 組み合わせることができるすべての単語タイプにリンクされているすべての可能な接尾辞があります。さらに、ワードタイプとレンマの両方にリンクされているレンマフォームがあります。プログラムは入力として単語を受け取り、その補題を出力します。単語 = 補題 + 接尾辞
例 (注: 例は英語で示されていますが、私は英語のレンマタイザーを作成していません):
言葉:禁止
見出し語: 禁止
接尾辞:ing
レンマ: 禁止する
私の解決策:
データを(ネストされた)辞書に変換しました:
1) 可能なすべての接尾辞とそれらがリンクされている単語の種類を見つけます。可能な限り長い接尾辞が 3 文字の長さである場合、プログラムは 'ing'、'ng'、'n' を suffixdict のキーに一致させようとします。キーが存在する場合、値 (ワードタイプのセット) を返します。
2) 一致するサフィックスごとに、dict からレンマフォームを検索します。lemmaform が存在する場合、wordtypes を返します。
3) 最後に、プログラムはステップ 1) と 2) で生成された単語タイプの交差を試み、交差が成功した場合、単語のレンマを返します。
私の質問: 速度の観点から、私の問題に対するより良い解決策はありますか? (頻繁な単語と補題を辞書に保持するオプションを無視して) 大いに感謝します。
mysql - 見出し語化を Sphinx に統合する
数十万のテキスト ドキュメントを含む MySQL データベースがあり、これらのテキスト ファイルを検索する必要があります。Sphinx を使用して検索機能を実装することにしました。ただし、ユーザーが検索語のさまざまな形式をすべて見つけられるようにする必要があります。かなり正確な結果を生成できる lemmatizer を python で作成しました。私の質問は、それを Sphinx と統合する方法ですか? 大いに感謝します。
編集:まだ回答がないので、「本当に難しい」「できない」などのコメントも評価されることを追加したいと思います. 私のアイデアに問題がある場合は、知っておくとよいでしょう :)
python - フランス語のテキストをレンマライズする
何らかの方法で処理する必要があるフランス語のテキストがあります。そのためには、次のことが必要です。
- まず、テキストを単語にトークン化します
- 次に、それらの単語を見出し語化して、同じ語根を複数回処理しないようにします
私の知る限り、NLTK の wordnet lemmatizer は英語でのみ機能します。「voudrais」などを与えると「vouloir」を返すことができるものが欲しいです。また、アポストロフィのために適切にトークン化できません。任意のポインタをいただければ幸いです。:)