エムスリーテックブログ

エムスリー(m3)のエンジニア・開発メンバーによる技術ブログです

怪談のためにElasticsearch入門した話

この記事はエムスリーAdvent Calendar 2020 24日目の記事です。

クリスマス付近の予定はこのアドカレ執筆だけ、エンジニアリングGのowlです。

ところでみなさんは怪談がお好きだと思います、もちろん自分も大好きです。常日頃から手当たり次第に読んでいるのですが、最近では読むものが少なくなってきたので中国古典の志怪小説や江戸時代以前に書かれた怪談集や説話集も集めています。いつか現代語訳されているものも読みつくしてしまったら外国語や古典籍のくずし字を解読する羽目になるかもしれません。

ちなみに怪談は好きですがホラー映画は苦手です、びっくりするので。

さて、大量の怪談を読むうちにその内容や語られ方が時代や地域によって大きく異なりそれぞれが興味深い特徴を持っていたり非常に似通った類話が存在することに気づきました。例えば江戸時代からいわゆる幽霊物の占める割合が急激に増える、現代の都市伝説的怪異の中には「色」をキーワードとするものが多い、日本である年代から突然「霊感」という概念が一般に広まる……など。

そこで少し真面目に怪談に関する考察をやってみようと思い立ち、その前準備としてなるべく怪談をデータベース化していくことにしました。

f:id:owl-m3:20201225064251p:plain

  • やりたいこと
    • 使う技術スタック
  • 実装に関する短い説明
  • 「類話」の話
  • 重要語の抽出とテキスト分類
  • 入門してみた感想
  • We're hiring !
続きを読む

AWS ECSユーザーからみたGKE再入門

こんにちは、エンジニアリンググループ AI・機械学習チームの安田です。

これは エムスリー Advent Calendar 2020 の22日目の記事です。

今回は、普段AWS ECSを主に使っている私が、GKEをECSとの比較から眺め直します。

  • 読者想定/前提
    • 読者想定
    • 前提
  • ECSの復習
    • API
    • Batch
    • ECSのまとめ
  • GKEの確認
    • API
    • API(k8sのyamlあり)
    • Batch
  • ECSとGKEの比較とGKEの疑問点
    • ECSとGKEの比較
    • LB(service)
    • LB(Ingress)
    • スケジューラ(cronjob)
  • まとめ
  • We are hiring!
続きを読む

Go で Chrome Bookmark Fuzzy-finder を作ってたら無限ネスト JSON を平らにしてた

f:id:abctail30:20201222210244p:plain

エムスリーエンジニアリンググループ AI・機械学習チームの中村(@po3rin) です。 好きな言語はGo。仕事では主に検索周りを担当しています。今回はGoでfuzzy-findingツールを作ったのでその方法と、Chromeブックマークのような無限ネストJSONを Visitor Pattern でスライスにパースする方法を紹介します。

続きを読む

幼児向けの四方見ビューワを作った

エムスリー エンジニアリングGの岩本です。

これは エムスリー Advent Calendar 2020 の21日目の記事です。

幼児向けのお勉強は子供にとって大変なことですが、親もなかなかに大変ですよね。 子供のやる気を削がないように、気を使いながら楽しく勉強することが必要です。 そして、同じ問題を解かせていると答えを覚えてしまうので、ちょっと問題を変える必要もあります。

算数のような問題であればかんたんに親が作れますが、図解が必要なものは作るのがなかなか難しい。 前回は迷路のエディタを紹介しましたが、今回は四方見(しほうみ)ビューアを紹介します。

f:id:cpw:20201219101050p:plain:w200

四方見ビューア

続きを読む

BERTによる感情分析を医療記事で実験してみた

この記事はエムスリーAdvent Calendar 2020 20日目の記事です。

エンジニアリンググループ AI・機械学習チームの李です。弊社では記事に対して疾患薬剤などのタグを付与するシステムGaussと、記事についたタグとユーザーのPV情報を利用してユーザーに興味のあるタグを紐づけるシステムMaxwellが存在します。Maxwellで使う特徴量を増やしたいというモチベーションがあるのですが、1つ考えられるのは記事についたタグに対して感情分析の結果を追加で利用することです。そこで、感情分析タスクをBERTで解く論文「Utilizing BERT for Aspect-Based Sentiment Analysis via Constructing Auxiliary Sentence」 (Sun et al., 2019) を弊社のサービスで提供される医療記事に適用してみました。

f:id:jesa7955:20201216145500p:plain
各粒度の感情分析の例

続きを読む

Digdag + Embulkをクラウド転生させてデータ基盤運用を圧倒的に楽にした話

こんにちは、エムスリー エンジニアリンググループ / 製薬企業向けプラットフォームチームの鳥山 (@to_lz1)です。

これは エムスリー Advent Calendar 2020 の19日目の記事です。

エムスリーでは現在、各システムのオンプレ環境からクラウドへの移行を急ピッチで進めているところです(勉強会の配信アーカイブをYouTubeでもご覧いただけます。公式テックチャンネルのご登録、ぜひお願いします!)

www.youtube.com

これに関連して私のチームでも最近「データ基盤(Digdag + Embulk)のクラウド移行」を行ったため、そのときに考えたことや移行して良かったことを共有したいと思います。

  • エムスリーのデータ基盤について
  • それまでの構成
  • クラウド環境でのアーキテクチャ
    • DigdagとEmbulkの分離
    • Digdag on AWSからBigQueryを操作する
  • 併せて行った改善(Sentryでの障害検知)
    • .digファイルでSentry通知を書く
    • slaと組み合わせた初動対応
  • まとめ
  • We are Hiring!
続きを読む

BigQueryのINFORMATION_SCHEMAを利用してクエリコストを集計する

エムスリーエンジニアリンググループAI・機械学習チームの木田です。これはエムスリー Advent Calendar 2020の18日目の記事です。

Advent Calendar 2020 15日目の笹川の記事 でも紹介があったとおり、弊社ではBigQueryを中心としたデータ基盤を活用しています。BigQueryの利用コスト管理の一環で、BigQueryのベータ版機能であるINFORMATION_SCHEMAを利用したクエリコストの集計を試みましたので、それを紹介させていただきます。

  • INFORMATION_SCHEMAとは
  • なぜ使おうと思ったのか
  • どのように計測するか
    • 制限・注意点
  • まとめ
  • We are hiring!
続きを読む