社Dへの道 ~社会人博士課程に入学しました~

社Dへの道 ~社会人博士課程に入学しました~

こんにちは。レトリバの飯田(@meshidenn)です。カスタマーサクセス部 研究チームのリーダーをしており、マネジメントや論文調査、受託のPOCを行なっています。

この4月から、東京工業大学(東工大)の岡崎研究室に社会人博士課程で所属しており、動機・受験・会社の支援など書いていきたいと思います。

続きを読む

文字列アルゴリズムは世界を救う?Suffix Array と Longest Common Substrings

レトリバのCTOの武井です。

https://twitter.com/goth_wrist_cut

新型コロナウィルスが世界で猛威を振るっていますが、皆様安全に過ごせておりますでしょうか。 レトリバでは フルリモート化 や、 交流なども オンライン飲み会 にするなど、工夫して過ごしています。

さて、今回はそんな新型コロナウィルス、COVID-19の遺伝子配列をターゲットに、 Longest Common Substring(最長共通部分文字列)を求めたり、そのアルゴリズムの解説をしてみようと思います。

アルゴリズムの説明自体は William Fiset さんという方が動画で説明しており、 非常に分かりやすい図示がありますので、是非ご覧になって下さい。

https://www.youtube.com/watch?v=Ic80xQFWevc

https://www.youtube.com/watch?v=DTLjHSToxmo

このブログでは日本語での解説と、実際の実装まで踏み込んで紹介しています。

  • はじめに
  • Longest Common Substrings(最長共通部分文字列)とは
  • Suffix Array と LCS
    • LCSの制約条件
    • 共通部分文字列の長さ
    • Slide Window
  • 道具立て
    • CardinarityQueue(異なり数カウントキュー)
    • MinQueue(最小値キュー)
    • SlidingWindow
  • コードと解説
  • まとめ

続きを読む

文字列検索の話(その1): ナーイブ検索と KMP法 BM法

CTO武井です。

今回は2018/10/02にセミナーでお話した、文字列検索の話をブログにしようと思います。

セミナーでは時間の都合もあって、スライドにコードを載せてもなぁ、という感じで詳細は省いたのですが、 ブログではコードが載せられますので、コードを載せつつ説明していこうと思います。

ブログの文量が毎回とんでもないことになってしまうので (参考: 前回(33654文字) 前々回(27624文字))、 今回は3~4回ぐらいに分けて、月1ぐらいのペースで書いていこうかなと思っています。


基本に立ち返って 文字列検索の話をします

初回の今回は、インデックスを作らない検索、つまり、ナイーブな検索と、クエリを前処理する検索(KMP法とBM法)について説明します。

次回以降は、インデックスを作る検索やより複雑な検索の話、セミナーでは話せなかったAho-Corasickの話などをできればと思っています。 3/25にパッケージ版をリリースしました、 高速塩基配列検索ソフトウェアGGGenomeでも使われているFM-Indexの話もする予定です!

  • 文字列検索とは
  • ナイーブな方法
  • KMP法
  • BM法
  • まとめ

続きを読む

とある新入社員の 1 ヶ月

こんにちは。2020年度に新卒でレトリバにエンジニアとして入社した野本です。

私は今、7 月にリリース予定の YOSHINA という製品の開発に、主に細々とした要素を実装していく担当の枝葉チームとして携わっています。 今回は入社から今日までの約1ヶ月間に私がレトリバでどんなことをしてきたのかをご紹介させていただきます。

続きを読む

とある新入社員の修論解説 〜音素認識〜

はじめまして。 2020 年度に新卒でレトリバにリサーチャー職で入社した古谷(@kk_fry_)です。

私は、大学院で聴覚障害者の発話訓練を支援するための音素認識について研究していました。

そこで今回は、新入社員の第 1 回目の記事として、大学院での研究について簡単に紹介したいと思います。

続きを読む

簡潔データ構造ってなに?

こんにちは。レトリバのリサーチャーの木村@big_wingです。レトリバでは学習アルゴリズムの高速化や低リソース化に取り組んでいます。今回から何回かに分けて簡潔データ構造について紹介していく予定です。 初回である今回は簡潔データ構造の概念について紹介します。

簡潔データ構造の書籍としてはNavarro氏の本、日本語で書かれたものとしては定兼氏の本岡野原氏の本があります。

続きを読む

言語処理学会 第26回年次大会(NLP2020)に参加しました

こんにちは。レトリバのChief Research Officerの西鳥羽です。

レトリバでは、研究動向・業界動向の把握のため、研究グループの人間は積極的に国内学会に参加しており、今回は、自然言語処理国内最大級のカンファレンスである言語処理年次大会に参加しました。 レトリバとしてもここ数年スポンサーとして支援させていただいており、今年もゴールドスポンサーとして支援させていただいております。

概要

言語処理年次大会は自然言語処理に関する様々なトピックにおける発表があります。固有表現抽出や係り受け解析などの基礎的な研究から文書分類・機械要約・機械翻訳などの応用に近い研究、或いは企業の製品やサービスの裏で用いている技術の説明のような応用面での発表とデータセットの作成及び公開に関する発表などもあり、日本における自然言語処理分野の発展には無くてはならない存在です。

今年は茨城大学での開催予定でしたが、言語処理年次大会初のオンライン開催となりました。各口頭・ポスター発表に対してZoom のMeeting IDが発行され、ポスターやスライドを画面に映しながら発表者が個別に話す形式でした。急遽オンライン開催に変更し、あれだけの数の発表だったにも関わらず聴講者としてはほとんどトラブルを感じることはありませんでした。これもひとえに関係者の皆様の御尽力の賜物です。 私は現地開催でのフル参加は難しかったのですが、オンライン開催になったことにより、ピンポイントで発表を聞くことができました。この時期は年度末ということもあり多忙な方も多いかと思うので、今後もこのようなオンラインによる配信があると多くの方にとって非常に嬉しいかと思います。オンライン開催の会議の参加は初めてでしたがポスター発表において周りの議論や説明の声が入らないため、とても聞きやすかったです。そして質問する方としても大声を張り上げる必要がないので負担が非常に少なくて良かったです。

以下に面白かった発表のうち3件紹介します。

Poincaré GloVe ベクトルのレトロフィッティング

この発表では単語の上位下位概念を双極空間での埋め込みに反映させていました。どうしても上位下位関係については教師データが不足しがちですが、大規模コーパスから作成する Poincaré Gloveで作成した埋め込みベクトルをベースにWordNetによる階層構造を埋め込んだPoincaré embeddingによって改善したというものです。これら2つの埋め込みベクトルを合わせる方法としてはレトロフィッティングを用いていました。

個人的には自然言語処理タスクをやっていると、単語の上位下位関係を用いたくなるときが多々ありますので興味ありました。

契約書OCRの単語誤り訂正における漢字偏旁冠脚を考慮した木編集距離の検討

文書における単語誤りというと色々ありますが、その中でOCRに特有のものも幾つかあります。一つは部首を取り違えるというものです。例えば「注文書」が「往文書」となるものです。もう一つは漢字が分解されてしまうというものです。例えば「会計」が「会言十」となるものです。どちらも漢字をより細かい単位の偏や旁り(これらを総称して偏旁冠脚といいます)に分解すると同じパーツが出てきていることに着目し、パーツも含めて辞書から探索しています。偏旁冠脚の情報を持つために、漢字及び偏旁冠脚を子ノードで持つ木構造によって単語を表します。単語と単語の類似度を木編集距離で計算して辞書内でもっとも似ているものに訂正するアプローチを取っています。

個人的には偏旁冠脚による木構造で表すことと木編集距離を用いたアイデアが面白かったです。

UD Japanese GSDの再整備と固有表現情報付与

Universal Dependencies(UD)に沿ってアノテーションされたデータである Japanese GSDの再整備を行ったというものです。ライセンスの修正、データの復元作業、文節係り受け情報の付与、分節係り受けからUDへの変換を行ったとのことでした。日本語のアノテーションデータは貴重なので、こういったデータの整備には頭の下がる思いです。近いうちに公開及びspaCyとの連携も含めて出されるとのことで楽しみです。

終わりに

レトリバ研究グループでは自社製品の研究開発を行うだけではなく、学会イベントなどのスポンサー・大学との共同研究の遂行・研究成果の対外発表など、学術コミュニティへの貢献を積極的に行っています。∪・ω・∪

TopicModelの最終形態? Structured Topic Modelのご紹介

こんにちは。レトリバの飯田です。カスタマーサクセス部 研究チームに所属しており、論文調査やそのアルゴリズムを実行するスクリプトの実装などを行なっています。 今回は、Bag of Words(BoW)表現に於いて、これがTopicModelの最終形態ではないか?と私が思っているStructured Topic Modelの紹介と再現実装をpythonで行なったので、その紹介をします。

https://github.com/retrieva/python_stm

続きを読む