G3023_キーワード実験①
2025年3月22日
18:22
G3023_pc_keyword_link_experi_report_1
Version:0.9
StartHTML:00000000 EndHTML:00000000 StartFragment:00000000 EndFragment:00000000
G3023_プロジェクト
目的
- 脳内の記憶領域の低下に伴い、OneNote、ワード、エクセルに記録を移行しています
- 今後さらに老化が進行して(すでに兆候は出ています)記録場所さえ忘れたときの為に、テキストデータベースを構築します
- カテゴリを考慮しなくてよい保存方法を模索します
性能実験
- ハッシュ処理を復元する前に、単語ファイルによるハッシュ検索の限界を調査します
- 単一フォルダのファイル数の限界を調査します
- これにフォルダ分割を活用し、10万件をこえるハッシュ検索の可能性を探ります
- 15年ほど前に、意味を理解するデータベースの構築に挑戦しました
- 当時は、関数コードで実現しようとしていましたが、超複雑になり、半年かけて作ったコードはすべて廃棄になりました
- 教訓を生かし、コードは複雑にせず、データで構築する方針です
- データもバイナリは使わず、テキストファイルで構築します
- 意味を理解することは難しいですが、とりあえず物品を理解するデータベースを目指します
単語の収集
- 手元にある、整理されていない、単語データをエクセルを活用して、抽出作業を行います


分解専用フォルダを作成し、単語をファイル分割します
- 6401件は全く問題ありません
- 5000件のテキストを分解する処理は、4-5分程度
- 6401件のファイル一覧を配列に読み込み、件数表示は瞬時です
- 作業途中でJPGファイルが混入してしまい、除去すると 5800件に減りました
- 既存の文書をスペースで分解しながら、単語登録を繰り返します



単語ファイルのデザイン
- スペル 英訳のスペルを登録します
- コマンド コマンドに使われる場合の属性を登録します
- 同義語 同義語グループを登録します 一単語に集約する自動編集は必要です
- 単位 計測値の単位を示します
- 収納場所 収納場所を示します エコバッグ ゼブラ ケース 倉庫
- 在庫数 保有する在庫数を登録します
- 金額 購入額を記録しますが、購入先で複数の数値、時系列で変化する数値です
- 用途 資材などの用途を簡単に解説します
- 材質 材質の説明がある場合解説します
- 実験記事 実験記事がある場合解説します
- 電子部品 保管場所と在庫数量を登録します
- かたずけ 身の回り品の保管場所を登録ます
- 工具 工具の保管場所を登録します
- C#早見表 現在OneNoteに記録して使っている早見表を使いやすいように登録します
- リンク ネット。JPG、DOCX、XLSX、TXT、
この記事は時間を要するので、一時中断します
- 仕事を受注して、モデルケースを吸収する必要があり、メイキング記事はここまでとします
- 先に、エクセル処理をメイキング記事にします
再開します
- ファイル分割タイプ、テキストタイプのデータベースにおいて限界を実験します
- 単語ごとにテキストファイルを分割保存します
- こうすることで、ハッシュ検索を省略できます
- 分割されたテキストファイルは、複合レコードが保存されます
- 一般的なレコードは、カラムの位置と意味が固定され、なおかつカラム個数はそろえています
- 今回の実験では、カラムの位置と意味はバラバラで、かつ、カラム個数もバラバラに保存されます
よい名称が思い浮かびませんが「物品管理」という仮名を付けておきます

ルートフォルダが存在しないためエラーが出ました
- 設計当初、「ルートフォルダ」は既に作成済みのデータを取得するため設置したものです
- このため、新しい名称を生成する機能がありませんでした

カラム定義
- いろいろな要素を単一パターンで登録するためカラム定義は1種類とします
- 階層は作らず、プロジェクトタイトルに一つのカラムのみ準備します
プロジェクト一覧が正しく表示されない
- プロジェクトの「ルートフォルダ」が影響して、プロジェクト一覧が正しく表示されません


プロジェクトに一つのカラム定義は、クリップだけ有効です



未登録パスの場合先に進まない検査がありました


名称に対して属性が4種類
- 書式を固定せず、データを収納する工夫とします
- ゼロレコードに、カラムの意味をタイトルで登録します


メモ帳で、スマホアプリが使ったキーワードをコピペします



どうしても名前付けが問題視されるので変更します
検索 検索処理 単語検索 記事検索 キーワード




キーワードの要素を思いつくままに並べてみます







キーワード専用のフォームを追加します

キーワード専用フォーム
- リストボックスとグリッドの組み合わせを考えています
- 前回6000件を超えるデータをグリッドで表示すると10分かかりました
- リストボックスは瞬時に処理されます
- 下記は、実験で作った模擬キーワードを表示した事例です

フォルダ内ファイル数の限界を調べてみます
- 1万6千 2秒
- 2万6千 3秒
- 3万6千 4秒
- この件数で検索処理してみます
- 約4分


謎だったのが、2回目の検索時間です


キーワード検索フォームの修正
- 件数を増やすために、いろいろなファイルを取り込みしたため、相当古いC++MFC時代のANSIファイルが混ざっているため、漢字が文字ばけしています

この機能は目的が定まらないため、ここまでにしておきます