ステマーとレマティザーの比較
質問
自然言語処理 (NLP) は、特に英語の場合、完璧なレムマターが存在すれば、ステミングが古風な技術になる段階にまで発展しています。それは、ステマーが単語/トークンの表面的な形を意味のないステムに変えてしまうからです。
なぜなら、異なる NLP タスクでは、異なるレベルのレムマタイズが必要とされるからです。たとえば 動詞/名詞/形容詞の形間の単語を変換する .
ステマ
[in]: having
[out]: hav
レンマタイザー
[in]: having
[out]: have
-
では、英語のステマーは現在まったく役に立っていないのでしょうか。英語用の膨大な数のレムマター化ツールがあるのですから。
-
もしそうでなければ、私たちはどのようにして を構築するためにどのように動けばよいのでしょうか?
nounify
,verbify
,adjectify
とadverbify
の前処理を行うか? -
lemmatizationタスクはどのようにして他の言語に簡単にスケールアップできるのでしょうか? どのようにスケールアップできるでしょうか?
どのように解決するのですか?
Q1: "[...]英語のステマーは、今日、まったく役に立ちませんか? 英語用のlemmatizationツールはたくさんありますから"。
そうです。 ステマーはレムマタイザーよりはるかにシンプルで小さく、通常は高速です。 であり、多くのアプリケーションでその結果は で十分です。 . そのためにレムマタイザーを使うのは資源の無駄遣いです。例えば、情報検索における次元削減を考えてみましょう。情報検索の次元削減では、すべての ドライブ/運転 を ドライブ が検索された文書とクエリの両方に含まれる。であるかどうかは気にしない。 ドライブ であるか ドライブ または x17a$ のように、屈折して関連する単語をクラスタリングすることができます。
Q2: "[...]名詞化、動詞化、形容詞化、副詞化の前処理を行うことができる堅牢なレマタイザーを構築するには、どのように進めばよいですか?
あなたの レンマの定義は何ですか? は派生を含むのでしょうか ( ドライブ - ドライバー ) または抑揚のみ ( ドライブ - ドライブ - ドライブ )? セマンティクスを考慮しているのでしょうか?
を含めたい場合 派生 (ほとんどの人は名詞の動詞化などを含むと言うでしょう) を含めたいなら、派生はもっとずっと 不規則 であることに留意してください。多くの特異性、ギャップなどがあります。本当に必要なのか? を変えたいのか? ( 列車を乗り換える ) と を変更する (コインとして)は同じレンマを持つのでしょうか?そうでない場合、どこに境界線を引くのでしょうか?どうでしょう。 神経 - 苛立たせる , 地球 -- アース - 地球人 , ... それは本当にアプリケーションに依存します。
もしあなたが セマンティクス ( 銀行 というラベルが貼られます。 銀行-お金 または バンクリバー を区別するか)、どの程度の深さまで行くのか? 銀行-施設 と バンクビルディング )? あるアプリケーションはこれをまったく気にしないかもしれませんし、あるものは基本的なセマンティクスを区別したいと思うかもしれませんし、あるものはきめ細かいことを望むかもしれません。
Q3: "どのようにしてlemmatizationタスクは英語と同様の形態素構造を持つ他の言語に簡単にスケールさせることができるでしょうか?
英語と似たような形態素構造とはどういう意味ですか?英語は屈折形態素が非常に少ないです。他の形態素(屈折、膠着、テンプレート、...)の言語にも良いレムマタイズがあります。
膠着言語の可能な例外を除いて、私は ルックアップテーブル (例えば圧縮されたトライ) が最良の解決策であると主張します。(固有名詞のような未知の単語には、いくつかのバックアップ ルールを使用することもできます)。ルックアップの後に、何らかの曖昧性解消が行われます(最初のものを取る、単語の品詞タグと一致するものを取る、といった些細なものから、より洗練されたものまで様々です)。より高度な曖昧性解消は、通常、教師あり確率的アルゴリズム(例. ツリータガー または より速く など)、機械学習と手動で作成したルールの組み合わせも行われていますが(例えば この ).
明らかに、ほとんどの言語では、ルックアップテーブルを手作業で作成することはありません。 その代わりに、その言語の形態素の記述から生成します。 その言語の形態素の記述から生成します。屈折する言語については、チェコ語の Hajic や Mikheev のような工学的な方法を取ることができます。 チェコ語のHajicやロシア語のMikheevのような方法、あるいは、大胆に言えば 2レベルの形態素を使うこともできます。あるいは、その中間的なやり方もある。 例えば ハナ (私) (ただし,これらはすべてlemmatizationを含む完全な 形態素解析器です)。また、教師なし学習で のように教師無しで学習することもできます。 Yarowsky と Wicentowski のような教師なしレンマタイザーで、場合によっては手動で後処理を行い、頻出単語を修正します。 を行い、最も頻度の高い単語を修正します。
オプションが多すぎて、結果を使って何をしたいのかにすべてがかかっています。
関連
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] Stupid Backoffの実装の明確化
-
TypeError: zip 引数 #1 は反復をサポートしなければならない 解決策。
-
BERT事前学習に基づく中国語名前付き固有表現認識のTensorFlow実装
-
pyhanlpレポートについて FileNotFoundError: [Errno 2] No such file or directory: '/usr/lib/jvm' エラー解決法
-
[解決済み】2つのテキスト文書間の類似性を計算する方法は?
-
[解決済み] lemmatizationとstemmingの違いは何ですか?
-
[解決済み] 単語中の音節を検出する
-
[解決済み] Did you mean "を実装するには?重複