Help us understand the problem. What is going on with this article?

COTOHA APIで Pen Pineapple Apple Pen

COTOHA API

COTOHA APIを使えば、簡単に日本語解析ができる。

COTOHA APIの構文解析のページには「日本語テキストの構造と意味を解析するRESTful APIです」という説明がある。

僕はこの説明に騙されていた。
日本語しか解析できないのだと。
いや、騙されていたのではなく、勝手な思い込みだった。

COTOHA APIでの英語まじり文の解析

COTOHA APIで「新装open」を解析すると、"open" の解析結果の kana には「オープン」が入っている。
※以下は解析結果の一部の要素のみ

[{
      "form" : "新装",
      "kana" : "シンソウ",
      "lemma" : "新装",
      "pos" : "名詞"
}, {
      "form" : "open",
      "kana" : "オープン",
      "lemma" : "open",
      "pos" : "名詞"
}]

COTOHA API は日本語だけでなく、英単語も解析できたのだ。

英文を解析してみる

英単語まじりの日本語文ではなく、英文を解析してみよう。
"I have two computers" を解析すると、以下のような結果が得られる。
(主要な要素のみを抜粋)

[ {
      "form" : "i",
      "kana" : "アイ",
      "lemma" : "i",
      "pos" : "名詞"
    }, {
      "form" : " ",
      "kana" : "",
      "lemma" : " ",
      "pos" : "空白"
    }, {
      "form" : "have",
      "kana" : "ハブ",
      "lemma" : "have",
      "pos" : "名詞"
    }, {
      "form" : " ",
      "kana" : "",
      "lemma" : " ",
      "pos" : "空白"
    }, {
      "form" : "two",
      "kana" : "ツー",
      "lemma" : "two",
      "pos" : "名詞"
    }, {
      "form" : " ",
      "kana" : "",
      "lemma" : " ",
      "pos" : "空白"
    }, {
      "form" : "computer",
      "kana" : "コンピューター",
      "lemma" : "computer",
      "pos" : "名詞"
    }, {
      "form" : "s",
      "kana" : "",
      "lemma" : "s",
      "pos" : "英語接尾辞",
}]

各 token の kana には英単語のカタカナでの読みが入っている。
しかも、computers は computer と s に分解されている。
日本語だけじゃなく、英文も解析できているじゃないか。
何で教えてくれなかったんだ。

オレ チュウガクセイ ナル

はじめて英語を勉強した中学生になったつもりで、英文をカタカナ読みに変換してみよう。
COTOHA API を使えば、kana を使うだけで十分だ。

[1] 英文を COTOHA API で解析する。
[2] 各 token のカナを出力する。
  ただし、読みやすさのため、kana が ""(空文字)の場合には、" "(空白) を出力する。

各 token の kana を出力するのは、@Harusugi さんのゲンシジンと同じだ。
(もしよろしければ前の記事もご覧ください)

実際に英文を解析してみよう。

I want something just like this
⇒ アイ ウォント サムシング ジャスト ライク ディス
うん、うまくいっている。

He was excited
⇒ ヒィー ワズ エキサイテッド
「ヒー」ではなく、「ヒィー」だ。
カタカナ翻訳へのこだわりが感じられる。

Thank you
⇒ サンク ユー
「サンキュー」ではなく、逐語訳の「サンク ユー」。
丁寧な翻訳だ。

Pen Pineapple Apple Pen

ここまでで COTOHA API が英語にも対応できていることが十分にわかった。
ここで、この記事のタイトルにもある "Pen Pineapple Apple Pen" を解析してみよう。

Pen Pineapple Apple Pen
⇒ ペンパイナップルアップルペン

ちゃんとカタカナに翻訳できている。
いや、何か違うぞ。
token 間には空白が入るはずなのに、空白がはいっていない。
解析結果をみてみよう。

{
      "form" : "pen pineapple apple pen",
      "kana" : "ペンパイナップルアップルペン",
      "lemma" : "pen pineapple apple pen",
      "pos" : "名詞"
}

何と、"pen pineapple apple pen" は、ひとつの token として解析されていた。
解析用の辞書に登録されているに違いない。
恐るべし、COTOHA API。

その他の解析結果

他にもいろいろな英文を試してみたが、うまくいかない場合もあった。

I have a book
⇒ アイ ハブ エー ブック
"a" が「エー」になる。

We will rock you
⇒ ウィ ウィル ロカビリー ユー
辞書が充実しているせいか、"rock" の kana が「ロカビリー」になる。

最後に。

COTOHA
⇒ シーオーティーオーエッチエー
辞書に登録されていない単語はアルファベットの読みを連結しているようだ。

dakikd
自然言語処理技術を使ってレコメンド、検索などの web サービスの開発を行っています。
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away