Googleスプレッドシートのimportxml関数で2つの越越辞書を自動取得して比較

 過去に何度かGoogleスプレッドシートのimportxml関数を使った記事を書いた。

今回も同様にWeb上で使える辞書を自動検索してスプレッドシートに取り込もうというのが趣旨。

当初はWiktionaryをAPIで呼び出す計画であった。

しかし、やってみると意外と苦戦した。

WiktionaryはWikipediaAPIと同じ仕様なので記事タイトルなどは簡単に取得できたが、記事の内容は構造が複雑で、単語によって構造が違う為一律のルールで取得する事は出来なかった。

なので、Wiktionaryからデータを取得するのは諦めた。

その後はベトナム語の辞書サイトでviệt-việt (ベトベト、越越)があるサイトを一つずつ取り込めるか試していった。

結果、2つのサイトから取り込むことが出来た。


なんで越日(ベトナム語→日本語)ではなく越越(ベトナム語→ベトナム語)辞書なのかというと、越日の場合、収録語数が少ないからである。

ただ越越辞書を取得するだけでは面白くないのでGoogleスプレッドシートのgoogletranslate関数で同時に日本語訳を表示するようにした。

ここでは、以前作成した自作関数ではなく、Googleスプレッドシート標準の翻訳関数を用いている。

正直、標準の翻訳関数は翻訳精度が低いので精度の改善のためには以前作成した翻訳関数を使うか、みんなの自動翻訳を呼び出す新しい関数を作るべきだと思う。

だが、まぁ越越辞書を頑張って読むのも勉強になるから日本語訳は補足だと思えばそれほど翻訳精度を気にする必要はない。

辞書サイトを直接使ってももちろん調べられるのだけど、2つの辞書サイトから自動取得することで、一回の検索で2種類の説明が見られること、自動で日本語訳も出るので、意味がわからないときの補足になる事が多少のメリットであろうか。

今回ちょっと苦労したのはサイトによっては例文が異なるhtml構造になっていて、その為にxpathを複数記述する必要があったこと。

まぁxpathの複数記述は以前のimportxml関数の記事でも書いたと思うのでここであんまり記してもしょうがないのだけど、2つのimportxml関数はこのように記述した。

#1
=IMPORTXML("http://tratu.coviet.vn/hoc-tieng-anh/tu-dien/lac-viet/V-V/"&A2&".html","//*[@id='partofspeech_0']/div[*]/span")

#2

=IMPORTXML("http://tratu.soha.vn/dict/vn_vn/"&A2,"//*[@id='content-3']/h3/span/text()|//*[@id='content-5']/h5/span|//*[@id='content-5']/dl/dd[1]/i")

#2の方はxpathを3つ記述することで、名詞、動詞の区分表示、説明、例文の3箇所を取得している。

たいしたものではないけど、使いたい人は誰でも自由に使えるようにこちらに置いておく。

việtviệt越越辞書

もちろんコピーして使ってくれても構わない。

コメント

このブログの人気の投稿

Googleスプレッドシートの正規表現置換で改行文字

Googleスプレッドシートのimportxml関数をhtmlに使う

名作と定評のあるスーパーファミコンの『ザ・モノポリーゲーム2』を今更ながら遊んでみた