Powershellで漢字の読み仮名っぽいのを取得する:WinRTのJapanesePhoneticAnalyzer

WindowsRuntimeで日本語の形態素解析が使える。すごい。

Powershellならこんな感じでGetwordに文章を与えるだけ。

[Windows.Globalization.JapanesePhoneticAnalyzer, Windows.Globalization, ContentType=WindowsRuntime]::GetWords($bunsho, $false)




JapanesePhoneticAnalyzerを使ってPowerShellで形態素解析(前編)
PowerShell Scripting Weblog 様より
http://winscript.jp/powershell/299

JapanesePhoneticAnalyzer Class Windows デベロッパー センター
https://msdn.microsoft.com/ja-jp/library/windows/apps/windows.globalization.japanesephoneticanalyzer


やってみるとそれなりの結果。

$bunsho = "本邦にも、何の譯と知らぬが、命日に死者に供ふる飯を鹽氣なき土鍋もて炊ぐ"
$res = [Windows.Globalization.JapanesePhoneticAnalyzer, Windows.Globalization, ContentType=WindowsRuntime]::GetWords($bunsho, $false)
$res




DisplayText                                                                       IsPhraseStart YomiText                                    
-----------                                                                       ------------- --------                                    
本邦                                                                                         True ほんぽう                                        
にも                                                                                        False にも                                          
、                                                                                          True 、                                            
何の                                                                                         True なんの                                          
譯                                                                                          True と                                            
と                                                                                          True と                                            
知                                                                                          True し                                            
ら                                                                                         False ら                                            
ぬ                                                                                         False ぬ                                            
が                                                                                         False が                                            
、                                                                                          True 、                                            
命日                                                                                         True めいにち                                        
に                                                                                         False に                                            
死者                                                                                         True ししゃ                                          
に                                                                                         False に                                            
供                                                                                          True とも                                          
ふ                                                                                          True ふ                                            
る                                                                                         False る                                            
飯                                                                                          True めし                                          
を                                                                                         False を                                            
鹽                                                                                          True しお                                          
氣                                                                                          True き                                            
なき                                                                                         True なき                                          
土鍋                                                                                         True どなべ                                          
も                                                                                         False も                                            
て                                                                                          True て                                            
炊                                                                                          True すい                                          
ぐ                                                                                          True ぐ



名字の読みとかもある程度はできる。

$myoji = @("渡辺","渡邉","渡部","渡邊","WATANABE")
foreach($txt in $myoji){
  $re += [Windows.Globalization.JapanesePhoneticAnalyzer, Windows.Globalization, ContentType=WindowsRuntime]::GetWords($txt, $false);
}
$re

DisplayText                                                                       IsPhraseStart YomiText                                       
-----------                                                                       ------------- --------                                       
渡辺                                                                                         True わたなべ                                           
渡邉                                                                                         True わたなべ                                           
渡部                                                                                         True わたべ                                            
渡邊                                                                                         True わたなべ                                           
WATANABE                                                                                   True WATANABE 


メソッドとプロパティはこれ。
何かに使えそう。
   TypeName: Windows.Globalization.JapanesePhoneme

Name                      MemberType Definition                                                  
----                      ---------- ----------                                                  
CreateObjRef              Method     System.Runtime.Remoting.ObjRef CreateObjRef(type requestedType)
Equals                    Method     bool Equals(System.Object obj)                              
GetHashCode               Method     int GetHashCode()                                            
GetLifetimeService        Method     System.Object GetLifetimeService()                          
GetType                   Method     type GetType()                                              
InitializeLifetimeService Method     System.Object InitializeLifetimeService()                    
ToString                  Method     string ToString()                                            
DisplayText               Property   string DisplayText {get;}                                    
IsPhraseStart             Property   bool IsPhraseStart {get;}                                    
YomiText                  Property   string YomiText {get;}  




あとpowershell で拡張子を一括変更
*.before から *.after に変更するとき
こんなん調べてたらphoneticが出てきた。

Get-ChildItem -Name | Rename-Item -NewName {$_ -replace "\.before$", ".after" }

コメント