skltnの記事を追加
github pages / deploy (push) Successful in 3m4s Details

This commit is contained in:
usbharu 2026-02-12 14:02:39 +09:00
parent 1287fb9096
commit 446680aedf
2 changed files with 53 additions and 0 deletions

View File

@ -0,0 +1,53 @@
---
author: usbharu
draft: false
categories:
- 技術
date: 2026-02-09T18:08:54+09:00
tags:
- Rust
keywords:
- Rust
title: IME用の辞書から子音抜き検索ができるコマンドを作ったよ
relpermalink: posts/2026-02-09/
url: posts/2026-02-09/
decription: IME用の辞書から子音抜き検索ができるコマンドを作ったよ
---
## Q. 子音抜きって何?
A.
```
春日未来(かすがみらい) → ksgmri
```
まぁTwitterとかでえっちな話する時に使われるやつですね
これを覚えるというか元の名前を思い出すのが苦手なので作ってみました。まぁ作ったのはGemini君なんですが
## Skltn
Skeletonから子音を抜いた名前です。
[skltn](https://github.com/usbharu/skltn)
Rust製で、手元の環境だと27万行の辞書ファイルを大体30msぐらいで検索してくれました。正直速いのかはわかりませんが…
ニコニコ大百科の内容をIME用の辞書にしたやつを使うのがおすすめです。
## 最適化
当然ですがIME用の辞書ファイルはただのテキストで、普通に検索するとなるとフルスキャンする必要があります。フルスキャンでもReleaseビルドだと意外と速かった(190ms~)んですが、流石にもっと早くできるだろうと言うことで色々最適化してもらいました。
- メモリマップIO
- 並列化
- 二分探索→インデックスファイル作成
- 早めの検索切り上げ
ほぼAIが考えた最適化の中で、唯一自分が考えた最適化が二分探索です。50音順に辞書が並んでいる前提で、1文字目を高速に検索できます。ちなみに大して速くなりませんでした。かなしい
ちなみにインデックスファイルを作成しますが、使ってもあんまり速くなりません なんでや…
![alt text](<スクリーンショット 2026-02-12 13.59.36.png>)

Binary file not shown.

After

Width:  |  Height:  |  Size: 282 KiB