Анализируйте японские текстовые данные

В этом примере показано, как импортировать, подготовить и проанализировать японские текстовые данные с помощью модели темы.

Японские текстовые данные могут быть большими и могут содержать много шума, который отрицательно влияет на статистический анализ. Для примера текстовые данные могут содержать следующее:

  • Изменения в словоформах. Например, «難しい» («трудно») и «難しかった» («было трудно»)

  • Слова, которые добавляют шум. Например, стоповые слова, такие как «あそこ» («вон там»), «あたり» («вокруг») и «あちら» («там»)

  • Пунктуация и специальные символы

Эти облака слов иллюстрируют анализ частоты слов, применяемый к некоторым необработанным текстовым данным из «吾輩は猫である» по 夏目漱石, и предварительно обработанную версию тех же текстовых данных.

Этот пример сначала показывает, как импортировать и подготовить японские текстовые данные, а затем показывает, как анализировать текстовые данные с помощью модели Latent Dirichlet Allocation (LDA). Модель LDA является моделью темы, которая обнаруживает базовые темы в наборе документов и выводит слова вероятности в темах. Используйте следующие шаги в подготовке текстовых данных и подборе кривой модели:

  • Чтение HTML кода с веб-сайта.

  • Проанализируйте HTML кода и извлеките соответствующие данные.

  • Подготовьте текстовые данные для анализа с помощью стандартных методов предварительной обработки.

  • Подбор модели темы и визуализация результатов.

Импорт данных

Считайте данные из «吾輩は猫である» по 夏目漱石 из https://www.aozora.gr.jp/cards/000148/files/789_14547.html с помощью webread функция.

Задайте кодировку символов текста используя weboptions функция. Чтобы найти правильную кодировку символов для HTML-кода, смотрите в заголовке HTML- коде. Для этого файла задайте кодировку символов "Shift_JIS".

url = "https://www.aozora.gr.jp/cards/000148/files/789_14547.html";
options = weboptions('CharacterEncoding','Shift_JIS');
code = webread(url,options);

Просмотрите первые несколько строк HTML.

extractBefore(code,"<script")
ans = 
    '<?xml version="1.0" encoding="Shift_JIS"?>
     <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
         "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
     <html xml:lang="ja" >
     <head>
     	<meta http-equiv="Content-Type" content="text/html;charset=Shift_JIS" />
     	<meta http-equiv="content-style-type" content="text/css" />
     	<link rel="stylesheet" type="text/css" href="../../aozora.css" />
     	<title>夏目漱石 吾輩は猫である</title>
     	'

Извлечение текстовых данных из HTML с помощью extractHTMLText. Разделите текст по newline персонажи.

textData = extractHTMLText(code);
textData = string(split(textData,newline));
textData(1:10)
ans = 10×1 string array
    "吾輩は猫である"
    ""
    "夏目漱石"
    ""
    " "
    ""
    "一"
    ""
    " 吾輩は猫である。名前はまだ無い。"
    " どこで生れたかとんと見当がつかぬ。何でも薄暗いじめじめした所でニャーニャー泣いていた事だけは記憶している。吾輩はここで始めて人間というものを見た。しかもあとで聞くとそれは書生という人間中で一番獰悪な種族であったそうだ。この書生というのは時々我々を捕えて煮て食うという話である。しかしその当時は何という考もなかったから別段恐しいとも思わなかった。ただ彼の掌に載せられてスーと持ち上げられた時何だかフワフワした感じがあったばかりである。掌の上で少し落ちついて書生の顔を見たのがいわゆる人間というものの見始であろう。この時妙なものだと思った感じが今でも残っている。第一毛をもって装飾されべきはずの顔がつるつるしてまるで薬缶だ。その後猫にもだいぶ逢ったがこんな片輪には一度も出会わした事がない。のみならず顔の真中があまりに突起している。そうしてその穴の中から時々ぷうぷうと煙を吹く。どうも咽せぽくて実に弱った。これが人間の飲む煙草というものである事はようやくこの頃知った。"

Удалите пустые линии текста.

idx = textData == "";
textData(idx) = [];
textData(1:10)
ans = 10×1 string array
    "吾輩は猫である"
    "夏目漱石"
    " "
    "一"
    " 吾輩は猫である。名前はまだ無い。"
    " どこで生れたかとんと見当がつかぬ。何でも薄暗いじめじめした所でニャーニャー泣いていた事だけは記憶している。吾輩はここで始めて人間というものを見た。しかもあとで聞くとそれは書生という人間中で一番獰悪な種族であったそうだ。この書生というのは時々我々を捕えて煮て食うという話である。しかしその当時は何という考もなかったから別段恐しいとも思わなかった。ただ彼の掌に載せられてスーと持ち上げられた時何だかフワフワした感じがあったばかりである。掌の上で少し落ちついて書生の顔を見たのがいわゆる人間というものの見始であろう。この時妙なものだと思った感じが今でも残っている。第一毛をもって装飾されべきはずの顔がつるつるしてまるで薬缶だ。その後猫にもだいぶ逢ったがこんな片輪には一度も出会わした事がない。のみならず顔の真中があまりに突起している。そうしてその穴の中から時々ぷうぷうと煙を吹く。どうも咽せぽくて実に弱った。これが人間の飲む煙草というものである事はようやくこの頃知った。"
    " この書生の掌の裏でしばらくはよい心持に坐っておったが、しばらくすると非常な速力で運転し始めた。書生が動くのか自分だけが動くのか分らないが無暗に眼が廻る。胸が悪くなる。到底助からないと思っていると、どさりと音がして眼から火が出た。それまでは記憶しているがあとは何の事やらいくら考え出そうとしても分らない。"
    " ふと気が付いて見ると書生はいない。たくさんおった兄弟が一疋も見えぬ。肝心の母親さえ姿を隠してしまった。その上今までの所とは違って無暗に明るい。眼を明いていられぬくらいだ。はてな何でも容子がおかしいと、のそのそ這い出して見ると非常に痛い。吾輩は藁の上から急に笹原の中へ棄てられたのである。"
    " ようやくの思いで笹原を這い出すと向うに大きな池がある。吾輩は池の前に坐ってどうしたらよかろうと考えて見た。別にこれという分別も出ない。しばらくして泣いたら書生がまた迎に来てくれるかと考え付いた。ニャー、ニャーと試みにやって見たが誰も来ない。そのうち池の上をさらさらと風が渡って日が暮れかかる。腹が非常に減って来た。泣きたくても声が出ない。仕方がない、何でもよいから食物のある所まであるこうと決心をしてそろりそろりと池を左りに廻り始めた。どうも非常に苦しい。そこを我慢して無理やりに這って行くとようやくの事で何となく人間臭い所へ出た。ここへ這入ったら、どうにかなると思って竹垣の崩れた穴から、とある邸内にもぐり込んだ。縁は不思議なもので、もしこの竹垣が破れていなかったなら、吾輩はついに路傍に餓死したかも知れんのである。一樹の蔭とはよく云ったものだ。この垣根の穴は今日に至るまで吾輩が隣家の三毛を訪問する時の通路になっている。さて邸へは忍び込んだもののこれから先どうして善いか分らない。そのうちに暗くなる、腹は減る、寒さは寒し、雨が降って来るという始末でもう一刻の猶予が出来なくなった。仕方がないからとにかく明るくて暖かそうな方へ方へとあるいて行く。今から考えるとその時はすでに家の内に這入っておったのだ。ここで吾輩は彼の書生以外の人間を再び見るべき機会に遭遇したのである。第一に逢ったのがおさんである。これは前の書生より一層乱暴な方で吾輩を見るや否やいきなり頸筋をつかんで表へ抛り出した。いやこれは駄目だと思ったから眼をねぶって運を天に任せていた。しかしひもじいのと寒いのにはどうしても我慢が出来ん。吾輩は再びおさんの隙を見て台所へ這い上った。すると間もなくまた投げ出された。吾輩は投げ出されては這い上り、這い上っては投げ出され、何でも同じ事を四五遍繰り返したのを記憶している。その時におさんと云う者はつくづくいやになった。この間おさんの三馬を偸んでこの返報をしてやってから、やっと胸の痞が下りた。吾輩が最後につまみ出されようとしたときに、この家の主人が騒々しい何だといいながら出て来た。下女は吾輩をぶら下げて主人の方へ向けてこの宿なしの小猫がいくら出しても出しても御台所へ上って来て困りますという。主人は鼻の下の黒い毛を撚りながら吾輩の顔をしばらく眺めておったが、やがてそんなら内へ置いてやれといったまま奥へ這入ってしまった。主人はあまり口を聞かぬ人と見えた。下女は口惜しそうに吾輩を台所へ抛り出した。かくして吾輩はついにこの家を自分の住家と極める事にしたのである。"
    " 吾輩の主人は滅多に吾輩と顔を合せる事がない。職業は教師だそうだ。学校から帰ると終日書斎に這入ったぎりほとんど出て来る事がない。家のものは大変な勉強家だと思っている。当人も勉強家であるかのごとく見せている。しかし実際はうちのものがいうような勤勉家ではない。吾輩は時々忍び足に彼の書斎を覗いて見るが、彼はよく昼寝をしている事がある。時々読みかけてある本の上に涎をたらしている。彼は胃弱で皮膚の色が淡黄色を帯びて弾力のない不活溌な徴候をあらわしている。その癖に大飯を食う。大飯を食った後でタカジヤスターゼを飲む。飲んだ後で書物をひろげる。二三ページ読むと眠くなる。涎を本の上へ垂らす。これが彼の毎夜繰り返す日課である。吾輩は猫ながら時々考える事がある。教師というものは実に楽なものだ。人間と生れたら教師となるに限る。こんなに寝ていて勤まるものなら猫にでも出来ぬ事はないと。それでも主人に云わせると教師ほどつらいものはないそうで彼は友達が来る度に何とかかんとか不平を鳴らしている。"

Визуализируйте текстовые данные в облаке слов.

figure
wordcloud(textData);

Токенизация документов

Токенизация текста с помощью tokenizedDocument и просмотреть первые несколько документов.

documents = tokenizedDocument(textData);
documents(1:10)
ans = 
  10×1 tokenizedDocument:

      5 tokens: 吾輩 は 猫 で ある
      2 tokens: 夏目 漱石
      0 tokens:
      1 tokens: 一
     11 tokens: 吾輩 は 猫 で ある 。 名前 は まだ 無い 。
    264 tokens: どこ で 生れ た か とんと 見当 が つか ぬ 。 何 でも 薄暗い じめじめ し た 所 で ニャーニャー 泣い て いた事 だけ は 記憶 し て いる 。 吾輩 は ここ で 始め て 人間 という もの を 見 た 。 しかも あと で 聞く と それ は 書生 という 人間 中 で 一番 獰悪 な 種族 で あっ た そう だ 。 この 書生 という の は 時々 我々 を 捕え て 煮 て 食う という 話 で ある 。 しかし その 当時 は 何 という 考 も なかっ た から 別段 恐し いとも 思わ なかっ た 。 ただ 彼 の 掌 に 載せ られ て スー と 持ち上げ られ た 時 何だか フワフワ し た 感じ が あっ た ばかり で ある 。 掌 の 上 で 少し 落ちつい て 書生 の 顔 を 見 た の が いわゆる 人間 という もの の 見 始 で あろ う 。 この 時 妙 な もの だ と 思っ た 感じ が 今 でも 残っ て いる 。 第 一 毛 をもって 装飾 さ れ べき はず の 顔 が つるつる し て まるで 薬缶 だ 。 その後 猫 に も だいぶ 逢っ た が こんな 片 輪 に は 一 度 も 出会わ し た 事 が ない 。 のみ なら ず 顔 の 真中 が あまりに 突起 し て いる 。 そうして その 穴 の 中 から 時々 ぷうぷうと 煙 を 吹く 。 どうも 咽 せ ぽく て 実に 弱っ た 。 これ が 人間 の 飲む 煙草 という もの で ある 事 は ようやく この 頃 知っ た 。
    100 tokens: この 書生 の 掌 の 裏 で しばらく は よい 心持 に 坐っ て おっ た が 、 しばらく する と 非常 な 速力 で 運転 し 始め た 。 書生 が 動く の か 自分 だけ が 動く の か 分ら ない が 無 暗に 眼 が 廻る 。 胸 が 悪く なる 。 到底 助から ない と 思っ て いる と 、 ど さり と 音 が し て 眼 から 火 が 出 た 。 それ まで は 記憶 し て いる が あと は 何 の 事 やら いくら 考え出そ う として も 分ら ない 。
     92 tokens: ふと 気 が 付い て 見る と 書生 は い ない 。 たくさん おっ た 兄弟 が 一疋 も 見え ぬ 。 肝心 の 母親 さえ 姿 を 隠し て しまっ た 。 その 上今 まで の 所 と は 違っ て 無 暗に 明るい 。 眼 を 明い て い られ ぬ くらい だ 。 はてな 何 でも 容子 が おかしい と 、 のそのそ 這い出し て 見る と 非常 に 痛い 。 吾輩 は 藁 の 上 から 急 に 笹原 の 中 へ 棄て られ た の で ある 。
    693 tokens: ようやく の 思い で 笹原 を 這い出す と 向う に 大きな 池 が ある 。 吾輩 は 池 の 前 に 坐っ て どう し たら よかろ う と 考え て 見 た 。 別に これ という 分別 も 出 ない 。 しばらく し て 泣い たら 書生 が また 迎 に 来 て くれる か と 考え付い た 。 ニャー 、 ニャー と 試み に やっ て 見 た が 誰 も 来 ない 。 そのうち 池 の 上 を さらさら と 風 が 渡っ て 日 が 暮れ かかる 。 腹 が 非常 に 減っ て 来 た 。 泣き たく て も 声 が 出 ない 。 仕方 が ない 、 何 で も よい から 食物 の ある 所 まで ある こう と 決心 を し て そろ り そろりと 池 を 左 り に 廻り 始め た 。 どうも 非常 に 苦しい 。 そこ を 我慢 し て 無理やり に 這っ て 行く と ようやく の 事 で 何となく 人間 臭い 所 へ 出 た 。 ここ へ 這入っ たら 、 どうにか なる と 思っ て 竹垣 の 崩れ た 穴 から 、 とある 邸 内 に もぐり込ん だ 。 縁 は 不思議 な もの で 、 もし この 竹垣 が 破れ て い なかっ た なら 、 吾輩 は ついに 路傍 に 餓死 し た かも 知れ ん の で ある 。 一樹 の 蔭 と は よく 云っ た もの だ 。 この 垣根 の 穴 は 今日 に 至る まで 吾輩 が 隣家 の 三 毛 を 訪問 する 時 の 通路 に なっ て いる 。 さて 邸 へ は 忍び込ん だ ものの これから 先 どうして 善い か 分ら ない 。 その うち に 暗く なる 、 腹 は 減る 、 寒 さ は 寒し 、 雨 が 降っ て 来る という 始末 で もう 一刻 の 猶予 が 出来 なく なっ た 。 仕方 が ない から とにかく 明るく て 暖か そう な 方 へ 方 へ と あるい て 行く 。 今 から 考える と その 時 は すでに 家 の 内 に 這入っ て おっ た の だ 。 ここ で 吾輩 は 彼 の 書生 以外 の 人間 を 再び 見る べき 機会 に 遭遇 し た の で ある 。 第 一 に 逢っ た の が お さん で ある 。 こ…
    276 tokens: 吾輩 の 主人 は 滅多 に 吾輩 と 顔 を 合せる 事 が ない 。 職業 は 教師 だ そう だ 。 学校 から 帰る と 終日 書斎 に 這入っ た ぎりほとんど 出 て 来る 事 が ない 。 家 の もの は 大変 な 勉強 家 だ と 思っ て いる 。 当人 も 勉強 家 で ある か の ごとく 見せ て いる 。 しかし 実際 は うち の もの が いう よう な 勤勉 家 で は ない 。 吾輩 は 時々 忍び足 に 彼 の 書斎 を 覗い て 見る が 、 彼 は よく 昼寝 を し て いる 事 が ある 。 時々 読みかけ て ある 本 の 上 に 涎 を たらし て いる 。 彼 は 胃弱 で 皮膚 の 色 が 淡 黄色 を 帯び て 弾力 の ない 不 活溌 な 徴候 を あらわし て いる 。 その 癖 に 大飯 を 食う 。 大飯 を 食っ た 後 で タカジヤスターゼ を 飲む 。 飲ん だ 後 で 書物 を ひろげる 。 二 三 ページ 読む と 眠く なる 。 涎 を 本 の 上 へ 垂らす 。 これ が 彼 の 毎夜 繰り返す 日課 で ある 。 吾輩 は 猫 ながら 時々 考える 事 が ある 。 教師 という もの は 実に 楽 な もの だ 。 人間 と 生れ たら 教師 と なる に 限る 。 こんなに 寝 て い て 勤まる もの なら 猫 に でも 出来 ぬ 事 は ない と 。 それでも 主人 に 云わ せる と 教師 ほど つらい もの は ない そう で 彼 は 友達 が 来る 度 に 何とか かん とか 不平 を 鳴らし て いる 。

Получение тегов части речи

Получите сведения о лексеме, а затем просмотрите сведения о первых нескольких лексемах.

tdetails = tokenDetails(documents);
head(tdetails)
ans=8×8 table
    Token     DocumentNumber    LineNumber     Type      Language     PartOfSpeech     Lemma       Entity  
    ______    ______________    __________    _______    ________    ______________    ______    __________

    "吾輩"          1               1         letters       ja       pronoun           "吾輩"     non-entity
    "は"            1               1         letters       ja       adposition        "は"      non-entity
    "猫"            1               1         letters       ja       noun              "猫"      non-entity
    "で"            1               1         letters       ja       auxiliary-verb    "だ"      non-entity
    "ある"          1               1         letters       ja       auxiliary-verb    "ある"     non-entity
    "夏目"          2               1         letters       ja       proper-noun       "夏目"     person    
    "漱石"          2               1         letters       ja       proper-noun       "漱石"     person    
    "一"            4               1         letters       ja       numeral           "一"      non-entity

The PartOfSpeech переменная в таблице содержит часть тегов речи лексем. Создайте облака слов из всех существительных и прилагательных, соответственно.

figure
idx = tdetails.PartOfSpeech == "noun";
tokens = tdetails.Token(idx);
subplot(1,2,1)
wordcloud(tokens);
title("Nouns")

idx = tdetails.PartOfSpeech == "adjective";
tokens = tdetails.Token(idx);
subplot(1,2,2)
wordcloud(tokens);
title("Adjectives")

Подготовка текстовых данных к анализу

Удалите стоповые слова.

documents = removeStopWords(documents);
documents(1:10)
ans = 
  10×1 tokenizedDocument:

      2 tokens: 吾輩 猫
      2 tokens: 夏目 漱石
      0 tokens:
      0 tokens:
      6 tokens: 吾輩 猫 。 まだ 無い 。
    117 tokens: 生れ とんと 見当 つか ぬ 。 薄暗い じめじめ ニャーニャー 泣い いた事 記憶 。 吾輩 始め 人間 という 。 しかも 聞く 書生 という 人間 一番 獰悪 種族 あっ 。 書生 という 時々 捕え 煮 食う という 。 しかし 当時 という 考 なかっ 別段 恐し いとも 思わ なかっ 。 掌 載せ られ スー 持ち上げ られ 何だか フワフワ あっ 。 掌 少し 落ちつい 書生 顔 いわゆる 人間 という 始 あろ 。 妙 思っ 残っ 。 毛 をもって 装飾 れ べき 顔 つるつる まるで 薬缶 。 猫 だいぶ 逢っ こんな 片 出会わ 。 のみ なら 顔 真中 あまりに 突起 。 そうして 穴 時々 ぷうぷうと 煙 吹く 。 どうも 咽 せ ぽく 実に 弱っ 。 人間 飲む 煙草 という ようやく 知っ 。
     43 tokens: 書生 掌 裏 しばらく よい 心持 坐っ おっ 、 しばらく 非常 速力 運転 始め 。 書生 動く 動く 分ら 無 暗に 眼 廻る 。 胸 悪く 。 到底 助から 思っ 、 ど さり 音 眼 出 。 記憶 いくら 考え出そ として 分ら 。
     46 tokens: ふと 付い 見る 書生 。 おっ 兄弟 一疋 見え ぬ 。 肝心 母親 姿 隠し しまっ 。 上今 違っ 無 暗に 明るい 。 眼 明い られ ぬ くらい 。 はてな 容子 おかしい 、 のそのそ 這い出し 見る 非常 痛い 。 吾輩 藁 急 笹原 棄て られ 。
    323 tokens: ようやく 思い 笹原 這い出す 向う 大きな 池 。 吾輩 池 坐っ たら よかろ 考え 。 別に という 分別 出 。 しばらく 泣い たら 書生 迎 来 くれる 考え付い 。 ニャー 、 ニャー 試み やっ 来 。 そのうち 池 さらさら 風 渡っ 暮れ かかる 。 腹 非常 減っ 来 。 泣き たく 声 出 。 仕方 、 よい 食物 こう 決心 そろ り そろりと 池 り 廻り 始め 。 どうも 非常 苦しい 。 我慢 無理やり 這っ 行く ようやく 何となく 人間 臭い 出 。 這入っ たら 、 どうにか 思っ 竹垣 崩れ 穴 、 とある 邸 もぐり込ん 。 縁 不思議 、 もし 竹垣 破れ なかっ なら 、 吾輩 ついに 路傍 餓死 かも 知れ 。 一樹 蔭 よく 云っ 。 垣根 穴 今日 至る 吾輩 隣家 毛 訪問 通路 なっ 。 さて 邸 忍び込ん ものの これから どうして 善い 分ら 。 暗く 、 腹 減る 、 寒 寒し 、 雨 降っ 来る という 始末 もう 一刻 猶予 出来 なく なっ 。 仕方 とにかく 明るく 暖か あるい 行く 。 考える すでに 這入っ おっ 。 吾輩 書生 以外 人間 再び 見る べき 機会 遭遇 。 逢っ 。 書生 一層 乱暴 吾輩 見る 否や いきなり 頸筋 つかん 表 抛り出し 。 駄目 思っ 眼 ねぶっ 運 天 任せ 。 しかし ひもじい 寒い どうしても 我慢 出来 。 吾輩 再び おさん 隙 台所 這い 上っ 。 すると 間もなく 投げ出さ れ 。 吾輩 投げ出さ れ 這い 上り 、 這い 上っ 投げ出さ れ 、 遍 繰り返し 記憶 。 おさん 云う つくづく なっ 。 この間 おさん 馬 偸 んで 返報 やっ 、 やっと 胸 痞 下り 。 吾輩 最後 つまみ出さ れよ 、 主人 騒々しい いい ながら 出 来 。 下女 吾輩 ぶら下げ 主人 向け 宿 なし 小 猫 いくら 出し 出し 御台 上っ 来 困り いう 。 主人 鼻 黒い 毛 撚り ながら 吾輩 顔 しばらく 眺め おっ 、 やがて そん なら 置い やれ といった 奥 這入っ しまっ 。 主人 あまり 聞か ぬ 見え 。 下女 口惜し 吾輩 台所 抛り出し 。 かくして 吾輩 ついに 住 極める 。
    122 tokens: 吾輩 主人 滅多 吾輩 顔 合せる 。 職業 教師 。 学校 帰る 終日 書斎 這入っ ぎりほとんど 出 来る 。 大変 勉強 思っ 。 当人 勉強 ごとく 見せ 。 しかし 実際 いう 勤勉 。 吾輩 時々 忍び足 書斎 覗い 見る 、 よく 昼寝 。 時々 読みかけ 本 涎 たらし 。 胃弱 皮膚 色 淡 黄色 帯び 弾力 不 活溌 徴候 あらわし 。 癖 大飯 食う 。 大飯 食っ タカジヤスターゼ 飲む 。 飲ん 書物 ひろげる 。 ページ 読む 眠く 。 涎 本 垂らす 。 毎夜 繰り返す 日課 。 吾輩 猫 ながら 時々 考える 。 教師 という 実に 。 人間 生れ たら 教師 限る 。 こんなに 寝 勤まる なら 猫 出来 ぬ 。 それでも 主人 云わ 教師 つらい 友達 来る 何とか かん 不平 鳴らし 。

Удалите пунктуацию.

documents = erasePunctuation(documents);
documents(1:10)
ans = 
  10×1 tokenizedDocument:

      2 tokens: 吾輩 猫
      2 tokens: 夏目 漱石
      0 tokens:
      0 tokens:
      4 tokens: 吾輩 猫 まだ 無い
    102 tokens: 生れ とんと 見当 つか ぬ 薄暗い じめじめ ニャーニャー 泣い いた事 記憶 吾輩 始め 人間 という しかも 聞く 書生 という 人間 一番 獰悪 種族 あっ 書生 という 時々 捕え 煮 食う という しかし 当時 という 考 なかっ 別段 恐し いとも 思わ なかっ 掌 載せ られ スー 持ち上げ られ 何だか フワフワ あっ 掌 少し 落ちつい 書生 顔 いわゆる 人間 という 始 あろ 妙 思っ 残っ 毛 をもって 装飾 れ べき 顔 つるつる まるで 薬缶 猫 だいぶ 逢っ こんな 片 出会わ のみ なら 顔 真中 あまりに 突起 そうして 穴 時々 ぷうぷうと 煙 吹く どうも 咽 せ ぽく 実に 弱っ 人間 飲む 煙草 という ようやく 知っ
     36 tokens: 書生 掌 裏 しばらく よい 心持 坐っ おっ しばらく 非常 速力 運転 始め 書生 動く 動く 分ら 無 暗に 眼 廻る 胸 悪く 到底 助から 思っ ど さり 音 眼 出 記憶 いくら 考え出そ として 分ら
     38 tokens: ふと 付い 見る 書生 おっ 兄弟 一疋 見え ぬ 肝心 母親 姿 隠し しまっ 上今 違っ 無 暗に 明るい 眼 明い られ ぬ くらい はてな 容子 おかしい のそのそ 這い出し 見る 非常 痛い 吾輩 藁 急 笹原 棄て られ
    274 tokens: ようやく 思い 笹原 這い出す 向う 大きな 池 吾輩 池 坐っ たら よかろ 考え 別に という 分別 出 しばらく 泣い たら 書生 迎 来 くれる 考え付い ニャー ニャー 試み やっ 来 そのうち 池 さらさら 風 渡っ 暮れ かかる 腹 非常 減っ 来 泣き たく 声 出 仕方 よい 食物 こう 決心 そろ り そろりと 池 り 廻り 始め どうも 非常 苦しい 我慢 無理やり 這っ 行く ようやく 何となく 人間 臭い 出 這入っ たら どうにか 思っ 竹垣 崩れ 穴 とある 邸 もぐり込ん 縁 不思議 もし 竹垣 破れ なかっ なら 吾輩 ついに 路傍 餓死 かも 知れ 一樹 蔭 よく 云っ 垣根 穴 今日 至る 吾輩 隣家 毛 訪問 通路 なっ さて 邸 忍び込ん ものの これから どうして 善い 分ら 暗く 腹 減る 寒 寒し 雨 降っ 来る という 始末 もう 一刻 猶予 出来 なく なっ 仕方 とにかく 明るく 暖か あるい 行く 考える すでに 這入っ おっ 吾輩 書生 以外 人間 再び 見る べき 機会 遭遇 逢っ 書生 一層 乱暴 吾輩 見る 否や いきなり 頸筋 つかん 表 抛り出し 駄目 思っ 眼 ねぶっ 運 天 任せ しかし ひもじい 寒い どうしても 我慢 出来 吾輩 再び おさん 隙 台所 這い 上っ すると 間もなく 投げ出さ れ 吾輩 投げ出さ れ 這い 上り 這い 上っ 投げ出さ れ 遍 繰り返し 記憶 おさん 云う つくづく なっ この間 おさん 馬 偸 んで 返報 やっ やっと 胸 痞 下り 吾輩 最後 つまみ出さ れよ 主人 騒々しい いい ながら 出 来 下女 吾輩 ぶら下げ 主人 向け 宿 なし 小 猫 いくら 出し 出し 御台 上っ 来 困り いう 主人 鼻 黒い 毛 撚り ながら 吾輩 顔 しばらく 眺め おっ やがて そん なら 置い やれ といった 奥 這入っ しまっ 主人 あまり 聞か ぬ 見え 下女 口惜し 吾輩 台所 抛り出し かくして 吾輩 ついに 住 極める
    101 tokens: 吾輩 主人 滅多 吾輩 顔 合せる 職業 教師 学校 帰る 終日 書斎 這入っ ぎりほとんど 出 来る 大変 勉強 思っ 当人 勉強 ごとく 見せ しかし 実際 いう 勤勉 吾輩 時々 忍び足 書斎 覗い 見る よく 昼寝 時々 読みかけ 本 涎 たらし 胃弱 皮膚 色 淡 黄色 帯び 弾力 不 活溌 徴候 あらわし 癖 大飯 食う 大飯 食っ タカジヤスターゼ 飲む 飲ん 書物 ひろげる ページ 読む 眠く 涎 本 垂らす 毎夜 繰り返す 日課 吾輩 猫 ながら 時々 考える 教師 という 実に 人間 生れ たら 教師 限る こんなに 寝 勤まる なら 猫 出来 ぬ それでも 主人 云わ 教師 つらい 友達 来る 何とか かん 不平 鳴らし

Лемматизируйте текст с помощью normalizeWords.

documents = normalizeWords(documents);
documents(1:10)
ans = 
  10×1 tokenizedDocument:

      2 tokens: 吾輩 猫
      2 tokens: 夏目 漱石
      0 tokens:
      0 tokens:
      4 tokens: 吾輩 猫 まだ 無い
    102 tokens: 生れる とんと 見当 つく ぬ 薄暗い じめじめ ニャーニャー 泣く いた事 記憶 吾輩 始める 人間 という しかも 聞く 書生 という 人間 一番 獰悪 種族 ある 書生 という 時々 捕える 煮る 食う という しかし 当時 という 考 ない 別段 恐い いとも 思う ない 掌 載せる られる スー 持ち上げる られる 何だか フワフワ ある 掌 少し 落ちつく 書生 顔 いわゆる 人間 という 始 ある 妙 思う 残る 毛 をもって 装飾 れる べし 顔 つるつる まるで 薬缶 猫 だいぶ 逢う こんな 片 出会う のみ なる 顔 真中 あまりに 突起 そうして 穴 時々 ぷうぷうと 煙 吹く どうも 咽 する ぽい 実に 弱る 人間 飲む 煙草 という ようやく 知る
     36 tokens: 書生 掌 裏 しばらく よい 心持 坐る おる しばらく 非常 速力 運転 始める 書生 動く 動く 分る 無 暗に 眼 廻る 胸 悪い 到底 助かる 思う ど さる 音 眼 出る 記憶 いくら 考え出す として 分る
     38 tokens: ふと 付く 見る 書生 おる 兄弟 一疋 見える ぬ 肝心 母親 姿 隠す しまう 上今 違う 無 暗に 明るい 眼 明く られる ぬ くらい はてな 容子 おかしい のそのそ 這い出す 見る 非常 痛い 吾輩 藁 急 笹原 棄てる られる
    274 tokens: ようやく 思い 笹原 這い出す 向う 大きな 池 吾輩 池 坐る た よい 考える 別に という 分別 出る しばらく 泣く た 書生 迎 来る くれる 考え付く ニャー ニャー 試み やる 来る そのうち 池 さらさら 風 渡る 暮れ かかる 腹 非常 減る 来る 泣く たい 声 出る 仕方 よい 食物 こう 決心 そる り そろりと 池 り 廻る 始める どうも 非常 苦しい 我慢 無理やり 這う 行く ようやく 何となく 人間 臭い 出る 這入る た どうにか 思う 竹垣 崩れる 穴 とある 邸 もぐり込む 縁 不思議 もし 竹垣 破れる ない だ 吾輩 ついに 路傍 餓死 かも 知れる 一樹 蔭 よく 云う 垣根 穴 今日 至る 吾輩 隣家 毛 訪問 通路 なる さて 邸 忍び込む ものの これから どうして 善い 分る 暗い 腹 減る 寒い 寒い 雨 降る 来る という 始末 もう 一刻 猶予 出来る ない なる 仕方 とにかく 明るい 暖かい あるく 行く 考える すでに 這入る おる 吾輩 書生 以外 人間 再び 見る べし 機会 遭遇 逢う 書生 一層 乱暴 吾輩 見る 否や いきなり 頸筋 つかむ 表 抛り出す 駄目 思う 眼 ねぶる 運 天 任せる しかし ひもじい 寒い どうしても 我慢 出来る 吾輩 再び おさん 隙 台所 這う 上る すると 間もなく 投げ出す れる 吾輩 投げ出す れる 這う 上る 這う 上る 投げ出す れる 遍 繰り返す 記憶 おさん 云う つくづく なる この間 おさん 馬 偸 んで 返報 やる やっと 胸 痞 下りる 吾輩 最後 つまみ出す れる 主人 騒々しい いう ながら 出る 来る 下女 吾輩 ぶら下げる 主人 向ける 宿 ない 小 猫 いくら 出す 出す 御台 上る 来る 困る いう 主人 鼻 黒い 毛 撚る ながら 吾輩 顔 しばらく 眺める おる やがて そん だ 置く やる といった 奥 這入る しまう 主人 あまり 聞く ぬ 見える 下女 口惜しい 吾輩 台所 抛り出す かくして 吾輩 ついに 住 極める
    101 tokens: 吾輩 主人 滅多 吾輩 顔 合せる 職業 教師 学校 帰る 終日 書斎 這入る ぎりほとんど 出る 来る 大変 勉強 思う 当人 勉強 ごとし 見せる しかし 実際 いう 勤勉 吾輩 時々 忍び足 書斎 覗く 見る よく 昼寝 時々 読みかける 本 涎 たらす 胃弱 皮膚 色 淡い 黄色 帯びる 弾力 不 活溌 徴候 あらわす 癖 大飯 食う 大飯 食う タカジヤスターゼ 飲む 飲む 書物 ひろげる ページ 読む 眠い 涎 本 垂らす 毎夜 繰り返す 日課 吾輩 猫 ながら 時々 考える 教師 という 実に 人間 生れる た 教師 限る こんなに 寝る 勤まる だ 猫 出来る ぬ それでも 主人 云う 教師 つらい 友達 来る 何とか かん 不平 鳴らす

Некоторые шаги предварительной обработки, такие как удаление стоповых слов и удаление пунктуации, возвращают пустые документы. Удалите пустые документы с помощью removeEmptyDocuments функция.

documents = removeEmptyDocuments(documents);

Создайте функцию предварительной обработки

Создание функции, которая выполняет предварительную обработку, может быть полезно для подготовки различных наборов текстовых данных одним и тем же способом. Для примера можно использовать функцию для предварительной обработки новых данных с помощью тех же шагов, что и обучающие данные.

Создайте функцию, которая токенизирует и предварительно обрабатывает текстовые данные для использования в анализе. Функция preprocessJapaneseText, выполняет следующие шаги:

  1. Токенизация текста с помощью tokenizedDocument.

  2. Удалите пунктуацию с помощью erasePunctuation.

  3. Удалите список стоповых слов (таких как «あそこ», «あたり» и «あちら») с помощью removeStopWords.

  4. Лемматизируйте слова, используя normalizeWords.

Удалите пустые документы после предварительной обработки с помощью removeEmptyDocuments функция. Удаление документов после использования функции предварительной обработки облегчает удаление соответствующих данных, таких как метки из других источников.

В этом примере используйте функцию предварительной обработки preprocessJapaneseText, перечисленный в конце примера, для подготовки текстовых данных.

documents = preprocessJapaneseText(textData);
documents(1:5)
ans = 
  5×1 tokenizedDocument:

    2 tokens: 吾輩 猫
    2 tokens: 夏目 漱石
    0 tokens:
    0 tokens:
    4 tokens: 吾輩 猫 まだ 無い

Удалите пустые документы.

documents = removeEmptyDocuments(documents);

Подгонка модели топика

Подбор модели темы латентного распределения Дирихле (LDA) к данным. Модель LDA обнаруживает базовые темы в наборе документов и выводит вероятности слов в темах.

Чтобы подогнать модель LDA к данным, вы сначала должны создать модель мешка слов. Модель мешка слов (также известная как счетчик частоты терминов) регистрирует количество раз, когда слова появляются в каждом документе набора. Создайте модель мешка слов с помощью bagOfWords.

bag = bagOfWords(documents);

Удалите пустые документы из модели мешка слов.

bag = removeEmptyDocuments(bag);

Подгонка модели LDA с семью темами с помощью fitlda. Чтобы подавить подробный выход, установите 'Verbose' на 0.

numTopics = 7;
mdl = fitlda(bag,numTopics,'Verbose',0);

Визуализация первых четырех тем с помощью облаков слов.

figure
for i = 1:4
    subplot(2,2,i)
    wordcloud(mdl,i);
    title("Topic " + i)
end

Визуализация нескольких тематических смесей с помощью сложенных столбчатых диаграмм. Просмотрите пять входных документов случайным образом и визуализируйте соответствующие тематические смеси.

numDocuments = numel(documents);
idx = randperm(numDocuments,5);
documents(idx)
ans = 
  5×1 tokenizedDocument:

     4 tokens: 細君 細君 なかなか さばける
     7 tokens: 進行 せる 山々 どうしても 暮れる くれる 困る
    13 tokens: 来る そんな 仙骨 相手 少々 骨 折れる 過ぎる 宛然 たり 仙 伝 人物
     3 tokens: 先生 譜 下さる
    23 tokens: 立つ 月給 上がる いくら 勉強 褒める くれる 郎 君 独 寂寞 中学 時代 覚える 詩 句 細君 朗吟 細君 ちょっと 分る かねる 返事

topicMixtures = transform(mdl,documents(idx));
figure
barh(topicMixtures(1:5,:),'stacked')
xlim([0 1])
title("Topic Mixtures")
xlabel("Topic Probability")
ylabel("Document")
legend("Topic " + string(1:numTopics),'Location','northeastoutside')

Пример функции предварительной обработки

Функция preprocessJapaneseText, выполняет следующие шаги:

  1. Токенизация текста с помощью tokenizedDocument.

  2. Удалите пунктуацию с помощью erasePunctuation.

  3. Удалите список стоповых слов (таких как «あそこ», «あたり» и «あちら») с помощью removeStopWords.

  4. Лемматизируйте слова, используя normalizeWords.

function documents = preprocessJapaneseText(textData)

% Tokenize the text.
documents = tokenizedDocument(textData);

% Erase the punctuation.
documents = erasePunctuation(documents);

% Remove a list of stop words.
documents = removeStopWords(documents);

% Lemmatize the words.
documents = normalizeWords(documents,'Style','lemma');
end

См. также

| | | | |

Похожие темы