Upgrade to Pro — share decks privately, control downloads, hide ads and more …

20200510 5week webサービス開発LT 日向のむしめがねを支える技術

20200510 5week webサービス開発LT 日向のむしめがねを支える技術

Hideki Okawa

May 10, 2020
Tweet

More Decks by Hideki Okawa

Other Decks in Programming

Transcript

  1. scraping 3-1. タイトルを形態素解析し固有名詞を抽出 3-2. 3日分の記事から注目ワードを算出 【日向坂46】舞台『あゆみ』ニコ生配信の現在の様子がこちら … 【 記号,括弧開,*,*,*,*,【,【,【 日向坂46

    名詞,固有名詞,人名,一般,*,*,日向坂46,ヒナタザカ フォーティーシックス ,ヒナタザカフォーティーシックス 】 記号,括弧閉,*,*,*,*,】,】,】 舞台 名詞,一般,*,*,*,*,舞台,ブタイ,ブタイ 『 記号,括弧開,*,*,*,*,『,『,『 あゆみ 名詞,固有名詞,人名,名,*,*,あゆみ,アユミ,アユミ 』 記号,括弧閉,*,*,*,*,』,』,』 ニコ生 名詞,固有名詞,一般,*,*,*,ニコ生,ニコナマ,ニコナマ 配信 名詞,サ変接続,*,*,*,*,配信,ハイシン,ハイシン の 助詞,連体化,*,*,*,*,の,ノ,ノ 現在 名詞,副詞可能,*,*,*,*,現在,ゲンザイ,ゲンザイ の 助詞,連体化,*,*,*,*,の,ノ,ノ 様子 名詞,一般,*,*,*,*,様子,ヨウス,ヨース が 助詞,格助詞,一般,*,*,*,が,ガ,ガ こちら 名詞,代名詞,一般,*,*,*,こちら,コチラ,コチラ … 記号,一般,*,*,*,*,…,…,… 4. 取得したデータをS3にCSV形式で保存 https://github.com/shogo82148/go-mecab name,y,m,d,h,cnt dTVチャンネル,2020,5,2,20,2 金スマ,2020,5,2,20,2 フォートナイト,2020,5,2,20,2 生配信,2020,5,2,20,1 小籔,2020,5,2,20,2 ・ ・ ・
  2. api go-aws-sdkを使えばgolangでも実行できる params := &s3.SelectObjectContentInput{ Bucket: aws.String("hinagane"), // バケット名 Key:

    aws.String("./data/article/articles.csv"), // バケット内のファイル名 ExpressionType: aws.String(s3.ExpressionTypeSql), Expression: aws.String("SELECT name FROM S3Object WHERE name='" + articleName + "' LIMIT 1"), // SQL文 RequestProgress: &s3.RequestProgress{}, InputSerialization: &s3.InputSerialization{ CompressionType: aws.String("NONE"), CSV: &s3.CSVInput{ FileHeaderInfo: aws.String(s3.FileHeaderInfoUse), }, }, OutputSerialization: &s3.OutputSerialization{ CSV: &s3.CSVOutput{}, }, }
  3. api いい感じに整形してjsonで送る [ { "name": "【日向坂46】ポンコツみーぱんとモデルみーさんのギャップがすごいwwwwwwww", "url": "http://hinatasoku.blog.jp/archives/23226414.html", "month": 5,

    "day": 9, "hour": 10, "memberNames": ["佐々木美玲", ""], "site": "日向速報", "siteUrl": "http://hinatasoku.blog.jp/", "pic": "https://hinagane.s3.hogehoge.hogehoge.jpg" }, ・ ・ ・ ]
  4. 辛かったポイント S3 Selectが貧弱。例えばorder by使えない。 select * from s3object s order

    by s.age (<class ‘botocore.exceptions.ClientError’>, ClientError(u’An error occurred (ParseUnexpectedToken) when calling the SelectObjectContent operation: Unexpected token found IDENTIFIER:orderby at line 1, column 26.’,), <traceback object at 0x7f5cd42fbcb0>) https://xp-cloud.jp/blog/2018/05/16/3287/