インフラエンジニアのPC環境

インフラエンジニアは常に効率環境を目指している

ユーザ用ツール

サイト用ツール


サイドバー

目次

ホーム

OS











.

software:dictionary:eigiro2sql


英辞郎などのデータをSQLiteに入れる方法

テキスト形式の英辞郎の準備

英辞郎の辞書は、Boothで購入するのがオススメです。
https://booth.pm/ja/items/777563

Amazonで英辞郎を確認する
新しい英辞郎 第11版は、専用のソフトでないと使えないみたいですので、注意してください。


ファイルの保存場所

検索を早くするために、データベースにします。
データベースは、お手軽にSQLiteにします。


SQLite設計

ファイルサイズが大きくなってしまうので、各辞書をファイルで、分割するようにしました。
1辞書1ファイルです。

ファイル名  :  eijiro.sqlite

テーブル名   : dic

カラム:
       entry  text
       desc  text
  • プライマリーキーのidで、検索をひっかけたりはしないので、プライマリーキーは不要。
  • 検索文字列とキーワードが、完全に一致することは、あまりないはずなので、インデックスは作りません。


テキスト形式英辞郎からinsert文を作成します

元々の形式

■tree  {名-1} : 木
■tree  {名-2} : 系図、階層
■tree  {他動-1} : 〔小動物を〕木に追い上げる


Insert文に変換

jiro2insert.sh

#!/bin/sh

nkf -w -Lu --overwrite  $1

sed -i -e "s/'/''/g"  $1

sed -i -e "s/■/insert into dic values('/"  $1
sed -i  -e "s/ : /', '/"  $1
sed -i -e "s/$/');/"  $1
cp -p EIJIRO-1448.TXT  EIJIRO-1448.TXT.org
./jiro2insert.sh EIJIRO-1448.TXT


SQLをトランザクション対応

SQLiteへのinsertが遅かったので、トランザクションを利用します。
こうすることで、すごく早くSQLiteに入れことができるようになります。

echo "BEGIN; -- or BEGIN TRANSACTION;"  > 1.txt
echo "END; -- can be COMMIT TRANSACTION; also" > 2.txt
cat 1.txt EIJIRO-1448.txt 2.txt > eijiro.txt


SQLiteの利用

# sqlite3 eijiro.sqlite   <- ファイル作成

sqlite> CREATE TABLE "dic"(entry text, desc text);       <- テーブル作成

sqlite> .schema  <- スキーマ確認

sqlite> .quit


# sqlite3 eijiro.sqlite < eijiro.txt      <- insert文実行





英辞郎の辞書は、Boothで購入するのがオススメです。 https://booth.pm/ja/items/777563
Amazonで英辞郎を確認する
新しい英辞郎 第11版は、専用のソフトでないと使えないみたいですので、注意してください。



software/dictionary/eigiro2sql.txt · 最終更新: 2021/02/02 13:37 by kurihara

ページ用ツール