メインコンテンツ

ドイツ語サポート

このトピックは、ドイツ語のテキストをサポートする Text Analytics Toolbox™ の機能についてまとめています。ドイツ語のテキスト データを解析する方法を示す例については、Analyze German Text Dataを参照してください。

トークン化

tokenizedDocument 関数は、ドイツ語の入力を自動的に検出します。あるいは、tokenizedDocument'Language' オプションを 'de' に設定します。このオプションは、トークンの言語の詳細を指定します。トークンの言語の詳細を表示するには、tokenDetails を使用します。これらの言語の詳細によって、関数 removeStopWordsaddPartOfSpeechDetailsnormalizeWordsaddSentenceDetails、および addEntityDetails のトークンに対する動作が決まります。

ドイツ語のテキストのトークン化

tokenizedDocument を使用してドイツの語テキストをトークン化します。関数は、ドイツ語のテキストを自動的に検出します。

str = [
    "Guten Morgen. Wie geht es dir?"
    "Heute wird ein guter Tag."];
documents = tokenizedDocument(str)
documents = 
  2×1 tokenizedDocument:

    8 tokens: Guten Morgen . Wie geht es dir ?
    6 tokens: Heute wird ein guter Tag .

文の検出

文書内の文構造を検出するには、addSentenceDetails を使用します。abbreviations 関数を使用すると、検出する略語のカスタム リストを作成できます。

ドイツ語文書への文の詳細の追加

tokenizedDocument を使用してドイツの語テキストをトークン化します。

str = [
    "Guten Morgen, Dr. Schmidt. Geht es Ihnen wieder besser?"
    "Heute wird ein guter Tag."];
documents = tokenizedDocument(str);

addSentenceDetails を使用して、文書に文の詳細を追加します。この関数は、tokenDetails によって返される table に文番号を追加します。最初のいくつかのトークンについて、更新されたトークンの詳細を表示します。

documents = addSentenceDetails(documents);
tdetails = tokenDetails(documents);
head(tdetails,10)
      Token      DocumentNumber    SentenceNumber    LineNumber       Type        Language
    _________    ______________    ______________    __________    ___________    ________

    "Guten"            1                 1               1         letters           de   
    "Morgen"           1                 1               1         letters           de   
    ","                1                 1               1         punctuation       de   
    "Dr"               1                 1               1         letters           de   
    "."                1                 1               1         punctuation       de   
    "Schmidt"          1                 1               1         letters           de   
    "."                1                 1               1         punctuation       de   
    "Geht"             1                 2               1         letters           de   
    "es"               1                 2               1         letters           de   
    "Ihnen"            1                 2               1         letters           de   

ドイツ語の略語の table

ドイツ語の略語の table を表示します。addSentenceDetails を使用するときに、この table を使用して、文を検出するための略語のカスタム テーブルを作成できます。

tbl = abbreviations('Language','de');
head(tbl)
    Abbreviation     Usage 
    ____________    _______

       "A.T"        regular
       "ABl"        regular
       "Abb"        regular
       "Abdr"       regular
       "Abf"        regular
       "Abfl"       regular
       "Abh"        regular
       "Abk"        regular

品詞の詳細

文書にドイツ語の品詞の詳細を追加するには、addPartOfSpeechDetails 関数を使用します。

ドイツ語テキストの品詞の詳細の取得

tokenizedDocument を使用してドイツの語テキストをトークン化します。

str = [
    "Guten Morgen. Wie geht es dir?"
    "Heute wird ein guter Tag."];
documents = tokenizedDocument(str)
documents = 
  2×1 tokenizedDocument:

    8 tokens: Guten Morgen . Wie geht es dir ?
    6 tokens: Heute wird ein guter Tag .

ドイツ語テキストの品詞の詳細を取得するには、まず addPartOfSpeechDetails を使用します。

documents = addPartOfSpeechDetails(documents);

品詞の詳細を表示するには、tokenDetails 関数を使用します。

tdetails = tokenDetails(documents);
head(tdetails)
     Token      DocumentNumber    SentenceNumber    LineNumber       Type        Language    PartOfSpeech
    ________    ______________    ______________    __________    ___________    ________    ____________

    "Guten"           1                 1               1         letters           de       adjective   
    "Morgen"          1                 1               1         letters           de       noun        
    "."               1                 1               1         punctuation       de       punctuation 
    "Wie"             1                 2               1         letters           de       adverb      
    "geht"            1                 2               1         letters           de       verb        
    "es"              1                 2               1         letters           de       pronoun     
    "dir"             1                 2               1         letters           de       pronoun     
    "?"               1                 2               1         punctuation       de       punctuation 

固有表現認識

文書にエンティティ タグを追加するには、addEntityDetails 関数を使用します。

ドイツ語テキストへの固有表現タグの追加

tokenizedDocument を使用してドイツの語テキストをトークン化します。

str = [
    "Ernst zog von Frankfurt nach Berlin."
    "Besuchen Sie Volkswagen in Wolfsburg."];
documents = tokenizedDocument(str);

ドイツ語のテキストにエンティティ タグを追加するには、addEntityDetails 関数を使用します。この関数は、個人の名前、場所、組織、およびその他の固有表現を検出します。

documents = addEntityDetails(documents);

エンティティの詳細を表示するには、関数 tokenDetails を使用します。

tdetails = tokenDetails(documents);
head(tdetails)
       Token       DocumentNumber    SentenceNumber    LineNumber       Type        Language    PartOfSpeech      Entity  
    ___________    ______________    ______________    __________    ___________    ________    ____________    __________

    "Ernst"              1                 1               1         letters           de       proper-noun     person    
    "zog"                1                 1               1         letters           de       verb            non-entity
    "von"                1                 1               1         letters           de       adposition      non-entity
    "Frankfurt"          1                 1               1         letters           de       proper-noun     location  
    "nach"               1                 1               1         letters           de       adposition      non-entity
    "Berlin"             1                 1               1         letters           de       proper-noun     location  
    "."                  1                 1               1         punctuation       de       punctuation     non-entity
    "Besuchen"           2                 1               1         letters           de       verb            non-entity

"person""location""organization"、または "other" のエンティティでタグ付けされた単語を表示します。これらの単語は、"non-entity" でタグ付けされていない単語です。

idx = tdetails.Entity ~= "non-entity";
tdetails(idx,:)
ans=5×8 table
       Token        DocumentNumber    SentenceNumber    LineNumber     Type      Language    PartOfSpeech       Entity   
    ____________    ______________    ______________    __________    _______    ________    ____________    ____________

    "Ernst"               1                 1               1         letters       de       proper-noun     person      
    "Frankfurt"           1                 1               1         letters       de       proper-noun     location    
    "Berlin"              1                 1               1         letters       de       proper-noun     location    
    "Volkswagen"          2                 1               1         letters       de       noun            organization
    "Wolfsburg"           2                 1               1         letters       de       proper-noun     location    

ストップ ワード

トークンの言語の詳細に従って文書からストップ ワードを削除するには、removeStopWords を使用します。ドイツ語のストップ ワードのリストについては、stopWords'Language' オプションを 'de' に設定します。

文書からのドイツ語ストップ ワードの削除

tokenizedDocument を使用してドイツの語テキストをトークン化します。関数は、ドイツ語のテキストを自動的に検出します。

str = [
    "Guten Morgen. Wie geht es dir?"
    "Heute wird ein guter Tag."];
documents = tokenizedDocument(str)
documents = 
  2×1 tokenizedDocument:

    8 tokens: Guten Morgen . Wie geht es dir ?
    6 tokens: Heute wird ein guter Tag .

関数 removeStopWords を使用してストップ ワードを削除します。関数は、文書の言語の詳細を使用して、どの言語のストップ ワードを削除するかを決定します。

documents = removeStopWords(documents)
documents = 
  2×1 tokenizedDocument:

    5 tokens: Guten Morgen . geht ?
    5 tokens: Heute wird guter Tag .

ステミング

トークンの言語の詳細に従ってトークンをステミングするには、normalizeWords を使用します。

ドイツ語のテキストのステミング

関数 tokenizedDocument を使用してドイツ語のテキストをトークン化します。関数は、ドイツ語のテキストを自動的に検出します。

str = [
    "Guten Morgen. Wie geht es dir?"
    "Heute wird ein guter Tag."];
documents = tokenizedDocument(str);

normalizeWords を使用してトークンをステミングします。

documents = normalizeWords(documents)
documents = 
  2×1 tokenizedDocument:

    8 tokens: gut morg . wie geht es dir ?
    6 tokens: heut wird ein gut tag .

言語に依存しない機能

単語と n-gram のカウント

関数 bagOfWords および関数 bagOfNgrams は、言語に関係なく、tokenizedDocument の入力をサポートします。データを含む tokenizedDocument 配列がある場合、これらの関数を使用できます。

モデル化と予測

関数 fitlda および関数 fitlsa は、言語に関係なく、bagOfWords および bagOfNgrams の入力をサポートします。データを含む bagOfWords オブジェクトまたは bagOfNgrams オブジェクトがある場合、これらの関数を使用できます。

関数 trainWordEmbedding は、言語に関係なく、tokenizedDocument またはファイルの入力をサポートします。tokenizedDocument 配列または正しい形式のデータを含むファイルがある場合、この関数を使用できます。

参考

| | | | | |

トピック