LINE Engineering
Blog

  • AIに「Clova、今日の天気は?」を理解させることの面白さ
    overlast 2017.12.23

    LINEのData Labsに所属している佐藤敏紀(@overlast)です。この記事はLINE Advent Calendar 2017の23日目の記事です。

    この記事では、スマートスピーカーで対処を求められる自然文クエリの言い換えがどれほど多様であるかを示し、「スマートスピーカーを実現するための自然言語処理の楽しさ」をお伝えしたいと思います。

    はじめに

    みなさんはスマートスピーカーを家に置いていますか?

    私は自宅のリビングに弊社が販売しているClova FriendsClova WAVEを置いていますし、それ以外に、Google HomeAmazon Echo Dotも設置しています。

    ちょっと多すぎでしょうか (;^_^A

    これらのスマートスピーカーは、主に人間の言葉を聞いてその内容に基づいた動作をします。たとえばClova Friendsに「Clova!小町さんに電話して(クローバ コマチサンニデンワシテ)」と、電話をかける気持ちで声をかけると、Clova FriendsはLINEのIP電話機能を使って小町さんに電話をかけてくれます。

    スマートスピーカーは、主に音声を使ってユーザーの言葉に応答します。画面が付いているなら音声以外に画像や動画を使った応答もできますし、さらに手足が付いているなら簡単なジェスチャーも同時にできるでしょう。

    スマホやパソコンから得られる情報の形式は主にテキストや画像ですが、スマートスピーカーからは、音声、映像、アクションなどが融合した「誰かと会話したときのような」情報が得られます。

    他の人間が発信する情報というだけであれば、テレビやラジオなどのマスメディアからも多くの情報を得られます。しかし、個人用として提供されているスマートスピーカーなら「より自分の今の状況に合う情報」を得ることができます。

    スマートスピーカーによる応答が面白いのは、音声認識によりクエリを取得して、音声合成でクエリを処理した結果を発話することで、「誰かと会話したときに近い形で」「よりユーザーの状況に合う情報」を返せるところだと思っています。

    自然言語処理 NLP

    もっと見る

  • コード分割(Code Splitting)を簡単に実装できるgrow-loaderを作った話
    sunderls 2017.12.22

    はじめに

    こんにちは、LINEマンガJavaScript担当の@sunderlsです。

    これはLINE Advent Calendar 2017の22日目の記事です。今日は、webpackローダーのgrow-loaderを紹介します。

    LINE Engineering Blogの記事「LINEマンガ:Page Stackを使ってサクサクなページ遷移を実現できました」でご紹介しましたが、LINEマンガはWeb技術で実装されています。

    Webでネイティブアプリに近いユーザー体験を提供するため、いろいろ工夫しています。今回は、数ある工夫の中からコード分割の実装を紹介したいと思います。

    なぜコードを分割するのか

    LINEマンガでは、JavaScriptのソースコードをもともと1つのファイルにバンドルしていました。しかしサービスが成長するにつれて、ページ数が増え仕様も複雑になり、バンドル後のファイルサイズがどんどん大きくなってきました。将来を考えると1つにバンドルするのはやはり望ましくないと考え、コード分割の実装を始めました。

    AdventCalendar grow-loader JavaScript

    もっと見る

  • Qiitaで人気のLINE関連投稿紹介(保存版)
    Shinichiro Isago 2017.12.21

    Developer Relations Teamマネージャーの砂金(いさご) @shin135 です。この記事はLINE Advent Calendar 2017の21日目の記事です。

    LINEでは12月よりDeveloper Relation Teamを新設し、より一層エンジニアのみなさまとの関係構築に注力して参ります。

    LINEとしてエンジニアが積極的に情報発信してゆく雰囲気を応援しようという意図で、Qiitaのアドベントカレンダーに協賛させていただいている流れもあり、今回はQiita上でLINE、特にチャットボット開発に関連した記事をピックアップして、みなさまが後に参照するときに困らないためのまとめ記事として紹介してゆきます。LINE Bot関連情報はWeb上に多くあるものの、まとまった記事を見つけにくいというご意見もいただいており、こちらの投稿を「はてぶ」などで保存版としてご活用いただけると幸いです。ここに掲載させていただいた方々のみならず、LINEが公開しているMessaging APIやLINE Loginを実際に試していただいたすべてのエンジニアのみなさまに、改めて御礼申し上げます。

    Qiita上の投稿は1.事例系、2.作り方解説系、3.Tipsの3つに分類することができそうなので、順にご説明してゆきます。

    AdventCalendar Bot

    もっと見る

  • レイテンシーを計算する技術の話
    Do Xuanhuy 2017.12.20

    こんにちは、LINEメッセンジャーのサーバーサイドとモニタリングプラットフォームの開発を担当しているフィ(@dxhuy)です。この記事はLINE Advent Calendar 2017の20日目の記事です。

    今日は、モニタリングシステムでよく使うレイテンシーやその計算方法などについて紹介したいと思います。LINEでは、日々ユーザが楽しくメッセージを送れるように、システムの安定性を第一に考えています。安定したシステムを保つためにたくさんの指標を見守る必要がありますが、その指標の1つが「レイテンシー」です。

    ウィキペディアでは、レイテンシーは以下のように定義されています。

    デバイスに対してデータ転送などを要求してから、その結果が返送されるまでの不顕性の高い遅延時間のこと

    インターネットサービスにおいては、レイテンシーは基本的に「レスポンスタイム」のことです。つまり、リクエストを受けてからレスポンスを返すまでにかかる時間がレイテンシーです。

    AdventCalendar

    もっと見る

  • V8のHidden Classの話
    Masami Yonehara 2017.12.19

    フロントエンドエンジニアです。2年前に東京からIターンして福岡に来ました。

    この記事はLINE Advent Calendar 2017の19日目の記事です。

    JavaScriptの気持ちを知りたい

    こんにちは、LINE FukuokaのフロントエンドエンジニアのYoneharaです。

    そろそろクリスマスですね。フロントエンドエンジニアのみなさん、苦しんでいますか?私は苦しんでいます。2017年も暮れようというのに、いまだにブラウザやJavaScriptの気持ちが分からず、ユーザーに思うような快適なUXが提供できないことがあるからです。

    JavaScriptの気持ち。ただ幸いなことに、我々はかなりの程度、それを分析的に知ることができます。GoogleやMozillaが自身のJavaScriptエンジンのコードを公開し、随所でそのアーキテクチャを解説してくれており、また豊富なトレーシング・プロファイリングの手段が用意されているからです。

    今回の記事では、みなさんおなじみのChromeに採用されているV8というJavaScriptエンジンの、Hidden Classという最適化のための1つの仕組みをのぞいてみたいと思います。

    AdventCalendar JavaScript

    もっと見る