人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

twitterの検索について
「弾幕T」だと3件
「弾幕Tシャツ」だと9件
引っかかります。理論的には「弾幕T」で検索すれば「弾幕Tシャツ」も引っかかるので9件になりそうですが、なりません。
なぜなのでしょうか?

●質問者: 勇者よっしー
●カテゴリ:コンピュータ
○ 状態 :終了
└ 回答数 : 5/5件

▽最新の回答へ

1 ● グラ娘。
●80ポイント

https://support.twitter.com/articles/249045

単語と 単語の間にスペースがある英語と異なり、日本語はひと続きになっている文を単語に切り分ける必要があることにあります。

全文検索しているのではなく、機械的に区切って登録してあるインデックスみたいな単語、短文の羅列から一致するものをひっぱっているようなイメージなんじゃないかと思います。

弾幕Tで登録されているものは弾幕Tでしかひっかからないし、
弾幕Tシャツで登録されているものは弾幕Tシャツでしかひっかかからない。
Tシャツというのはひと単語になってそうなので、そこでの区切りは登録されづらいのではないのか?

『ンドンオリンピック』とかで検索したら、ロンドンオリンピックはあんまりでてきません。

『リンピック』とかだと食べリンピックとかしか、出てこない。
辞書の単語毎に区切ったり、かたかな、ひらがなの境目などで区切ったりして、
登録されてるんだと思います。

で、そこと完全一致するものだけが表示される。

推測ですんで。納得いかなければ、似るなり焼くなり。


勇者よっしーさんのコメント
推測とは言いつつ、いくつか実験的に検証してますね。 ただ >『ンドンオリンピック』とかで検索したら、ロンドンオリンピックはあんまりでてきません。 「あんまり」じゃなく「全く」出てこない、のであれば確定だったんですけどね。 惜しいです。 他の方の回答も含めると納得できる部分もあるので、ポイントあげます。

2 ● kitiko
●0ポイント

1バイト文字 と 2(マルチ)バイト文字の処理の違いですね。

ただし、1バイト文字で "This is a pen" と書いても2バイト文字で "This is a pen" と書いても英語は英語である。逆に、「おはようございます」を「Ohayougozaimasu」と記述したものを日本語ではないということはできない(言語とは文字言語に限らないため)。

そのため、この表現自体に問題があると言えるが、一群として指し示すのに便利で、代替の適切な単語が知られていないことから現在でもIT関連のメディアや、それらのソフトウェアを販売する会社などでも使われているようである。

そもそも日本語の文字を2バイト文字と呼ぶことには、文字集合と符号化方式の混同がみられる。 ある文字を表現するのに必要なバイト数はその言語ではなく、その文字集合の符号化方式(エンコーディング)によって決まる。 たとえば日本語でもいわゆる半角カナは Shift JIS符号化方式を使えば 1バイトで表現できるし、 英語の文字でも UTF-16 などの符号化方式では 1文字に最低 2バイトを必要とする。 ウィキペディアでも使用している符号化形式 UTF-8 では、1文字に必要なバイト数が可変となっており、 日本語の文字は通常3バイト、その他の言語によっては最大6バイト長を必要とする。



このように、日本語は一文字一文字が切れて符号化されているために、元々つながってないものをコンピューターの中で変換して検索しているのです。なので、たとえつながっていても、and処理されないわけです
1バイト文字(英語)の場合は、一バイト文字なので、同じ文字列として処理されます。


勇者よっしーさんのコメント
だったら"T"で検索かければ"T"+"シャツ"である"Tシャツ"は引っかかりますよね。 うん、もっともらしいけど大嘘だな。 0ポイント確定。

3 ● 楽1978
●0ポイント

簡単に言ってしまうとTwitterはGoogleなどに比べてサービスができてから日が浅いので検索機能が発展途上であること、Twitterにはハッシュタグがあるからではないでしょうか?
http://www.atmarkit.co.jp/news/200903/18/twitter.html


勇者よっしーさんのコメント
回答といい、引用されたサイトといい、何か近いけど全然違う! ちゃんと質問を読んで。0ポイント。

4 ● quintia
●100ポイント ベストアンサー

今、質問では"弾幕T"と"弾幕Tシャツ"で考えているため不思議に思っているのでしょうが、実のところ技術的に考えて分解していくと、

"T"という検索語で検索しても"Tシャツ"がヒットしない

という問題にたどりつきます。

これはなぜかというと(すでにされている回答にも含まれていますが)Twitterの検索機能の検索単位が単語(や熟語)単位だからです。
Twitterが特別なのではなく、コンピュータを用いた検索としてはごく普通のことです。
"Tシャツ"という文字の列が「一つの意味のある文字の連なり」だと認識され、「Tシャツ」で索引が作られているためこの様なことが起こります。
なぜ単語単位で索引を作るのかというと、

検索に使う索引データを小さくできる

からです。

もう一つ、

なぜ"T"で検索したときに"Tシャツ"の索引を使わないのか

という疑問がでます。
単純に、"T"で始まる単語の索引がたくさんあって、"T"で検索した時にそれらを対象に入れていたら時間がかかりすぎるというのもあるのでしょうが、結局のところ、

"Tシャツ"を検索したい人が"T"や"Tシ"や"Tシャ"というような検索語を使うか?

ということをどう想定するかという話です。
例が"Tシャツ"なので納得しにくいかもしれませんので、

"スパイラル"を検索したい人が"スパ"や"スパイ"というような検索語を使うか?

などと置き換えた方がいいかもしれません。

このような、検索システムでの検索対象にする/しないという判断には「正解」や「ベスト」の手法があるわけではなく、検索の対象にするデータの大きさや性質によって変えていかないといけない類の問題です。
検索の対象にする文書がじゅうぶんに少なければ、"T"という検索語で"Tシャツ"がヒットしても全然問題ないわけです。
検索機能を提供した時点でのTwitterの規模からすると、"T"という検索語で"Tシャツ"をヒットさせてしまうこと(あるいは"スパ"という検索語で"スパイラル"をヒットさせてしまうこと)には「レスポンスや検索結果の質の面で色々と不都合がある」と判断したこともしょうがないかと思います。


勇者よっしーさんのコメント
なるほど、なるほど。 一番いい回答です。 でも「弾幕Tシャツ」の略語として「弾幕T」という言葉を使う人が多いので「使うのか?」という(twitterの開発者の)考えには「使うんだよー」と反論したいです。 が、例外的だと自分でも思いますので、検索する時は両方の単語で検索することにします。

quintiaさんのコメント
ざっと試した感じでは東京で東京都を引っ掛けられないので、特殊な用語だから、とかそういったわけではなくてTwitterの検索がかなり割り切った機能になっているっていうことです。 回答に書かなかったことをちょっと補足で。 Googleの様な検索エンジンなら、スパでスパイやスパイラルが引っかかっても全然問題ないんです。 なぜかというと、結果の見せ方としてスパを前の方に、スパイやスパイラルは後ろの方に表示しておけばいいからです。 Twitterは結果の見せ方がTL状になっていて、最近の発言を前の方にしてます。 そうすると、スパでスパイラルが引っかかってくると「使えねえ!!」って感想になりますよね。 Twitter特有の結果の見せ方もあって、検索は基本的に広くヒットしないようにしていると思いますし、そこは今後も大きく変わることはないんじやないかと思います。 変わるとしたら結果の見せ方も大きく変えないといけないでしょうね。


1-5件表示/6件
4.前の5件|次5件6.
関連質問

●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ