Wolfram言語

テキストと言語の処理

自然言語を使ってWolfram Knowledgebaseでクエリを行う

アーティストまたはアルバムで歌を検索する関数を作り,作曲家の情報で表を生成する.

In[1]:=
Click for copyable input
songLookup[act_, album_] := Module[{actEntity, albumEntity, songs, composers}, actEntity = Interpreter["MusicAct"][act]; albumEntity = Interpreter["MusicAlbum"][album]; songs = EntityList[ EntityClass[ "MusicWork", {"AssociatedMusicActs" -> actEntity, "AssociatedMusicAlbums" -> albumEntity}]]; composers = EntityValue[songs, "Composers"]; Column[{albumEntity["Image"], Grid[Transpose[{songs, composers}], Background -> {Automatic, {{LightOrange, White}}}]}]]

組込みのインタープリタを利用する単純な文法を配備して,"MusicAct""MusicAlbum"の実体タイプを認識するようにする.

In[2]:=
Click for copyable input
songGrammar = CloudDeploy[ GrammarRules[ {AnyOrder[ OptionalElement[ FixedOrder[ "songs" | "titles" | "tracks" | "tunes" | "recordings", OptionalElement["by" | "from"]]], act : GrammarToken["MusicAct"], FixedOrder[OptionalElement["from" | "on"], album : GrammarToken["MusicAlbum"]] ] :> songLookup[act, album]}]]
Out[3]=
In[4]:=
Click for copyable input
GrammarApply[songGrammar, "tracks by Michael Jackson on Thriller"]
Out[4]=
In[5]:=
Click for copyable input
GrammarApply[songGrammar, "Pink Floyd's Dark Side of the Moon"]
Out[5]=

関連する例

de en es fr ko pt-br ru zh