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

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

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

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

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

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

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

Этот пример сначала показывает, как импортировать и подготовить японские текстовые данные, и затем это показывает, как анализировать текстовые данные с помощью модели 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 'characters'.

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

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: 吾輩 主人 滅多 吾輩 顔 合せる 職業 教師 学校 帰る 終日 書斎 這入っ ぎりほとんど 出 来る 大変 勉強 思っ 当人 勉強 ごとく 見せ しかし 実際 いう 勤勉 吾輩 時々 忍び足 書斎 覗い 見る よく 昼寝 時々 読みかけ 本 涎 たらし 胃弱 皮膚 色 淡 黄色 帯び 弾力 不 活溌 徴候 あらわし 癖 大飯 食う 大飯 食っ タカジヤスターゼ 飲む 飲ん 書物 ひろげる ページ 読む 眠く 涎 本 垂らす 毎夜 繰り返す 日課 吾輩 猫 ながら 時々 考える 教師 という 実に 人間 生れ たら 教師 限る こんなに 寝 勤まる なら 猫 出来 ぬ それでも 主人 云わ 教師 つらい 友達 来る 何とか かん 不平 鳴らし

Lemmatize текст с помощью 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. Lemmatize слова с помощью 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. Lemmatize слова с помощью 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

Смотрите также

| | | | |

Похожие темы