はてなキーワードで読み方を調べる
きっかけは arton さんのところにあった読み方ネタ.
LINQ本とか書く人がいたら、ぜひとも、リンクと読むとカタカナ表記をしておいて欲しいな。きっとリンキューとか口にする人がいて、最初何を話しているかわからないとかありそうだから。
P.I.Lはピルではなく、ピーアイエルと、少なくともジョンライドンは発音していたらしい。
そういえばはてなキーワードにふりがなデータがあったよなぁと思い出し,指定されたはてなキーワードの内容を読み取るコマンドを作ってみました.
久しぶりに PowerShell.
参考は,はてなキーワード API の説明と id:coma2n さんの記事.
LINQ とは?
PS Z:\> xman LINQ about : http://d.hatena.ne.jp/keyword/LINQ title : LINQ link : http://d.hatena.ne.jp/keyword/LINQ description : ...<strong>LINQ</strong> Projectとは、.Net Framework上の「言語に統合されたクエリ」(Language-INtegrated Q uery)の拡張セットを指すコードネーム... score : 75 contentscore : 0 furigana : りんく
りんく.
Gauche とは?
PS Z:\> xman Gauche about : http://d.hatena.ne.jp/keyword/Gauche title : Gauche link : http://d.hatena.ne.jp/keyword/Gauche description : 川合史朗さんによって開発されているR5RS準拠のオープンソースのScheme処理系。 Perl、Ruby、Pythonなどのスクリプト言語のように、日常的に気軽に使える言語処理系となることを目標としている 。(この目標は達成して... score : 80 contentscore : 0 furigana : ごーしゅ about : http://d.hatena.ne.jp/keyword/rive%20gauche title : rive gauche link : http://d.hatena.ne.jp/keyword/rive%20gauche description : ...ポルテ (既製服) ライン. 1 号店がパリのセーヌ川左岸 (rive <strong>gauche</strong>) に開設されたことから命名. 2002 年,創業デザイナである... score : 100 contentscore : 0 furigana : りう゛ごーしゅ
ごーしゅ.
Bjarne Stroustrup とは?
PS Z:\> xman "Bjarne Stroustrup" about : http://d.hatena.ne.jp/keyword/Bjarne%20Stroustrup title : Bjarne Stroustrup link : http://d.hatena.ne.jp/keyword/Bjarne%20Stroustrup description : プログラミング言語 C++ の創始者 **代表書籍 ISBN:475611895X:detail score : 100 contentscore : 0 furigana : びゃーねすとぅるすとぅろぷ
びゃーねすとぅるすとぅろぷ.
C# とは?
PS Z:\> xman C# about : http://d.hatena.ne.jp/keyword/C%23 title : C# link : http://d.hatena.ne.jp/keyword/C%23 description : ...クトをつとめ、C++、Delphi、Javaなどの影響を受けて作られた。 <strong>C#</strong>のコードはコンパイラによりMSIL(MicroSoft Intermediate Lang......行される。 ヨーロッパの標準化団体であるECMAにより、ECMA-334 <strong>C#</strong> Language Specificationとして標準化 されている。 主なプラ......「C♯」と表記すべきかもしれないが、実際には「<strong>C#</strong>」と表記される。 余談2。<strong>C#</strong>の「#」は「+」を4つ並べたイメージ、すなわち「C+... score : 68 contentscore : 71 furigana : しーしゃーぷ about : http://d.hatena.ne.jp/keyword/pocket%20c%23 title : pocket c# link : http://d.hatena.ne.jp/keyword/pocket%20c%23 description : ...WindowsCEに移植された<strong>C#</strong>開発環境。 http://pocketgcc.sourceforge.net/pcsharp/index.html... score : 100 contentscore : 0 furigana : ぽけっとしーしゃーぷ
しーしゃーぷ.
P.I.L. とは?
PS Z:\> xman P.I.L. about : http://d.hatena.ne.jp/keyword/P%2eI%2eL%2e title : P.I.L. link : http://d.hatena.ne.jp/keyword/P%2eI%2eL%2e description : Public Image Ltd. Public Image Limited の略称。 score : 100 contentscore : 0 furigana : ぴーあいえる
ぴーあいえる.
ソースコード
使用したソースコードを以下に示します.はてなキーワード API は関係しそうなキーワードをスコア順に複数返してくることがあって,それが複数ページにわたったときのためのページング対策が必要かもですが,そこまではやってません.
Get-Keyword.ps1
param([string]$word) if($args[0] -eq "-?" -or $word.Length -eq 0) { $commandName = [IO.Path]::GetFileNameWithoutExtension($MyInvocation.MyCommand.Name) Write-Host @" Name: $commandName Description: Get hatena keyword. Usage: $commandName [[-word] <string>] -word <string> The word to retrieve. "@ -foregroundColor Yellow exit 1 } [void][Reflection.Assembly]::LoadWithPartialName("System.Web") $enckeyword = [Web.HttpUtility]::UrlEncode($word) $url = "http://search.hatena.ne.jp/keyword?word=$enckeyword&mode=rss&ie=utf8&page=1" $webReq = [Net.HttpWebRequest]::Create($url) $httpRes = $webReq.GetResponse() if($httpRes.StatusCode -ne "OK") { Write-Error "The problem occurred while acquiring the response." exit 1 } $resStream = $httpRes.GetResponseStream() $resXml = [xml]((New-Object IO.StreamReader($resStream)).ReadToEnd()) $resStream.Close() $resXml.GetElementsByTagName("item")
あとはお好みで Set-Alias xman Get-Keyword とでもして下さい.xman がイヤなら hman でも ultraman でもご自由に.
本当はしゃべらせたかった
本当は SpeechSynthesizer クラス で読み上げさせたかったのですが,Vista がデフォルトではひらがな読めない子なので断念.
追記
- 2008年4月5日
- 以下でキーワードとふりがな対応表が公開されている.定期的に更新されているらしい.
- id:hatenadiary:20060922:1158908401
- 以下でキーワードとふりがな対応表が公開されている.定期的に更新されているらしい.