ノート内容をベースにタグを付与するプログラムを作ってみよう
ここまでで、Evernote APIの使い方のイメージがつかめてきたと思います。今度は実際にどんなことに利用できるかを試してみます。
Evernoteを使い込むようになると、ノートの整理がなかなか追い付かなくなってくることが多いと思います(少なくとも筆者のEvernoteはかなり散らかっています……)。Evernoteは検索機能が充実しているため、何とか探し出すことはできますが、やはりタグが付けてあると探したい情報へアクセスしやすいものです。そこで、Evernote APIを使ってノート内容からタグを付与するプログラムを作ってみましょう。ここでは技術用語に限ってタグを付与するプログラムを作ります。
プログラム実行上の注意点
全体のソースコードはサンプルファイルをご確認ください。本プログラムを実行することでノートへタグが付与されます。元に戻す機能は含まれていないので、実行は自己責任でお願いします。必ずサンドボックス環境で動作を確認してから本番環境で実行するようにしてください。
処理の流れ
- ノートブック一覧を取得する
-
ノートブック内のノート一覧を取得する
- ノート内容を取得する
- ノート内容から固有名詞を抽出する
- 抽出した固有名詞の内、Qiitaのタグに存在するものをタグとして抽出する
- 抽出したタグをノートに付与する
技術的なポイントの整理
まず、形態素解析を使ってノート内容から固有名詞を抽出します。ここでは形態素解析そのものについての詳細は割愛しますが、形態素解析とは文章を意味のある最小単位の文字列に分解することです。ここでは、日本語形態素解析ライブラリJanomeを使用します。Janomeは辞書内包型の形態素解析器なため、インストールすればすぐに利用可能な手軽さが特徴です。内包している辞書はMeCabのシステム辞書mecab-ipadic-2.7.0-20070801です。(情報元:Janome公式ドキュメント)
また、ノート内容は前述の通りENML形式のため、形態素解析前にタグを取り除く必要があります。タグの除去には、XML・HTMLを処理するライブラリであるlxmlを使います。
固有名詞から技術用語を抽出するには、Qiitaのタグに存在するかどうかで判断します。Qiitaはプログラマのための技術情報共有サービスで、投稿した技術情報にはタグを付けることが可能です。Qiitaのタグを活用して固有名詞から技術用語を抽出します。Qiitaのタグ情報取得にはQiitaの提供するREST APIを使用します。
生成したタグは実際にノートへ付与する前に内容を確認しておきたいところです。そのため、生成したタグを一度ファイルへ出力することにします。
必要なライブラリのインストール
| ライブラリ | バージョン |
|---|---|
| Evernote SDK | 1.25.2 |
| lxml | 3.7.3 |
| Janome | 0.2.8 |
XML・HTML処理用ライブラリlxmlのインストール
Windows環境だとpipはインストールエラーとなるため、easy_installでバイナリパッケージをインストールします。
> easy_install lxml==3.7.3
日本語形態素解析ライブラリJanomeのインストール
> pip install janome==0.2.8
