質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

88.81%

検索キーワードが英語なら正常に動作するが、日本語ではNULLとなってしまう

解決済

回答 3

投稿 編集

  • 評価
  • クリップ 0
  • VIEW 1,186

hanzoo

score 20

英語をキーワードとした検索と、日本語をキーワードにした検索と、何か違いがあるのでしょうか。
ある記事保存アプリを使用中、以下のような経験をしたことから、こちらに質問しました。

保存した記事内に存在するキーワードを検索する

  • 日本語のキーワード(=>『NULL』と表示される。)
  • 英語のキーワード(=>〇〇件ヒットと表示される)

保存した記事内に存在しないキーワードを検索する

  • 日本語のキーワード(=>『NULL』と表示される。)
  • 英語のキーワード(=>『検索結果がありません』と表示される。)
  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 過去に投稿した質問と同じ内容の質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 3

0

そのアプリを作った人に聞いて下さい。他人には回答不能です。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2016/03/15 19:01

    回答ありがとうございます。
    使用したアプリ固有の問題解決に限定している質問ではありません。
    アプリを使用した際に、英語をキーワードにした検索と、日本語をキーワードにした検索が異なることをきっかけに
    検索に使用する言語によって、検索エンジンが抱える問題に、何か違いがあるのではないかと考えたため質問しました。

    キャンセル

  • 2016/03/15 22:09

    > 検索に使用する言語によって、検索エンジンが抱える問題に、何か違いがあるのではないかと考えたため質問しました。

    それはそのアプリを書いた人がどういうロジックのプログラムを書いているかによります。
    つまり、アプリを書いた人に聞くしか無いです。
    別の言い方をすると、アプリに依存しない一般論としての問題はありません。ちゃんと作られたアプリは英語でも日本語でも問題なく処理出来ます。

    キャンセル

  • 2016/03/16 00:25 編集

    > 別の言い方をすると、アプリに依存しない一般論としての問題はありません。ちゃんと作られたアプリは英語でも日本語でも問題なく処理出来ます。

    確かにおっしゃる通りだと思いました。
    そもそも、アプリケーションを開発された企業に問い合わせをし、
    企業から具体的な回答を聞ければ、素早く確かな情報を得ることができたと思います。

    otnさんの回答を頂いたことで、もしまたそのアプリを利用したいと思うなら、
    その企業に問い合わせてみても良いかもしれないと思いました。

    自己解決欄については、あくまで推測になってしまうのですが、
    発生している問題の観察から、仮説を立てるところまである程度形になったかと思い、記載をしました。

    質問について回答頂き、ありがとうございました!
    また機会がありましたら、是非回答を頂けると本当に嬉しいです。

    キャンセル

check解決した方法

-1

(この文章において、『言語』というのは自然言語を指しています。)

英語をキーワードとした検索と、日本語をキーワードにした検索の違い

(キーワードの検索対象となる)テキスト情報の解析において、英語と日本語の特徴が異なる為、発生する問題に違いがあります。

どのような問題があるのか  

日本語の場合、意味を持った最小単位の言葉に区切ることが、英語に比べて難しいという問題です。  
通常、文章において英語を含む多くの言語は、語の区切りに空白を挟み、単語が記述されていますが、  
日本語には同様の必ずしも同じ特徴ではない為、英語に比べ、単語の境界判別が難しくなります。

参考にしたURLの中に、以下のような記述がありました。

現在、MySQLには日本語環境で使用するための十分な全文検索機能が実装されていません。
(略)

なぜこのようなことが起きるかというと、これはMySQLの全文検索(FULLTEXT)インデックスのキーワード抽出を行うパーサが「半角スペースで区切られているものをキーワードとして認識する」という実装になっているためです。欧米の言語は通常、単語と単語の間は半角スペースで区切られていますので機能しますが、日本語の場合はそうではないためキーワードの抽出を行えません。
(略)

また、MySQLの日本語対応について、以下のような記述もありました。

このような問題点はMySQL+Sennaの組み合わせで、解決することができます。
Sennaとはオープンソースの全文検索エンジンです。Sennaを使用することで、全文検索インデックスのキーワード抽出にあたって、形態素解析(mecabを使用)やn-gramといった手法が使用できる為、MySQLにおいても日本語のテキストに対して有効なインデックスを作成することが可能となります。

私見

検索エンジンには、日本語対応しているものとそうでないものがあり、
検索対象となる言語の、特徴に適した文字の解析手法を使用する必要があるんですね。
なんというか、英語でも日本語でも、大した違いもなく、当たり前のようにキーワード検索出来るものと考えていました。

今回のアプリ使用の経験の例にすると、もちろん、アプリ固有の問題である可能性も考えられるのですが
検索結果が英語と日本語によって異なることから、文字解析手法の違いによる問題に対応出来ていない検索エンジンによって発生しているエラーの可能性があるのかもしれないと思いました。

 参考URL  

MySQL+Sennaによる日本語全文検索|全文検索ソリューション|製品|MySQL
形態素解析 - 日本語の形態素解析における諸問題 - Weblio辞書
形態素解析 - Wikipedia

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

-1

アプリの開発企業にメールし、返信がありました。
技術的な回答はありませんでしたが、今まで認識されていなかった問題だったようで、
今年中に解決する課題に追加したと返信がありました。

以上で、解決済み扱いにします。ありがとうございました。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

15分調べてもわからないことは、teratailで質問しよう!

  • ただいまの回答率 88.81%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

同じタグがついた質問を見る