指定すると、単一の文字列ではなく、文字列の配列を出力する。"今日はいい天気ですね。"今日はいい天気ですね。/出力:今日は/いい/天気ですね/。"今日はいい天気ですね。"今日はいい天気ですね。Yomi出力:きょうは/いい/てんきですね/。"今日はいい天気ですね。-ToArray解説ちょっと長めの関数ですが、ポイントはJapanesePhoneticAnalyzerクラスのGetWordsメソッドが返すJapanesePhonemeオブジェクトのIsPhraseStartプロパティです。IsPhraseStartプロパティは、当該単語(Phoneme)が文節(Phrase)の開始部分にあたる単語であればTrueを返します。JapanesePhonemeコレクションを文頭から文末まで列挙していったとき、IsPhraseStartプロパティがFalseからTrueに変わる部分が文節の境界になるわけです。Split-JpText関数では、単語を列挙していき、文頭もしくは文節の境界に遭遇すると、文節に含まれる文字列(Textプロパティ)とその読み(Yomiプロパティ)と単語の配列(Wordsプロパティ)を格納するオブジェクトを新たに作成し、$phrase変数に代入します。一方で$phrase変数に元々入っていたオブジェクトは、$phrases配列に追加します。$phraseオブジェクトのWordsプロパティには、列挙中の単語を都度、追加していきます。$phraseオブジェクトのTextプロパティとYomiプロパティはスクリプトプロパティとして定義しておき、必要時に値を取得するようにしてあります。まとめ3回に渡って、JapanesePhoneticAnalyzerクラスの使用法を具体的なラッパー関数を作成して紹介しました。個人的には、PowerShellからなら中編で挙げた、読みの取得が一番使いでがあるかな?と思いました。今回取り上げた分かち書きは、意外と応用例が思いつきませんでした。前編のGet-JpWord関数を使って、何らかの文書群の単語リストをあらかじめインデックスとして出力しておき、単語検索コマンドを実装するのも面白そうですね。残念ながら品詞情報が取れないので、JapanesePhoneticAnalyzerをmecabとかの形態素解析エンジンの代替にするのはちょっと厳しいかもしれないです。標準機能のみでちょっとしたものを作れるのは大きいかと思います。何か日本語の文章を解析する必要があるときには使ってみてはいかがでしょうか。いうエントリを上げていました。ランタイム(WinRT)のWindows.Globalization名前空間に含まれるJapanesePhoneticAnalyzerクラスを用いた形態素解析ができます。形態素解析とは要するに文字列を単語(正確には形態素という、文字列の最小構成要素)ごとに分割し、それぞれの単語の品詞を判別する処理になります。(JapanesePhoneticAnalyzerクラスだと分割までで、品詞の情報は取得できない?ようですが...)またJapanesePhoneticAnalyzerでは分割した単語の読み仮名を取得することができます。WinRTならPowerShellからも使えるんじゃないかなーと思ってやったらできたので、紹介します。WinRTのPowerShellからの利用法WinRTについての説明は他サイト様に譲りますが、要はWindowsストアアプリやUWP(ユニバーサルWindowsプラットフォーム)アプリを動作させる実行環境とAPI群です。デスクトップアプリであるPowerShellは関係ないのかというとそうではなくて、例えばストアアプリのサイドローディングを行うAppxモジュールというものがあります。WinRTは従来のデスクトップアプリからの相互運用もできるようになっています。(すべてのコンポーネントではない)このあたりの話は、荒井さんの記事が参考になるかと思います。Frameworkに含まれるクラスを利用するのと基本は同じです。注意点としては、クラス名を指定する時は、クラスの「アセンブリ修飾名」を指定する必要があります。ContentType=WindowsRuntimeとなります。このうち必須となるのはWindows.Globalization.JapanesePhoneticAnalyzer:クラスの完全修飾名Windows.Globalization:クラスの含まれる名前空間ContentType=WindowsRuntime:WinRTのコンポーネントであることの3つだけのようです。ContentType=WindowsRuntime]とすればクラスを参照することができます。ようにすればOKです。WinRTにはPowerShellからも利用価値の高いクラスが他にも色々あるようです。ぎたぱそ氏が認証系のクラスについて書かれていますので、参考にしてみてください。tech.guitarrapc.com単語を分割する早速、形態素解析をやってみましょう。具体的にはJapanesePhoneticAnalyzerのGetWordsメソッドを呼び出すだけです。すべての基本になるので軽く関数としてラップしておきます。}}GetWordsメソッドはスタティックメソッドなので、::演算子で呼び出します。戻り値はIReadOnlyList<JapanesePhoneme>というコレクションです。Rubyモードが有効になります。GetWordsメソッドはどうも文字数制限があるようです。だいたい100文字を超えると何も出力しない感じです。この制限値はリファレンスに書いてないようなので詳細不明ですが、一応関数では99文字までという制限を入れておきました。"最近急に寒くなってきました。ようにすると結果は以下のように表示されます。