ねとらぼ:確かに“読めてしまう”コピペに2ch住人が「人間すげー」と驚く より。
Yahoo APIとSilverlight(C#)。任意の文章から振り仮名をとってきて、単語ごとにランダムに並び替えるサンプル。
Showing posts with label Yahoo API. Show all posts
Showing posts with label Yahoo API. Show all posts
May 9, 2009
October 16, 2008
SilverlightでYahoo日本語形態素解析API
Silverlight 2リリースされた。とりあえず適当に。
ソース ダウンロード SilverlightYahooParse.zip (7.4K)
使い方
メモ
・Page.xaml.cssの24行目hogehogeはアプリケーションIDを取得して適当に変える。(hogehogeではできません)
・リクエストURLをつくるとき、sentenceはURLEncodeしないといけない。Silverlightでは、System.Windows.Browser.HttpUtility.UrlEncode(sentence)とする。WPFではHttpUtilityはSystem.Webにある。
・結果の取得はWebClientを利用する。
・DataGridのつかいかたはこっち。
ソース ダウンロード SilverlightYahooParse.zip (7.4K)
使い方
メモ
・Page.xaml.cssの24行目hogehogeはアプリケーションIDを取得して適当に変える。(hogehogeではできません)
var appid = "hogehoge";・リクエストパラメータはParser.csの60行目
var url = CreateUrl(_appid, sentence, "ma", "surface,reading,pos,baseform", "", "", "", "", "", "");というところで何とかする。
・リクエストURLをつくるとき、sentenceはURLEncodeしないといけない。Silverlightでは、System.Windows.Browser.HttpUtility.UrlEncode(sentence)とする。WPFではHttpUtilityはSystem.Webにある。
・結果の取得はWebClientを利用する。
WebClient client = new WebClient();
client.Encoding = Encoding.UTF8;
client.DownloadStringCompleted += (s, e) =>
{
var result = e.Result;
XDocument xdoc = XDocument.Parse(result);
XNamespace ns = xdoc.Root.GetDefaultNamespace();
var word_list =
from element in xdoc.Descendants(ns + "word_list").Descendants(ns + "word")
select new word
{
surface = (string)element.Element(ns + "surface"),
reading = (string)element.Element(ns + "reading"),
pos = (string)element.Element(ns + "pos"),
baseform = (string)element.Element(ns + "baseform"),
};
_Result = new List(word_list);
if (ParseCompleted != null)
ParseCompleted(this, EventArgs.Empty);
};
Uri uri = new Uri(url);
client.DownloadStringAsync(new Uri(url)); ・DataGridのつかいかたはこっち。
Subscribe to:
Comments (Atom)