サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
GPT-4o
tech.legalforce.co.jp
こんにちは、LegalOn Technologiesでエンジニアをしている神田(@kampersanda)です。 本記事では、Jaccard係数に基づく類似文書検索の高速化技法を解説し、契約書検索での実験結果を報告します。 背景と目的 共起に基づく類似文書検索の必要性 契約書検索での注意点 本記事の目的 準備 表記 Jaccard係数 Overlap係数との関係 問題設定 線形探索による解法 高速化の方針 Length Filtering Position Filtering 高速化のための要素順序 アルゴリズム 転置索引を使った解法 基本的なアイデア Prefix Filteringに基づくトークンの絞り込み 高速化のための要素順序 アルゴリズム 実験 データセット 統計量 Length Filterの検出率に関する結果 検索時間に関する結果 おわりに メンバー募集中!! 背景と目的 共
はじめに こんにちは。株式会社LegalOn Technologies でエンジニアをしております、勝田(@WinField95)です。この記事は、情報検索・検索技術 Advent Calendar 2023 の 20日目の記事として執筆されました。 この記事では、ANTLR[1]を使用したシンプルなクエリ構文の解析を行う検索クエリパーサーの生成と、解析結果から Elasticsearch の Query DSL[2]への変換までのプロセスと簡単な実装を紹介します。実務では、要求に応じて複雑なクエリ構文の文法定義が必要になる場合もありますが、この記事ではなるべく簡単なクエリ構文を取り扱います。解説で使用するコードは、この GitHub のリポジトリで公開しますので、参考にしてみてください。また、Search Engineering Tech Talk 2023 Winter では、この記事
こんにちは、LegalOn Technologies Researchで研究員をしている神田(@kampersanda)です。 弊社では、検索チーム主催でセマンティック検索とベクトル検索に関する社内勉強会を定期的に実施しています。この勉強会では、技術に関心のあるエンジニアが有志で議題を持ち寄り、知識共有を行っています。 その成果のひとつとして、文埋め込み技術であるSimCSEのチュートリアル資料を作成し、以下に公開しました。 github.com この資料はNotebookとして作成されており、SimCSEの学習から評価までの一連の動作を簡単に試して頂くことができます。また、コードの各パートには詳細なコメントや引用を付与しています。 本記事では、資料作成の目的や方法などを簡単に紹介します。チュートリアルの内容については、Notebookをご参照ください。 SimCSEの概要 SimCSEは
はじめに 株式会社LegalOn Technologies でデータエンジニアリングをしている 田中 晶 です。 LegalOn Technologies では、データドリブンな意思決定をするために、データ分析基盤や BI ツールの整備を行い、プロダクトに関わる多くの社員がデータを活用できる状態を維持し、さらなる活用を目指しています。 過去の啓蒙活動や整備の甲斐もあり、現在弊社で利用しているBIツールである Looker のライセンスは多くの社員に付与されており、またその活用も専門職だけでなく、営業部門の活用率も高いという利用率の計測結果も出ているほどです。 このように活用されているデータ分析基盤ですが、より高いデータの利活用水準を目指すためには、利用者や用途に関して、長期的に柔軟な利用状況の分析を行う必要がでてきました。 そこで幅広く Looker の活用度を測定するために使用状況やパフ
こんにちは。LegalOn TechnologiesでCTOを務めている深川といいます。 もし私がどういう人なのか気になる方がいましたら、私のことは以下の弊社オープン社内報でも記載していますので、よかったらこちらの記事をご覧いただければと思います。 https://now.legalontech.jp/n/n36b23e19f7b0 エンジニア組織の運営は人数が増えていくにつれて加速度的に難易度があがります。その中でも、エンジニアリングマネージャーにとって常に頭を悩ませるものが人事評価制度です。特に、評価基準については、公正かつ納得感があり、それでいて属人化しない評価基準を作り上げるのは至難の業です。 弊社も例に漏れずエンジニアのグレード評価基準に課題を感じていたため、2022年10月にエンジニアグレード評価基準の刷新を行いました。そこから約10か月が経過し、徐々に刷新の効果や課題が見えて
こんにちは、株式会社LegalOn TechnologiesでCSIRTのリーダーを務めている今成と申します。 本記事では、LegalOn Technologies(以下 LegalOn)におけるCSIRTのセキュリティインシデント対応に係るプロセスおよび管理方法を、体系的に整理した事例をご紹介します。企業のセキュリティ担当者の方々に、セキュリティインシデント対応の事前準備という観点で、参考になる情報を記載しています。ぜひ最後までお読みください。 世の中の動き 近年は多くのセキュリティ関連のニュースが報じられており、サイバー攻撃の手法が多様化・巧妙化していることが伺えます。また、働き方改革やCOVID-19への対応から企業のワークスタイルが変化したことにより、環境変化に伴うセキュリティリスクについても新たな課題が浮上してきています。 このような動向を踏まえ、2023年3月に「サイバーセキュ
こんにちは、SRE&プラットフォームグループの和田です。LegalOn Technologiesでは、2019年4月に「LegalForce」、2021年1月に「LegalForceキャビネ」を正式リリースして以来、毎月機能アップデートをしています。また、リリース初期段階では予期できなかった技術的な課題に対処するために、バックエンドやインフラの改善も進めています。このような取り組みの中で、DBスキーマの更新も多数発生してきました。「LegalForce」では、シーケンシャルなDBスキーマ管理を採用していましたが、運用面での懸念が顕在化していました。一方、「LegalForceキャビネ」は、NoSQLからRDBMSへの移行計画の真っ只中で、将来的なDBスキーマ管理方法のプランを練っていました。 こういった文脈において今回は「LegalForce」と「LegalForceキャビネ」製品のCI/
こんにちは! 株式会社LegalOn TechnologiesのLegalForceキャビネ開発部SET(Software Engineer in Test)のひきもち(@rmochioo)です。 昨年8月に入社し、LegalForceキャビネのAPIテスト、自動E2Eテストなどの自動テストの導入、QA業務まで幅広く携わっております。 APIテストに関しては先日、記事出ていますのでご興味があれば見ていただければと思います。 tech.legalforce.co.jp LegalForceキャビネではE2Eテストの自動化ツールとしてmablを利用していましたが、この度Playwrightへの移行を行いました。 現在LegalForceキャビネで運用しているE2Eテストは全てPlaywrightで実行されており、リリース可否判断やQA環境でのマニュアルテストのサポートとして利用されています。
初めに こんにちは、株式会社 LegalOn Technologies の LegalForceキャビネ開発部でテックリードを務めている横道と申します。 私たちのプロダクト、「LegalForceキャビネ(以下キャビネ)」では Google Firebase を使用しています。 この Google Firebase を、実際のプロダクト開発と運用で使用した際に生じた課題と対応ついて、「Firebase 使用上の注意 Functions 編」「同 Firestore 編」の 2 つに分けてお送りします。 今回は Functions 編として、Firebase Functions を使ったプロダクトが、規模の増大と機能が増加していった際に、どのような課題が生じ、そしてどのような対応を行ったかを共有します。 スタートした段階では、キャビネの開発チームも小さく、サービス自体もどれくらい普及するのか
こんにちは、株式会社LegalOn Technologies の検索・推薦チームでエンジニアをしている、佐藤です。 弊社では LegalForce という製品で、お客様がアップロードした契約書を条文単位で検索ができる、条文検索機能を提供しています。 条文検索では既に契約書本文の Query Auto Completion (クエリ自動補完, 以下 QAC)が提供されており (*1)、今回は契約書のタイトルやファイル名などで絞り込み検索を行う際に利用される QAC の開発を行いました。 本記事では今回開発した QAC を実現する上で課題となった QAC データの更新について、継続的な更新を行うために検討したシステム設計や運用方法を紹介したいと思います。 (*1) 別の記事で詳しく紹介されています。 目次 絞り込み検索のための QAC QAC データ更新における課題 Completion 更新
こんにちは、株式会社LegalOn TechnologiesのLegalForceキャビネ開発部でQAリードを務めている島根(@shimashima35)と申します。 QAというとマニュアルテストが中心かと思われるかもしれません。確かにマニュアルテストはQAの業務の一部ではありますが、「質とスピードの両立」つまりプロダクト品質の高さとリリーススピードの両立を目指すため自動テストの導入もおこなっています。 今回はLegalForceキャビネのバックエンドに対するAPIテストを実装した話をご紹介します。 APIテストとは まず最初にAPIテストについて説明します。 APIテストの概要 APIテストとはWeb APIの外形的な仕様を満たしているかを HTTP(S)を用いてテストすることです。バックエンドのコントローラーに対するユニットテストとは以下の点が異なります。 HTTP(S)を経由する デ
こんにちは。株式会社LegalOn Technologies でエンジニアをしている赤部です。 自然言語処理をしていると、単語の出現回数を数えたり、単語と何らかのデータを紐付けたりすることが頻繁に必要になります。これらのことを簡単に行える、最も一般的でよく知られたデータ構造はハッシュマップではないでしょうか? プログラミング言語 Rust では、標準ライブラリの std::collections::HashMap を用いればハッシュマップを簡単に導入できます。しかし、場合によっては標準ライブラリの HashMap ではなく hashbrown クレートを利用したほうが、シンプルに効率的なコードを実装できるかもしれません。 この記事では、まず hashbrown クレートを紹介し、コード例とともに hashbrown クレートの使いどころを紹介します。 hashbrown クレート Rust
こんにちは、LegalOn TechnologiesのLegalForce開発部のSRE 伊藤です。 私たちのチームでは、LegalForceの安定稼働と同様に、開発者がより楽に開発・運用できるような基盤を提供することをミッションにさまざまな改善活動を行なっています。 今回はGitHub CodespacesをLegalForceのバックエンドの開発に導入した話をご紹介します。 GitHub Codespacesとは GitHubが提供しているクラウド開発環境で、通常十数秒で起動し、すぐ開発環境が手に入ります。 削除や再作成も手軽に行え、CPU/Memoryなどのスペックの変更も容易です。 デフォルトのエディタはVS Codeですが、その他のIDEでもリモート開発機能を通じて扱うことが可能です。 https://github.co.jp/features/codespaces LegalF
こんにちは。株式会社 LegalOn Technologies でエンジニアをしております、勝田(@WinField95)です。この記事は、情報検索・検索技術 Advent Calendar 2022 の 22日目の記事として執筆されました。LegalForce キャビネについて紹介すると共に、社内で運用されている検索システムを作り直したきっかけとなった課題と改善点についてお話します。 目次 LegalForce キャビネの検索機能 Elasticsearch の構成要素について 検索システムの課題 Nodeあたりの最大 Shard 数のソフトリミット ソフトリミットの設定値変更による延命措置 単一の Index 設計への変更 まとめ LegalForce キャビネの検索機能 LegalForce キャビネは、2021年1月に正式版をリリースした契約締結後の契約リスクの制御を目的としたマル
こんにちは。LegalForce Researchで研究員をしている神田 (@kampersanda) です。 LegalForce Researchでは、MeCab互換の形態素解析器Vibrato(ヴィブラ〰ト)を開発しています。プログラミング言語Rustで実装しており、高速に動作することが主な利点です。Vibratoはオープンソースソフトウェアとして以下のレポジトリで公開しています。 github.com 本記事では、Vibratoの技術仕様を解説します。以下のような方を読者として想定します。 自然言語処理の要素技術に興味のある方 データ構造・アルゴリズムに興味のある方 Rustでの自然言語処理に興味がある方 Vibratoについて 最小コスト法による形態素解析 単語ラティスの構築 最小コスト経路の計算 高速化の取り組み 辞書引きのキャッシュ効率化 実装での注意点 連接コスト参照のキャ
こんにちは。LegalForce Researchで研究員をしている神田 (@kampersanda) です。 LegalForce Researchでは現在、高速なパターンマッチングマシン Daachorse(ダークホース)を開発・運用しています。文字列処理の基礎である複数パターン検索を提供するRust製ライブラリです。以下のレポジトリで公開されています。 github.com 本記事はDaachorseの技術仕様を解説します。具体的には、 複数パターン検索に関係する基礎技術(トライ木・Aho–Corasick法・ダブル配列) Daachorseの実装の工夫と性能 を解説します。 以下のような方を読者として想定します。 文字列処理アルゴリズムやデータ構造に興味のある方 自然言語処理の要素技術に興味のある方 Rustライブラリに興味がある方 Daachorseについて 複数パターン検索の基
こんにちは。LegalForce でエンジニアをしております、勝田(@WinField95)です。 この記事は、情報検索・検索技術 Advent Calendar 2021 の 21日目の記事として執筆されました。LegalForce と LegalForce キャビネについて紹介すると共に、Reindex の実施に伴い生じた課題と具体的な対応について社内で実践している内容をお話します。 LegalForce と LegalForce キャビネ の検索機能 Reindex API を使用した Index 再構築 Reindexとは Mappingの更新と、Reindex が必要な場面 Index Aliases を用いた Index の切り替え サービス提供時の Reindex 実行に伴う課題 Reindex 実行後にデータの不整合が生じる場面 サービス無停止で Reindex を実施する
こんにちは。LegalForce COO 川戸(@kawato_takashi)です。 今回は、LegalForceの開発組織での直近の組織変更について、その意図と背景をお伝えします。読者としては下記の二通りを想定しています。 弊社をご検討いただいている候補者に正しい最新の情報をご共有すること。 複数製品を開発・運営する上での組織課題に関心があるエンジニアリングマネジャーやプロダクトマネジャーに、弊社の経験をご共有すること。 LegalForceでは、タイトルにもある通り、「新製品を作り、育て続ける」ということを開発における大きい課題と捉えています。売り上げの大きい既存製品を優先する力学は、組織の様々なレベルで働きます。組織は放っておけば新規のアイデアを押しつぶしてしまうのです。この罠を避け、新製品の開発・成長や探索にしっかり投資をするには、それができるように組織を設計する必要があります。
こんにちは。LegalForce Research でエンジニアをしている赤部 (@vbkaisetsu) です。 今回は、弊チームが開発した新しい高速な単語分割器 Vaporetto(ヴァポレット)の技術解説を行います。Vaporetto はプログラミング言語 Rust で開発されています。想定する読者は、 自然言語処理のアルゴリズムに興味がある人 Rust によるプログラミングに興味がある人 です。 単語分割器 Vaporetto はオープンソースソフトウェアであり、ソースコードは以下のリポジトリで公開しています。 https://github.com/legalforce-research/vaporetto Vaporetto という名前は、イタリアのヴェネツィアで運行されている水上バスから取りました。 ヴェネツィアの様子。写真右端の黄色いラインの入った建物がヴァポレットの乗り場。
こんにちは。LegalForce COO 川戸(@kawato_takashi)です。 今日は「画面を作り直すこと」のケーススタディをご紹介します。 事前にリサーチをしても、実際に使われ始めるまでは、本当は製品が何に使われるのか、よく分っていないことが多いです。ユーザーのフィードバックをもとに機能を継ぎ足した結果、元の設計の限界に気付くことはしばしばです。 また設計は生まれた瞬間から老い始めます。たとえば最近ではアクセシビリティやOOUIなど、着手時には目配りできていなかったことが「できて当然」になっていく、といったことも発生します。 機能追加を伴わない再設計は、どうしても優先順位が低くなりがちです。しかし技術的負債と同様に、設計的な負債も、設計と実装の速度を削いでいきます。 何より、それでは真の意味でユーザーが使いやすい製品に辿り着きません。 こうした背景からLegalForceでは製品
こんにちは、LegalForce CTOの時武(@tokichieto)です。 今日はLegalForceで行っている品質保証(QA: Quality Assurance)の取り組みについてご紹介します。 LegalForceでは、契約書のレビューや管理を行うためのSaaSを提供しており、サービスのユーザーとなるのは企業の法務部や法律事務所で契約書業務に携わる方々です。契約書を扱う業務システムという性質上、ユーザーから求められるサービス品質の期待値は高く、開発速度を落とすことなく期待に応えられるだけの品質を維持していく必要があります。 しかし、限られた開発メンバーの中でサービスを継続的に改善し、ユーザーに期待感を持たせながら高い品質を保ち続けるのはなかなか困難でした。2019年4月に "LegalForce" を正式版としてリリースした後、開発者の増加に伴って新機能を並行開発するケースも増
こんにちは,LegalForce R&D セクションでエンジニアをしている打田(@moco_beta)です。 LegalForce では,お客様がアップロードした契約書を条文単位で検索ができる,条文検索機能を提供しています。AIによるレビュー支援機能を補完する形でよく利用されている機能ですが,「どんなキーワードで検索したらいいのかわからない」という声をいただくことが増えてきました。検索キーワードの発見に役立ててもらうため,先日 Query Auto Completion(クエリ自動補完,以下 QAC)(*1) をリリースしたので,その裏側をご紹介したいと思います。 Query Auto Completion UI (*1) 検索キーワードの一部を入力フォームに入れると,フォームの下にドロップダウンリストでキーワード候補が出てくる機能を指します。 QAC 開発における課題 LegalForc
こんにちは、LegalForce CTOの時武です。 この度LegalForceの開発者ブログを "LegalForce Engineering Blog" と題して開設することになりました。 技術的なネタは他のメンバーから後日投稿してもらうとして、今日はブログ開設の目的とLegalForceにおける開発組織のご紹介をしようと思います。 ブログ開設の目的 株式会社LegalForceは、2017年4月に創業した今年で4期目のスタートアップです。現時点で約60名の社員が所属しており、そのうち3割ほどがエンジニアです。 LegalForceという名前の通り "法務" に関する製品の開発・運営を最先端の自然言語処理を駆使しながら行っています。 この分野は一般的に "リーガルテック" と呼ばれており、弊社ではその中でも契約書業務にフォーカスしたエンタープライズ向けSaaSを開発しています。 leg
このページを最初にブックマークしてみませんか?
『LegalOn Technologies Engineering Blog』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く