MNTSQ の技術ブログ
全42件
RailsでlazyにN+1回避したい
2021/03/29
ブックマーク
preloadはけっこう難しい mntsqのソフトウェアエンジニアチーム所属のhagiwaraです。 Rails アプリケーションのパフォーマンスチューニングとしてN+1問題を潰すというのはよく行われます。 教科書的には簡単に書けるのですが、現実のアプリケーション開発ではpreloadで頭を悩ませることがあります。 長く開発されてきた Rails アプリケーションは、さまざまな歴史的経緯があり
pythonの依存関係解析ツール、pydepsを使う
2021/03/19
ブックマーク
はじめに 皆様はpythonで書かれたソフトウェアのリアーキテクティング1をどのように進めていますでしょうか? 既存のソフトウェアに新規機能が追加しにくいとか、機能が修正しにくい等の問題がある場合にリアーキテクティングは有効です。 リアーキテクティングの初手としては既存のソフトウェアが抱える課題の洗い出しが行われます。その際にソフトウェア内のモ
ファイルシステムとS3でのユニコード正規化の関係を調べてみた2021
2021/03/17
ブックマーク
こんにちは、MNTSQでSREとして勤務している中原といいます。 プライベートも含めて、技術記事は久しぶりな気がします。がんばります。 さて、さっそくですが、日本人にとって、あるいは、韓国の方や中国の方も含めて、コンピュータ上でそれぞれの国の言葉を扱おうとしたときに苦労するのが文字コードです。 かつては(あるいは今も)、Shift JIS、EUC-JPなど、OSや環境
日本語でHugging Face Tokenizersを動かす
2021/02/26
ブックマーク
前回記事 に続いてHugging Faceネタです。Transformers本体ではなく、 分かち書き を行うTokenizersライブラリの紹介をします。 Hugging Faceが開発しているTransformersでは、事前学習モデルと用いた 分かち書き 処理を同梱して配布している。 機械学習 モデルの学習時と推論時の間で 分かち書き 設定が異なったり、 分かち書き 済み公開データと 分かち書き 設定が揃っていなかった
身近なデータで30分クッキング:Google Meetのログを解析してみる編
2021/01/26
ブックマーク
最近、身近な スモールデータ をさくっと分析してみる機会があったので、過程をまとめてみました。 スモールデータ の解析であっても、前処理、可視化、示唆出しなどデータ分析に必要な所作というのは変わりません。ステップに分けながら紹介したいと思います。 今回はツールに Google Spreadsheetしか使っていないので、ノンエンジニアのビジネスサイドの人であって
101回目のDocker入門
2021/01/15
ブックマーク
あなたはDockerに何回入門しただろうか? 何度あのクジラを見て頭を抱えたことだろうか? 今回あなたを「とりあえずDockerを使ってワールドプレスを表示する」ところまで道案内しようと思う。 そう、夢はでっかく世界に羽ばたかないとね。 間違えた、 ワードプレス だ。 Dockerって何 ワードプレスって何 Dockerでワードプレスを動かす ダウンロード インストール Windows mac
ANTLRを使ってクエリパーサーを実装する
2021/01/04
ブックマーク
MNTSQの溝口です。 普段からMNTSQの検索周りの開発を行っています。 MNTSQを含め、情報検索を行うモダンなアプリケーションではシンプルなUIが好まれます。 一方で、複雑な検索条件などを指定したい場合、シンプルなUIでは実現が難しいという問題があります。 その場合、シンプルなUIとは別に「詳細検索ページ」を用意するか、キーワードを入れるテキストボックスで検
python3.8 から新しく導入された Literal types について
2020/12/25
ブックマーク
はじめに python の関数に与える引数として特定の値のみを許容したいときはないでしょうか? そのようなときに、動的に引数の値をチェックして範囲外のものを除外する アサーション や、 Enum を用いてとりうる値を絞ることが考えられます。 ですが、前者は動的な値検査しか行えず、後者については API の引数の型を Enum に変更する必要があり、 Enum が既存の API を オー
Transformersを用いた固有表現抽出のtips
2020/12/16
ブックマーク
TL;DR TransformersのNERではFast Tokenizerを使うことで、サブ トーク ン ↔ ラベルのアラインメントが実装できる。 長いテキスト入力については、無駄なpaddingを最小限にとどめて高速処理するために、入力を固定長分割するのが良い。 検出漏れが問題になるようであれば、 ストライド 付きのwindow処理を追加するのが良い。 サンプル実装: github.com 背景 この記事を目に留めていた
JuliaとPythonを併用したデータ処理のススメ
2020/12/07
ブックマーク
Python でデータ処理をしている際、numpyにはまらないごちゃごちゃした前処理があり、ちょっと遅いんだよなぁ。。。となること、ないでしょうか。 ルーチンになっている解析であれば高速化を頑張る意味がありそうですが、新しい解析を試行錯誤している最中など、わざわざ高速化のためのコードを ガリ ガリ 書いていくのは辛いぐらいのフェーズ、ないでしょうか。 こ
Elasticsearchを使ってテキストの出現単語を分析したい
2020/11/30
ブックマーク
MNTSQで検索エンジニアをしている溝口です。 MNTSQのテックブログの第二回目の投稿という、非常に栄誉ある役割を仰せつかって少し戸惑っています。 MNTSQでは 自然言語処理 を利用して容易に大量の契約書の検索をすることができるプロダクトを作っているのですが、データ(=契約書)の量が増えるにつれて同じ条件でも検索にヒットする結果の数は多くなっていきます。 そ
FairseqとTPUで新しい言語モデルをpretrainする
2020/11/13
ブックマーク
はじめに みなさんはじめまして、リーガルテック ベンチャー MNTSQの取締役の堅山です。この度弊社でテックブログを開設することになり、その第一号として記事を書いています。弊社の取り組む「法務」の世界はエンジニア・リサーチャーの方々から見ると縁遠いことも多いかなと思いますが、そういった方に向けてリーガルテック企業が実際何をやっているのか発信し