2021-05-04 ScrapboxのプロジェクトAでの最近1日の更新からキーワードを拾い、プロジェクトBからそのキーワードを含むページを提示する実験

  • 今回のケースではAがこの公開プロジェクト、Bが400ページ程度の非公開プロジェクト

良い効果が得られるようなら1日1回定期実行する

文脈

やったこと

  • ✅publicの最近更新されたページを取得
  • ✅その内容からキーワードを抽出
    • とりあえず明示的にブラケティングされてるやつでいい
    • APIで取れる
  • ✅別のソースから、そのキーワードを含むものを見つけて提示する
    • JSONにエクスポートしてから自前で検索する方法と検索APIを叩く方法がある
    • 今回は検索API
  • 提示の仕方
    • privateにページを作る
      • privateプロジェクトの検索結果をpublicにはできないため
    • SlackでDMを送るという選択肢もある
    • ✅今回はprintして手でScrapboxに貼り付けた

結果

  • 良さげ
  • 大した情報の入ってない非公開メモ置き場だと思ってたが意外と面白いページがあった
    • 実験でビデオ会議の録音を文字起こししたやつとかがヒットした
  • 24時間の活動から抽出されたキーワードは105件
  • 検索してヒットした件数は11件
    • 検索APIによってヒットした行が得られる
  • イマイチなキーワードがある
    • 「研究」「組織」「Scrapbox」「未踏ジュニア」
    • ヒット件数が多すぎる
    • ヒット件数が一定以上のものは「たくさんヒットした」という情報だけ表示する方が良い
    • 元プロジェクトでは双方のページでブラケティングしてある場合のみ繋がることで大量にならない
    • 4件中3件はブラケティングしてあった
      • なので、検索結果が多い場合はその結果を表示するのではなく件数のみにし、代わりにその検索キーワードをブラケティングすれば良い
      • 検索キーワードのブラケティングは常にやる
      • むしろ「既にリンクがあるか?」を見て、あれば検索しないのがよいか?

感想

  • 割と良い
  • 他にも色々面白い内容が死蔵されてそうなプロジェクトがある
    • 対象プロジェクトは複数にしたい

追加実験

  • 自分のpublic/private連携を主に考えいたので片方がprivateで結果を公開できなかった
  • 両方publicならできると気づいた
    • しかもエクスポートではなく検索を使ってる今のバージョンなら他人のプロジェクトであっても特に許諾なく対象にできる

面白さ:

出力するプロジェクトと検索対象プロジェクトが異なるケースを想定漏れしてたので更新した

  • rashitamemoからの引用に含まれる[1]が検索キーワードになってしまっている
  • にするべきか。今はとりあえず手で直した
  • 機械の出力を手で直して長期間メンテすべきではない
    • 今は実験なのでやってるだけ
      • このプロジェクトのリンクを混乱させるのでいずれgistとかに追い出す
    • 何もしなければ1日後に上書きされて消えると良い
    • 有用なリンクがあれば、別のページにメモすべき

面白さ:

感想

  • 自分が興味あってメモした技術的キーワードに関する他の人の発表資料が出てくるのはいいな
  • 我々同じ日本語を使ってるつもりでいるが、自分の考えをアウトプットする時の単語のチョイスには個々人の違いがある
    • 僕のプロジェクトの方では「人のグループから人が取り除かれること」を「排除」と表現している(これ自体も僕の言葉ではなく、人のを見てなるほどそういう表現があるかとメモしたもの)
    • 一方でshokaiは「ソフトウェアから有害な機能や特徴を取り除くこと」を指して使っている
    • 比較することで違いに気づく
  • 表示されたキーワードを見て、色々ページをいじると、当然明日も「更新されたページ」になり、同じものが表示される
    • これはきっと退屈
    • 一度出したものは覚えといて1週間〜1ヶ月出さない、とか。

source https://github.com/nishio/scbot/blob/0.2/scbio.py#L113