C#で日本語キーワード抽出。しかも1ライナー

日本語のキーワード抽出をするためにはテキストマイニングのライブラリが必要になったりします。
テキストマイニングとかだとPythonとかを使うことが多いかもしれませんが、C#でもそれなりにライブラリがそろっています。
たとえば形態素解析エンジンMeCab.NETがあります。

ただ、簡易的なキーワード抽出であれば正規表現でできます。しかもLinqをつかえば1ライナーで記述できてしまう。Linqスゲー。

var keywords = Regex.Split(text, "[^ァ-ヶa-zA-Z一-龠-ー ]+")
                .Select(x => x.Trim())
                .Where(x => x.Length > 3)
                .GroupBy(x => x, x => x, (x, y) 
          => new Tuple<string, int>(x, y.Count()), StringComparer.CurrentCultureIgnoreCase)
                .OrderByDescending(x => x.Item2)
                .Take(10);

参考:正規表現を使った文書のキーワード抽出