BLOGSpeee開発陣による技術情報発信ブログです。自然言語処理Tweetみなさん初めまして。して一番下から他のエンジニアを追いかけている最中です。業務ではFuelPHPをベースにした社内向けシステムの開発を行っています。以後宜しくお願い致します!Speeeでは毎日メールで日報を提出しています。日報からはその人の仕事ぶりやプライベートの一部が垣間見れて読んでいてとても楽しいです。他の人の日報をゴニョゴニョして自分の分を生成してしまおうという手法にチャレンジしてみたいと思います。(0.996)MecabはMacPortsでインストールしました。辞書はIPAでもいいんですが僕の環境だと文字化けが面倒臭かったのでUnidic辞書を使いました。やり方メールサーバーから日報メールを取ってくる本文から所感(今回生成する部分)を抽出するMeCabで形態素解析してマルコフ連鎖用のテーブルを作る出だしの単語を指定してマルコフ連鎖で文章を生成マルコフ連鎖とは自然言語の文章を"単語"のつながりと考えると、「この単語の次にはこの単語が来やすい」という情報をモデル化することができます。このようなモデルをマルコフ連鎖と呼びます。助詞-終助詞EOSこのように文章が分割されました。これを元に、こんな感じのマルコフ連鎖用のテーブルを作ります。}}2単語プレフィクスのマルコフ連鎖では、A→B→Cという単語のつながりに注目し、A→Bの後に続き得る候補の中からランダムでCを決定します。同様にB→Cの後にくるDを決め、さらにこれを続けることで文章を生成します。'アイス'→'が'に続く候補として'食べたい'と'売って'があるので、ランダムでどちらか選んで文章が終わるまで連鎖します。下の画像は単語のつながりからランダムで文章を生成する仕組みを表したものです。先ほどの例だと、「しぬほどアイスが売ってたよ〜」「新しいアイスが食べたい」といった文が生成できることがお分かりでしょうか。文章を多く(あるいは長く)することで生成される文章のパターンが増えます。やってみようまずはサーバーから日報メールを引っ張ってきましょう。found.&quot;;}これでメールの配列のリファレンスが取得出来ました。デリファレンスして1通ずつ処理していきます。MIME::Parserをつかって本文だけを抜き出します。}}文字列と、ハッシュのリファレンスを渡すとMeCabで分割してマルコフテーブルをガンガン積んでいくサブルーチンmarkovtableをこんなかんじで。}}これで取得したすべての日報メールを元にマルコフテーブルが出来ました。ここからはマルコフ連鎖を用いて文章を生成する処理です。サブルーチンmarkovchainをこんな感じに。$text;}文章の最初の言葉を指定すると、マルコフテーブル内からその単語を見つけて文章を作り始めます。一発で綺麗な文章が作れるとは限らないのでループでいくつも文章を作れるようにしてみます。始まる文章を生成してみたらこんなかんじに。朝早く来たら絶対、手洗い喉うがいを欠かさないことがあまりにも反映されてしまいました。そのために一つづつ覚えていきたい。ゲロ絵文字(※)を理解し、それ無しの本質はあり得ない。矢澤さんランチ有難うございます。ストーリーの柔軟性(想定できる流れ)を持たせないと感じる機会を増やしたい。開き直ってやっと今までなかったんです」とすかさずツッコミを入れてきらきらメイクして自分で思うくらいなら、コミットするだけ。後悔しない、やりきる」って感じで、そこは必ず乗り越えてから炭酸水とココナッツウォーターを飲んでいます。6月なのはオツマミ系ばっかり。長めのめちゃくちゃな文になりました。今日はやること多すぎてぱつぱつでした。小泉さん、ご対応のほど、お疲れ様でした。スキューバからのテンションがおかしいですが、誠実な対応本当に良かった。いつも書いている友人がいなくなるのでもう少し集めます。ありがとうございました。ありがとうございました。明日から関西イベント!選考会の参加と、自分を理想に近づけていく。すごく意識が高い感じ。今週は、ママさんと南さんが向き合ってくれることによって組織力で勝つ。ママさんとの連携で勝つ。まとめ今回はMeCab+マルコフ連鎖で既存の文章から新しい文章を生成してみました。意味の通る日本語にはなりませんが、スットコドッコイな日本語が湧いてきて結構おもしろかったです。いえ、こんなスットコドッコイ文章を日報に書いた日には即バレ&上長激おこでしばき倒されてしまうのでもっと精度を上げなければなりません。前にword2vecが話題になりましたが、アレを使えば文章全体の話題に合わせて単語を選ぶ、といったこともできるようになるのでしょうか。時間を見つけて挑戦してみたいです。2019年2月より公開し...2013-12-25クリスマスに機械学習で彼女ができました。参加してきました月別アーカイブスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。