Pythonで日常にあふれる五・七・五を探してみた！ら思ったより多かった！[Juman, NLP]

# Abstract

> ハンペンとエビで作ったエビ団子

日常には575が溢れています。我々は知らぬうちに俳句や川柳の語呂の良さを真似ているものです。
今回は、日常にあふれている575を、Twitterの本文から探してみました。
実は上の例も抽出されたものの一つです。

つまり流れはこうです。

1. Twitterから文を大量に取得する
2. 文の中から575を抽出する
3. 抽出された575を確認する

2の抽出をいかに行うかが課題となるわけですが、

- 形態素は575をまたがない点
- 575の各部分の始まりが名詞・動詞・形容詞・・・であり、助詞などからは始まらない点

に着目することで、抽出を行いました。

結果としては以下のようなものが抽出されました。（良いもの）

> 一日も早い復旧復興を
学力の目安としての偏差値と
会員になる必要はありません
ハンペンとエビで作ったエビ団子
満点のポージングしてあげました
頑丈な建物内に移動する
最近はただ献立を聞いてくる
アルコール度数のわりに飲みやすい

※論文はうまくいったことだけをさもはじめから分かっていたかのように説明することが主ですが、はじめからうまくいくわけもないので、思考の流れを書ける記事が好きです

# 音の数

jumanでは各形態素の読み方を `.yomi` として取得できる。
基本的に促音便「っ」は一文字として、それ以外の小さい文字は合わせて一文字としてカウントする事になっているので、以下のようなメソッドを用いて音数を数えた。

```python
def string_count(self, string):
    return len(re.sub(r'[ゃぃゅぇょャィュェョ]', "", string))
```

# 実験1

形態素は575をまたがない。つまり、575の各ブロックは一つ以上の形態素からなる。
とりあえず取得したツイートを形態素解析し、読み方が[4,1,4,2,1,2,2,1]のように、部分的に合成すると[5,7,5]になるような組を抽出した。
この例では[[4,1],[4,2,1],[2,2,1]]と合成すると[5,7,5]になる。

結果は以下の通り。

> ああああああああああんんんんんんん
 　＠　　　３　　　♪」に出演
ｈｔｔｐｓ：／／ｔ．ｃｏ／Ｍｑｓ５
：　これがわかったらＩＱ２万って

見ての通りひどいですね。

よって、URLやアルファベット、記号は正確に読みを推定するのは不可能と判断し、最初に取り除くことにしました。

# 実験2

上に書いた改善を行ったあとの結果はこちら。

> は竜巻などの激しい突風が
も何度も繰り返されてなんかもう
自分で冊切って寿司にできるから
関数φが与えられたときにφが
もんな気がするケドそうでもないのか

ちょっとはましになったけどまだまだひどいですね。

ここで、「自分」「関数」から始まってるやつはまだマシに見えます。
つまり、文頭が大事なんじゃないかと！
もっと言えば、575の各ブロックの頭が大事なんじゃないかと！

というわけで実際の実装は以下のようになりました。

# 実際の実装

AnacondaをインストールしたPython 3.6.4環境で、
ライブラリpyknpを用いて開発を行った。
Jumanに入れる前の半角→全角変換にはライブラリmojimojiを用いた。

URLやアルファベットは正確に読みを推定するのは不可能と判断し、最初に取り除いた。
また、空白及び、以下に挙げるような記号もこの段階で取り除いた。 
`　、。！？「」『』（）【】［］＃＠：；／…．，＿・＝＆％＄´”’`

合計文字数が17文字以下の文に関しては探索から除外した。

575の各ブロックのはじまりは、以下の品詞のどれかから始まることとした。

- 名詞
- 動詞
- 形容詞
- 連体詞
- 副詞
- 指示詞
- 感動詞
- 接頭辞

改行を含むツイートについては改行ごとに別の文として解析を行い、またいだ探索はしていない。

# 抽出結果
適当に抽出した生のデータはこんな感じ。

> 東京～南船橋駅間の とうきょう～みなみふなばしえきかんの
パトカーとカーチェイスして電柱を ぱとかーとかーチェイスしてでんちゅうを
今回に倣って同じことやると こんかいにならっておなじことやると
カップルで編成された軍隊が かっぷるでへんせいされたぐんたいが
軍隊がいたんだよ他の軍よりも ぐんたいがいたんだよたのぐんよりも
いたんだよ他の軍よりも信頼と いたんだよたのぐんよりもしんらいと
これからも日菜子ちゃんのプロデュース これからもにちなこちゃんのぷろでゅーす
東京―南船橋駅間の とうきょう―みなみふなばしえきかんの
作品の延長線を書くくらい さくひんのえんちょうせんをかくくらい
くらいなら０から書いた方が気が くらいならぜろからかいたほうがきが
コミックのちょうど今月公開さ こみっくのちょうどこんげつこうかいさ
いう人は見ないだろうがとりあえず いうじんはみないだろうがとりあえず
爆発において爆発直前の ばくはつにおいてばくはつちょくぜんの
大量のガスを放出していると たいりょうのがすをほうしゅつしていると
客引きお姉さん今日の夕飯は きゃくひきおねえさんきょうのゆうはんは
人いつも仕事帰りに声かけて じんいつもしごとかえりにこえかけて
最近はただ献立を聞いてくる さいきんはただこんだてをきいてくる
柚に声ついて一年でみたいな ゆずにこえついていちねんでみたいな
ホヤホヤの新しいバスターミナル ホヤホヤのあたらしいばすたーみなる
見えた気がするよ卯月の見た景色 みえたきがするようづきのみたけしき
東部では土砂災害に注意して とうぶではどしゃさいがいにちゅういして
災害に注意してください西部 さいがいにちゅういしてくださいせいぶ
注意してください西部北部では ちゅういしてくださいせいぶほくぶでは
これからも続いていくとして次の これからもつづいていくとしてつぎの
はこの前出るのミスって京阪に はこのまえでるのみすってけいはんに
京阪にいって退場処理しない けいはんにいってたいじょうしょりしない
事もなく別れた派遣アラサーが こともなくわかれたはけんアラサーが

概ね良好に思える。

また、想像以上に575は多く、ある時の取得結果756ツイートから158もの575が取得された！
※重複及び、そのうちの精度などは算出しておりません

## NG例

NG例としては、以下のようなに、形態素解析に失敗していたり、未知語や固有名詞で、読み方が正しく判定されてないものが多かった（読みの文字数で判定しているが、未知語のため漢字が含まれてしまっているなど）

> なかろうと絶対的な事実だ拙 なかろうとぜったいてきなじじつだ拙
震度４石狩南部胆振中 しんどよんいしかりなんぶいぶりちゅう

解析間違いの一つとしては、以下の文から「たらなんかカップルめっちゃ喧嘩して」が抽出されたのだが、

> シェアハウスの外でたらなんかカップルめっちゃ喧嘩してるやん

「たら」が名詞になってた、、、鱈のカップルが喧嘩してるわけではないのだ・・・

> たら たら たら 名詞 6 普通名詞 1 * 0 * 0 "代表表記:鱈/たら カテゴリ:動物;人工物-食べ物 ドメイン:料理・食事"

中でも目立ったのは数詞の読み方で、「ごひゃく」ではなく「ごぜろぜろ」のように読んでしまっている。
でも郵便番号なら数字一文字ずつ読むし、部屋番号ならどう読んでもいいし、
007は「ダブルオーセブン」とよんだり、999は「スリーナイン」とよんだりするし、
本当に難しい問題な気がした。

> 地から約３５の場所に住む記者が ちからやくさんごのばしょにすむきしゃが
０９－０９のツイ廃結果 ぜろきゅう－ぜろきゅうのツイはいけっか
５００中断の末阪神－ ごぜろぜろちゅうだんのすえはんしん－

# 改善点

今回はJumanを用いたが、
やはりTwitterを対象とする以上、未知語によるミスは多かったので、
Juman++や、NEologd+Mecabなどを使うべきだったかもしれない。

また他にも、
字余り、字足らずの同時探索
数詞の読み上げ

なども行いたい。

あと、冷静に考えて基本句で区切っただけ？と思わなくもないのでもうちょっとよく分析したい。

# おまけ: 短歌の抽出

同様にして、57577の組み合わせも取得してみた。数が少ないので、OKNGわけてなくて、データすべてです。いい感じのと、それ以外のと。
スペース区切りで後ろに書いてあるのが認識されたよみがな。漢字などが混ざっているのは未知語判定されているため。

よさげ

> 普段なら徹夜してでも治すけど明日は東京行くからはやく ふだんならてつやしてでもなおすけどあすはとうきょういくからはやく
副業で親が生計立ててたら子どもとしては悲しすぎます ふくぎょうでおやがせいけいたててたらこどもとしてはかなしすぎます
方法がない場合って例外をしておしまいにするしか無いの ほうほうがないばあいってれいがいをしておしまいにするしかないの
黎明期まだ庶民には高額で手が届かない家電であった れいめいきまだしょみんにはこうがくでてがとどかないかでんであった
庶民には高額で手が届かない家電であったテレビ広告 しょみんにはこうがくでてがとどかないかでんであったてれびこうこく

微妙

> 大事シェアハウスの外でたらなんかカップルめっちゃ喧嘩してるや だいじしぇあはうすのがいでたらなんかかっぷるめっちゃけんかしてるや
今場所に進退懸ける稀勢の里が白星発進自分 こんばしょにしんたいかけるまれぜいのさとがしろぼしはっしんじぶん
向き合ってやりたいことを高校のうちに見つけてほしいその上 むきあってやりたいことをこうこうのうちにみつけてほしいそのうえ
食料理してるのだからそりゃ比較したらそもそも趣味する時間 しょくりょうりしてるのだからそりゃひかくしたらそもそもしゅみするじかん
広島でお世話になったおねーさん意味深の目が芳根京子に似て ひろしまでおせわになったおねえさんいみ深のめが芳ねきょうこににて
思えないケースも割とあるんだよー保護者も首をひねっていたり おもえないけーすもわりとあるんだよほごしゃもくびをひねっていたり

# 最後に

意外と575って多かった！そして面白いのが抽出できた！
そして57577まで抽出できると思わなかった！

あと、抽出された575から下の句を考える、歌合みたいなゲームもできそうだなと思った！

> パトカーとカーチェイスして電柱を

これにどんな77をつなげるか、みたいな。

以上、半日ぐらいの自由研究でした。