8

ドイツ語の単語の形態素解析を実行できるライブラリを探しています。つまり、任意の単語を語根形に変換し、分析された単語に関するメタ情報を提供します。

例えば:

gegessen -> essen
wurde [...] gefasst -> fassen
Häuser -> Haus
Hunde -> Hund

私のウィッシュリスト:

  • 名詞と動詞の両方で機能する必要があります。
  • ドイツ語の複雑さを考えると、これが非常に難しい作業であることは承知しています。そのため、近似値のみを提供するか、80% の正確さしかないライブラリも探しています。
  • 私は辞書で動作しないライブラリを好みますが、状況によっては妥協することもできます。
  • また、C/C++/Delphi の Windows ライブラリを好むと思います。統合が容易になるからですが、.NET、Java なども同様です。
  • それは無料のライブラリでなければなりません。(L)GPL、MPL、...

編集:不規則な単語のため、辞書なしで形態素解析を実行する方法がないことは承知しています。私が言うとき、私は辞書のないライブラリを好みます。つまり、すべての単語をマッピングする本格的な辞書を意味します。

arbeite -> arbeiten
arbeitest -> arbeiten
arbeitet -> arbeiten
arbeitete -> arbeiten
arbeitetest -> arbeiten
arbeiteten -> arbeiten
arbeitetet -> arbeiten
gearbeitet -> arbeiten
arbeite -> arbeiten
... 

これらの辞書には、巨大なサイズや未知の単語を処理できないなど、いくつかの欠点があります。

もちろん、すべての例外は辞書でのみ処理できます。

esse -> essen
isst -> essen
eßt -> essen
aß -> essen
aßt -> essen
aßen -> essen
...

(私の心は今、ぐるぐる回っています:))

4

8 に答える 8

7

あなたは「ステミングアルゴリズム」を探していると思います。

マーティンポーターのアプローチは、言語学者の間でよく知られています。ポーターステマーは基本的に接辞ストリッピングアルゴリズムであり、これらの特殊なケースのいくつかの置換ルールと組み合わされています。

ほとんどのステマーは、言語的に「正しくない」ステムを提供します。たとえば、「美しい」と「美しさ」の両方で、語幹「beauti」が生成される可能性がありますが、これはもちろん実際の単語ではありません。ただし、これらの語幹を使用して情報検索システムの検索結果を改善する場合は、これは問題ではありません。たとえば、 LuceneにはPorterステマーのサポートが付属しています。

Porterは、Snowballと呼ばれるステマーを開発するための簡単なプログラミング言語も考案しました。

Snowballにはドイツ語用のステマーもあります。Snowballソースから生成されたACバージョンは、アルゴリズムのプレーンテキストの説明とともにWebサイトでも入手できます。

これがSnowballのドイツ語ステマーです:http ://snowball.tartarus.org/algorithms/german/stemmer.html

辞書にある単語の対応する語幹を、品詞に関する情報とともに探している場合は、Googleで「語幹化」を行う必要があります。

于 2009-03-25T11:11:19.183 に答える
5

(免責事項: 私は自分のオープン ソース プロジェクトをここにリンクしています)

単語リスト形式のこのデータは、http://www.danielnaber.de/morphologie/で入手できます。リストにない複合名詞をカバーするために、単語分割ライブラリ (jwordsplitter など) と組み合わせることができます。

または、単語リストがコンパクトな有限状態マシンの形式で埋め込まれているJava の LanguageTool を使用するだけです (さらに、複合分割も含まれます)。

于 2012-11-28T22:57:04.953 に答える
3

少し前に質問しましたが、まだmorphistoで試してみてください。

Ubuntu でそれを行う方法の例を次に示します。

  1. シュトゥットガルト有限状態トランスデューサ ツールをインストールする

    $ sudo apt-get install sfst

  2. morphisto モルフォロジーをダウンロードします。例: morphisto-02022011.a

  3. 圧縮します。

    $ fst-compact morphisto-02022011.a morphisto-02022011.ac

  4. これを使って!ここではいくつかの例を示します。

    $エコーホッホツァイト| fst-proc morphisto-02022011.ac ^Hochzeit/hohZeit<+NN>/hohZeit<+NN>/hohZeit<+NN>/hohZeit<+NN>/HochZeit<+NN>/HochZeit<+NN>/HochZeit<+ NN>/Hochzeit<+NN>/Hochzeit<+NN>/Hochzeit<+NN>/Hochzeit<+NN>/Hochzeit<+NN>$

    $ エコーギアベイテット | fst-proc morphisto-02022011.ac ^gearbeitet/arbeiten<+ADJ>/arbeiten<+ADJ>/arbeiten<+V>$

于 2011-06-25T23:26:58.877 に答える
3

LemmaGen ( http://lemmatise.ijs.si/ ) をご覧ください。これは、見出し語化のための標準化されたオープン ソースの多言語プラットフォームを提供することを目的としたプロジェクトです。それはまさにあなたが望むことをしています。

于 2014-02-21T12:50:51.303 に答える
1

ParZu(https://github.com/rsennrich/parzu )でmorphistoを使用できます。ParZuは、ドイツ語の依存関係パーサーです。

これは、ParZuがモルフィストからの出力も明確にすることを意味します

于 2012-02-13T14:36:27.180 に答える
1

モーフのように使用できるツールがいくつかあります。Matetools、Morphisto などのコンポーネント。しかし、それらをツール チェーンに統合するのは面倒です。これらの多くの言語ツールの非常に優れたラッパーは、UIMA を使用するフレームワークであるDKpro ( https://dkpro.github.io/dkpro-core/ ) です。これにより、さまざまなリソースからさまざまな言語ツールを使用して独自の前処理パイプラインを作成できます。これらのツールはすべてコンピューターに自動的にダウンロードされ、互いに対話します。Java や Groovy、さらには Jython を使用して使用できます。DKPro では、MateMorphTagger と SfstAnnotator という 2 つの形態素アナライザーに簡単にアクセスできます。

Porter のようなステマーを使用したくない場合は、言語的に意味がなく、説明した動作を持たない方法で単語形式を減らします。不定詞となる動詞と主格単数形の名詞の基本形のみを見つけたい場合は、レンマタイザーを使用する必要があります。ドイツ語のレンマタイザーのリストは、ここにあります。Treetagger は広く使用されています。また、SMORS などの形態素アナライザーによって提供されるより複雑な分析を使用することもできます。次のような結果が得られます ( SMORS Web サイトの例)。

そして、これは「unübersetzbarstes」の接頭辞、接尾辞、および>勾配を示す分析です: un<PREF>übersetzen<V>bar<SUFF><+ADJ><Sup><Neut><Nom><Sg><St>

于 2014-10-24T20:54:43.347 に答える