日本語言語サポート
このトピックは、日本語のテキストをサポートする Text Analytics Toolbox™ の機能についてまとめています。日本語のテキスト データを解析する方法を示す例については、日本語のテキスト データの解析を参照してください。
トークン化
関数 tokenizedDocument
は、日本語の入力を自動的に検出します。あるいは、tokenizedDocument
の 'Language'
オプションを 'ja'
に設定します。このオプションは、トークンの言語の詳細を指定します。トークンの言語の詳細を表示するには、tokenDetails
を使用します。これらの言語の詳細によって、関数 removeStopWords
、addPartOfSpeechDetails
、normalizeWords
、addSentenceDetails
、および addEntityDetails
のトークンに対する動作が決まります。
トークン化のための追加の MeCab オプションを指定するには、mecabOptions
オブジェクトを作成します。指定された MeCab トークン化オプションを使用してトークン化するには、tokenizedDocument
の 'TokenizeMethod'
オプションを使用します。
日本語のテキストのトークン化
tokenizedDocument
を使用して日本語のテキストをトークン化します。関数は、日本語のテキストを自動的に検出します。
str = [ "恋に悩み、苦しむ。" "恋の悩みで苦しむ。" "空に星が輝き、瞬いている。" "空の星が輝きを増している。"]; documents = tokenizedDocument(str)
documents = 4x1 tokenizedDocument: 6 tokens: 恋 に 悩み 、 苦しむ 。 6 tokens: 恋 の 悩み で 苦しむ 。 10 tokens: 空 に 星 が 輝き 、 瞬い て いる 。 10 tokens: 空 の 星 が 輝き を 増し て いる 。
品詞の詳細
既定では、関数 tokenDetails
はトークンの詳細とともに品詞の詳細を含めます。
日本語テキストの品詞の詳細の取得
tokenizedDocument
を使用して日本語のテキストをトークン化します。
str = [ "恋に悩み、苦しむ。" "恋の悩みで 苦しむ。" "空に星が輝き、瞬いている。" "空の星が輝きを増している。" "駅までは遠くて、歩けない。" "遠くの駅まで歩けない。" "すもももももももものうち。"]; documents = tokenizedDocument(str);
日本語のテキストの場合、tokenDetails
を使用して品詞の詳細を取得できます。英語のテキストの場合、最初に addPartOfSpeechDetails
を使用しなければなりません。
tdetails = tokenDetails(documents); head(tdetails)
Token DocumentNumber LineNumber Type Language PartOfSpeech Lemma Entity _______ ______________ __________ ___________ ________ ____________ _______ __________ "恋" 1 1 letters ja noun "恋" non-entity "に" 1 1 letters ja adposition "に" non-entity "悩み" 1 1 letters ja verb "悩む" non-entity "、" 1 1 punctuation ja punctuation "、" non-entity "苦しむ" 1 1 letters ja verb "苦しむ" non-entity "。" 1 1 punctuation ja punctuation "。" non-entity "恋" 2 1 letters ja noun "恋" non-entity "の" 2 1 letters ja adposition "の" non-entity
固有表現認識
既定では、関数 tokenDetails
はトークンの詳細とともにエンティティの詳細を含めます。
日本語テキストへの固有表現タグの追加
tokenizedDocument
を使用して日本語のテキストをトークン化します。
str = [ "マリーさんはボストンからニューヨークに引っ越しました。" "駅へ鈴木さんを迎えに行きます。" "東京は大阪より大きいですか?" "東京に行った時、新宿や渋谷などいろいろな所を訪れました。"]; documents = tokenizedDocument(str);
日本語のテキストの場合、固有表現タグがソフトウェアによって自動的に追加されるため、関数 addEntityDetails
を使用する必要はありません。このソフトウェアは、個人の名前、場所、組織、およびその他の固有表現を検出します。エンティティの詳細を表示するには、関数 tokenDetails
を使用します。
tdetails = tokenDetails(documents); head(tdetails)
Token DocumentNumber LineNumber Type Language PartOfSpeech Lemma Entity ____________ ______________ __________ _______ ________ ____________ ____________ __________ "マリー" 1 1 letters ja proper-noun "マリー" person "さん" 1 1 letters ja noun "さん" person "は" 1 1 letters ja adposition "は" non-entity "ボストン" 1 1 letters ja proper-noun "ボストン" location "から" 1 1 letters ja adposition "から" non-entity "ニューヨーク" 1 1 letters ja proper-noun "ニューヨーク" location "に" 1 1 letters ja adposition "に" non-entity "引っ越し" 1 1 letters ja verb "引っ越す" non-entity
"person"
、"location"
、"organization"
、または "other"
のエンティティでタグ付けされた単語を表示します。これらの単語は、"non-entity"
のタグが付けられていない単語です。
idx = tdetails.Entity ~= "non-entity";
tdetails(idx,:).Token
ans = 11x1 string
"マリー"
"さん"
"ボストン"
"ニューヨーク"
"鈴木"
"さん"
"東京"
"大阪"
"東京"
"新宿"
"渋谷"
ストップ ワード
トークンの言語の詳細に従って文書からストップ ワードを削除するには、removeStopWords
を使用します。日本語のストップ ワードのリストについては、stopWords
の 'Language'
オプションを 'ja'
に設定します。
日本語のストップ ワードの削除
tokenizedDocument
を使用して日本語のテキストをトークン化します。関数は、日本語のテキストを自動的に検出します。
str = [ "ここは静かなので、とても穏やかです" "企業内の顧客データを利用し、今年の売り上げを調べることが出来た。" "私は先生です。私は英語を教えています。"]; documents = tokenizedDocument(str);
removeStopWords
を使用してストップ ワードを削除します。この関数は、documents
の言語の詳細を使用して、どの言語のストップ ワードを削除するかを決定します。
documents = removeStopWords(documents)
documents = 3x1 tokenizedDocument: 4 tokens: 静か 、 とても 穏やか 10 tokens: 企業 顧客 データ 利用 、 今年 売り上げ 調べる 出来 。 5 tokens: 先生 。 英語 教え 。
レンマ化
トークンの言語の詳細に従ってトークンをレンマ化するには、normalizeWords
を使用し、'Style'
オプションを 'lemma'
に設定します。
日本語のテキストのレンマ化
関数 tokenizedDocument
を使用して日本語のテキストをトークン化します。関数は、日本語のテキストを自動的に検出します。
str = [ "空に星が輝き、瞬いている。" "空の星が輝きを増している。" "駅までは遠くて、歩けない。" "遠くの駅まで歩けない。"]; documents = tokenizedDocument(str);
normalizeWords
を使用してトークンをレンマ化します。
documents = normalizeWords(documents)
documents = 4x1 tokenizedDocument: 10 tokens: 空 に 星 が 輝く 、 瞬く て いる 。 10 tokens: 空 の 星 が 輝き を 増す て いる 。 9 tokens: 駅 まで は 遠い て 、 歩ける ない 。 7 tokens: 遠く の 駅 まで 歩ける ない 。
言語に依存しない機能
単語と n-gram のカウント
関数 bagOfWords
および関数 bagOfNgrams
は、言語に関係なく、tokenizedDocument
の入力をサポートします。データを含む tokenizedDocument
配列がある場合、これらの関数を使用できます。
モデル化と予測
関数 fitlda
および関数 fitlsa
は、言語に関係なく、bagOfWords
および bagOfNgrams
の入力をサポートします。データを含む bagOfWords
オブジェクトまたは bagOfNgrams
オブジェクトがある場合、これらの関数を使用できます。
関数 trainWordEmbedding
は、言語に関係なく、tokenizedDocument
またはファイルの入力をサポートします。tokenizedDocument
配列または正しい形式のデータを含むファイルがある場合、この関数を使用できます。
参考
tokenizedDocument
| removeStopWords
| stopWords
| addPartOfSpeechDetails
| tokenDetails
| normalizeWords
| addLanguageDetails
| addEntityDetails