らくがきちょう

なんとなく ~所属組織/団体とは無関係であり、個人の見解です~

指定された URL の英単語数を数える

「海外メーカー製品は、ドキュメントを英語で読むのが大変」という会話を耳にしたので、実際に「海外メーカー = シスコのドキュメントの英単語数」を計測してみました。 「英語の勉強をしてみよう」と思い立つのですが、単語を覚えるにしても「とりあえず人気のありそうな単語帳を買って…」となっても、興味が無く・使わない単語は忘れてしまいます。 逆に言うと「テクニカルドキュメントによく出てくる単語」を重点的に勉強すれば効率が良いのでは… と思い立った、ということもあります。 当初は「指定 URL の単語数を数える」だけのサンプルスクリプトを作ったのですが、結局 word-counter として PyPi に登録しました。 とは言え、PyPi として登録するほど大したことはしていません……

インストール

事前に依存するライブラリをインストールしておきます。

dnf -y install libicu-devel

word-counter をインストールします。

pip install word-counter

URL の単語数を数え、結果を一覧表示する

スクリプトを実行すると結果は JSON で返され、値の意味は以下の通りです。

項目 意味
count 単語の合計数 (重複しているものは含まない)
count_duplicates 単語の合計数 (重複しているものを含む)
words 単語の一覧と出現回数

特定の URL の単語を数えたい場合、以下のように実行します。 --klass で数えたい単語が表示されている HTML のクラス名を指定します (--klass を省略した場合のデフォルト値は entry-content)。

$ word-counter --klass 'site-content' https://blogs.cisco.com/developer
{
  "count": 226,
  "count_duplicates": 377,
  "words": {
    ",": 18,
    "2020": 11,
    ".": 11,
    .
    .
    .
    "DevNetAPIsnetwork": 1,
    "monitoringStealthwatch": 1,
    "1234": 1
  }
}

複数の URL を指定することも可能です。

$ word-counter \
>     https://blogs.cisco.com/developer/node-red-webinar \
>     https://blogs.cisco.com/developer/meraki-python-sdk-webinar \
>     https://blogs.cisco.com/developer/understanding-meraki-apis
{
  "count": 404,
  "count_duplicates": 1018,
  "words": {
    ",": 51,
    "the": 36,
    "and": 30,
    .
    .
    .
    "Related": 1,
    "Resources": 1,
    "certifications": 1
  }
}