文章を書いていて、どれくらいの文字数を書いたかであったり、段落の数が気になることがあります。それによってもっと書くべきか、推敲に入るべきか考えるのです。文章は長すぎるのも、短すぎるのも問題です。 そんな文章解析に使えるのがtextstatです。テキストファイル、Markdown、HTMLファイルの解析に利用できます。

textstatの使い方

Markdownファイルを解析します。

$ textstat oss.md 
┌──────────────────────┬─────────┐
│ filePath             │ oss.md  │
├──────────────────────┼─────────┤
│ fileSize             │ 1.33 kB │
├──────────────────────┼─────────┤
│ number of characters │ 1362    │
├──────────────────────┼─────────┤
│ number of Lines      │ 49      │
├──────────────────────┼─────────┤
│ number of Images     │ 0       │
├──────────────────────┼─────────┤
│ number of Links      │ 16      │
├──────────────────────┼─────────┤
│ number of List Items │ 0       │
├──────────────────────┼─────────┤
│ number of Paragraphs │ 10      │
├──────────────────────┼─────────┤
│ number of sentences  │ 27      │
├──────────────────────┼─────────┤
│ share of code        │ 15%     │
└──────────────────────┴─────────┘

こんな感じで文字数、行数、画像数、リンク数、リスト、段落、センテンス、コードの割合を分析できます。

さらにプラグインにも対応しており、例えば日本語の解析もできます。

$ textstat --plugin ja  oss.md 
┌──────────────────────┬────────────────────────────────────────────────────────────┐
│ filePath             │ oss.md                                                     │
├──────────────────────┼────────────────────────────────────────────────────────────┤
│ fileSize             │ 2.87 kB                                                    │
├──────────────────────┼────────────────────────────────────────────────────────────┤
│ number of characters │ 2126                                                       │
├──────────────────────┼────────────────────────────────────────────────────────────┤
│ number of Lines      │ 75                                                         │
├──────────────────────┼────────────────────────────────────────────────────────────┤
│ number of Images     │ 0                                                          │
├──────────────────────┼────────────────────────────────────────────────────────────┤
│ number of Links      │ 16                                                         │
├──────────────────────┼────────────────────────────────────────────────────────────┤
│ number of List Items │ 0                                                          │
├──────────────────────┼────────────────────────────────────────────────────────────┤
│ number of Paragraphs │ 10                                                         │
├──────────────────────┼────────────────────────────────────────────────────────────┤
│ number of sentences  │ 27                                                         │
├──────────────────────┼────────────────────────────────────────────────────────────┤
│ share of code        │ 45%                                                        │
├──────────────────────┼────────────────────────────────────────────────────────────┤
│ 文字種               │                                                            │
├──────────────────────┼────────────────────────────────────────────────────────────┤
│ ひらがな             │ 0%                                                         │
├──────────────────────┼────────────────────────────────────────────────────────────┤
│ カタカナ             │ 0%                                                         │
├──────────────────────┼────────────────────────────────────────────────────────────┤
│ 漢字                 │ 0%                                                         │
├──────────────────────┼────────────────────────────────────────────────────────────┤
│ アルファベット       │ 86%                                                        │
├──────────────────────┼────────────────────────────────────────────────────────────┤
│ 日本文の読みやすさ   │ 97.4                                                       │
├──────────────────────┼────────────────────────────────────────────────────────────┤
│                      │ 読みやすさの偏差値(平均50、標準偏差10、高いほど読みやすい) │
└──────────────────────┴────────────────────────────────────────────────────────────┘

こんな感じで文字の読みやすさも解析できます。ブログなどの文章を一旦解析してから投稿すれば読みやすい文章になるかも知れませんね。

textstatはnode/JavaScript製のオープンソース・ソフトウェア(MIT License)です。

azu/textstat