英語をキーワードとした検索と、日本語をキーワードにした検索と、何か違いがあるのでしょうか。
ある記事保存アプリを使用中、以下のような経験をしたことから、こちらに質問しました。
保存した記事内に存在するキーワードを検索する
- 日本語のキーワード(=>『NULL』と表示される。)
- 英語のキーワード(=>〇〇件ヒットと表示される)
保存した記事内に存在しないキーワードを検索する
- 日本語のキーワード(=>『NULL』と表示される。)
- 英語のキーワード(=>『検索結果がありません』と表示される。)
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
回答3件
0
アプリの開発企業にメールし、返信がありました。
技術的な回答はありませんでしたが、今まで認識されていなかった問題だったようで、
今年中に解決する課題に追加したと返信がありました。
以上で、解決済み扱いにします。ありがとうございました。
投稿2016/03/20 10:43
総合スコア28
0
自己解決
(この文章において、『言語』というのは自然言語を指しています。)
##英語をキーワードとした検索と、日本語をキーワードにした検索の違い
(キーワードの検索対象となる)テキスト情報の解析において、英語と日本語の特徴が異なる為、発生する問題に違いがあります。
##どのような問題があるのか
日本語の場合、意味を持った最小単位の言葉に区切ることが、英語に比べて難しいという問題です。
通常、文章において英語を含む多くの言語は、語の区切りに空白を挟み、単語が記述されていますが、
日本語には同様の必ずしも同じ特徴ではない為、英語に比べ、単語の境界判別が難しくなります。
##参考にしたURLの中に、以下のような記述がありました。
現在、MySQLには日本語環境で使用するための十分な全文検索機能が実装されていません。
(略)
なぜこのようなことが起きるかというと、これはMySQLの全文検索(FULLTEXT)インデックスのキーワード抽出を行うパーサが「半角スペースで区切られているものをキーワードとして認識する」という実装になっているためです。欧米の言語は通常、単語と単語の間は半角スペースで区切られていますので機能しますが、日本語の場合はそうではないためキーワードの抽出を行えません。
(略)
また、MySQLの日本語対応について、以下のような記述もありました。
このような問題点はMySQL+Sennaの組み合わせで、解決することができます。
Sennaとはオープンソースの全文検索エンジンです。Sennaを使用することで、全文検索インデックスのキーワード抽出にあたって、形態素解析(mecabを使用)やn-gramといった手法が使用できる為、MySQLにおいても日本語のテキストに対して有効なインデックスを作成することが可能となります。
##私見
検索エンジンには、日本語対応しているものとそうでないものがあり、
検索対象となる言語の、特徴に適した文字の解析手法を使用する必要があるんですね。
なんというか、英語でも日本語でも、大した違いもなく、当たり前のようにキーワード検索出来るものと考えていました。
今回のアプリ使用の経験の例にすると、もちろん、アプリ固有の問題である可能性も考えられるのですが
検索結果が英語と日本語によって異なることから、文字解析手法の違いによる問題に対応出来ていない検索エンジンによって発生しているエラーの可能性があるのかもしれないと思いました。
参考URL
MySQL+Sennaによる日本語全文検索|全文検索ソリューション|製品|MySQL
形態素解析 - 日本語の形態素解析における諸問題 - Weblio辞書
形態素解析 - Wikipedia
投稿2016/03/15 15:20
総合スコア28
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
0
そのアプリを作った人に聞いて下さい。他人には回答不能です。
投稿2016/03/14 14:08
総合スコア84423
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/03/15 13:09
2016/03/15 15:35 編集
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。