Yahoo!!日本語形態素解析で文章中に存在する単語を解析します。そして使用されている回数もあわせて表示させ、解析結果をexcelファイルとしてダウンロードできるようにします。

サンプルページはこちらです。

まずExcelファイルをダウンロードする処理をするためにwwwroot/index.htmlにscriptを追加します。

wwwroot/index.html

Yahoo!!日本語形態素解析の結果を取得するために同じドメインにphpをアップロードしておきます。

sample-data/abc.php

razorファイルに以下のコードを書きます。

文章を入力、取得したい品詞にチェックをいれて解析ボタンをおすと処理がおこなわれます。解析処理のあとダウンロードボタンをおすとExcelファイルがダウンロードされます。

Pages/Index.razor

Pages/Index.razorのフィールド変数部分を示します。

Wordsには解析結果がはいります。

全部チェックする、全部チェックをはずすをクリックしたらOnClickAllCheck()メソッドとOnClickAllUnCheck()メソッドが呼び出されるのでチェックボックスの状態を変化させます。

解析をクリックしたときに呼び出されるOnClickAnalysis()メソッドを示します。

POST 要求を非同期操作として送信し、結果がXmlで返されるのでこれをGetResultFromXmlメソッドでWordのリストに変換して取得します。

リクエストパラメータとしてappid(アプリケーションID)、sentence(解析対象のテキスト)、results(解析結果の種類)、filter(解析結果として出力する品詞番号を “|” で区切って指定)が必要ですが、appidとresultsは前述のPOST 要求をするphpファイルに直接書いています。sentenceはSentenceに格納されているものを、filterはGetFilterString()メソッドでチェックボックスから取得します。

解析すべき文章が存在しない場合やどの品詞名にもチェックがされていない場合はエラーメッセージを表示されます。

Postすると解析結果が以下のような形で返されるので、これをGetResultFromXml(string xml)メソッドでWordのリストに変換します。

もし[基本形のみを評価する]がチェックされている場合は、GetBaseOnlywordsメソッドを呼び出してBaseformが同じものはまとめてしまってCountが大きい順にソートします。

ダウンロードボタンがクリックされたらWordsに格納されている文字列をJson形式に変換してJavaScriptのDownloadExcelFile関数に渡します。