会議や講演会に参加した時にPCを持ち込んでメモをとることも多くあります。そうした機会に書き溜めたノートは意外と整理が大変です。しかし「★」や「@」など自分で決めた印をつけておけば、後から記録を抽出が簡単になります。今回は、長文テキストデータの中から印を付けた文だけを抽出するプログラムを作ってみましょう。

  • テキストから★印のついた行だけピックアップするツールを作ろう

    テキストから★印のついた行だけピックアップするツールを作ろう

会議中のメモを数倍便利にする工夫

皆さんは、会議や講演会のノートをどのようにとっているでしょうか。紙やタブレットのノートに手書きという方も多いと思いますが、PCに直接テキストを入力して、メモをとっているという方も多いでしょう。ペンで手書きする方が記憶に残るという方もいるので、一概にどの方法が良いということはありませんが、最初からテキストで入力しておくと、後から検索することができたり、カレンダーにコピー&ペーストできたりと何かと便利です。

それでも、会議や講演ノートを整理するのは意外と時間がかかって大変です。もちろん、最近のノートアプリなどを使えば、ノート内を検索して目的のノートを見つけるのは容易です。しかし、後からやるべき事や重要なポイントだけを抽出したい時には、さらに別の仕掛けが必要です。

そこで、オススメなのが、ノートをとる時に後から取り出したい文章に、任意の印(★や▲、※)をつけておくのです。このようにしておけば、後から簡単に任意のデータを取り出せて便利です。

例えば、講演会のノートをとるときに、後から自分で試してみようと思った事柄に「★」印をつけておいたとします。そして、後から、この「★」のついた行だけを取り出せば、自分が試しみたい事の一覧表が作成できます。

同様に、誰かに教えてあげようと思った内容には「@」、重要な仕事には「!!」などなど、素早くメモできる簡単な印を考えておくと 手軽にノートを整理できます。

それでは、ノートの中にある印だけを一気に取り出すプログラムを作ってみましょう。

プログラムで印のついたテキストを取り出そう

それでは、プログラムで「★」印のついた行だけを取り出すプログラムを作ってみましょう。今回は、テキストエリアに入力したテキストを対象にしてみます。

いろいろな方法がありますが、今回は次の手順で作ってみます。

  • (1)テキストエリアからテキスト全体を取り出す。
  • (2)テキストを一行ずつに区切る。
  • (3)テキストの一行ずつに対して「★」があるか検索し、印があれば結果として出力する。

なでしこ3の簡易エディタを開いて、以下のプログラムを入力してみましょう。あるいは、こちらのなでしこ貯蔵庫にプログラムを保存してありますので、開いて実行してみてください。

# --- UI作成 --- (*1)
DOM部品オプション["自動改行"] = オン。
「ノートを以下に入力:」のラベル作成。
入力ボックス=「」のテキストエリア作成。
検索ボタン=「★を検索」のボタン作成。
結果ボックス=「」のテキストエリア作成。

# --- スタイル設定 --- (*2)
入力ボックスに{"width": "99%"}をDOMスタイル一括設定。
結果ボックスに{"width": "99%"}をDOMスタイル一括設定。

# --- ボタンを押した時のイベント --- (*3)
検索ボタンをクリックした時には
  結果は「」。
  S=入力ボックスのテキスト取得。# --- (*4)
  Sを改行で区切って反復 # --- (*5)
    対象で「★」が何文字目。# --- (*6)
    もし、そうならば、結果=結果&対象&改行。
  ここまで。
  結果ボックスに結果をテキスト設定。
ここまで。

プログラムを実行すると、次のような入力フォームが表示されます。上部のテキストボックスに、★のついたノートを入力してから「★を検索」ボタンをクリックします。すると、★のついている行だけを取り出して表示します。

  • ノートから★印の文だけを抽出しよう

    ノートから★印の文だけを抽出しよう

それでは、プログラムを確認してみましょう。プログラムの(*1)ではラベルやテキストエリア、ボタンなどのフォーム部品(UI)を作成します。「ラベル作成」や「ボタン作成」という命令を使って部品を作成します。なお、『DOM部品オプション["自動改行"]=オン。』と書くと、部品を作るごとに自動的に改行を挿入してくれるので便利です。そして、(*2)では作成したテキストエリアを枠一杯になるように設定します。

そして、(*3)の部分で検索ボタンを押した時の処理を記述します。「**をクリックした時には・・・ここまで」のように書いて、ボタンをクリックした時の処理を記述できます。ここでは、(*4)にあるようにテキストエリアのテキストを取得し、(*5)で改行で区切って各行を処理します。(*6)では繰り返し対象の文字列(つまりテキストの各行)に★が含まれるか調べてます。そして、含まれるなら、変数「結果」に対象を加えるという処理になります。

改良しよう - いろいろな印を抽出するボタンをつけよう

なお、上記のプログラムは「★」印だけを抽出するものでした。しかし、「★」を「@」に変更するのは簡単です。プログラムの(*6)の部分の「★」を「@」に変更するだけです。同様の仕組みで、複数のボタンを作っても良いでしょう。

# 検索する記号を「@」に変更する方法
# 対象で「★」が何文字目。# --- (*6)
対象で「@」が何文字目。

また、ノートをとる時に、SNSのハッシュタグのように「#キーワード」のように記録しておくのもオススメです。「#キーワード」を後から抽出するのも、上記と全く同じプログラムで実現できます。

まとめ - ノートを有効活用しよう

会議の議事録や講演会や授業のノートは、書いて終わりになってしまっては、もったいないものです。ノートをとる時に、ちょっと工夫しておくと、後から記録を有効活用できるようになります。今回紹介したように、プログラミングを活用すると、アイデアの幅が広がりますので考えてみてください。

自由型プログラマー。くじらはんどにて、プログラミングの楽しさを伝える活動をしている。代表作に、日本語プログラミング言語「なでしこ」 、テキスト音楽「サクラ」など。2001年オンラインソフト大賞入賞、2004年度未踏ユース スーパークリエータ認定、2010年 OSS貢献者章受賞。技術書も多く執筆している。直近では、「シゴトがはかどる Python自動処理の教科書(マイナビ出版)」「すぐに使える!業務で実践できる! PythonによるAI・機械学習・深層学習アプリのつくり方 TensorFlow2対応(ソシム)」「マンガでざっくり学ぶPython(マイナビ出版)」など。