ludwig125のブログ

頑張りすぎずに頑張る父

検索についていろいろウェブから拾ってきてまとめたメモ

検索についていろいろウェブから拾ってきてまとめたメモ

転置索引において,単語と文書の対応付けの情報をポスティング(またはポインタ)と呼びます。
各単語におけるポスティングの列のことをポスティングリストと呼びます。


http://gihyo.jp/dev/serial/01/search-engine/0004
転置索引は大きく分けて2つの部分から構成されています。
文書に出現する単語のリストである「辞書」と,
その辞書にある各単語がどの文書に出現するかを表したポスティングリストの集合の「転置リスト」からなります(図1)。


辞書は単語だけでなく,その単語に対応するポスティングリストの位置情報を含んでいます。
よって,辞書を探索することで,該当する単語のポスティングリストを取り出すことが可能となります。


ブーリアン検索
論理演算子ブーリアンオペレータ)のAND,OR,NOTを使って適合する文書を探し出す

検索エンジンでは,ブーリアン検索により検索を行い,
その結果を何らかの基準(スコア,日付など)で並び換え,その結果をユーザに提示することが多い

 

文書に単語が出現したか否かという情報
⇒ 文書レベルのポスティングリスト(Document-level inverted list)

 

文書レベルの情報に加えて,
単語が文書中のどこに出現するか(先頭から何単語目か)という情報を含んだポスティングリスト
⇒ 単語レベルのポスティングリスト(Word-level inverted list)といい,
各ポスティングをDocID:offset1,offset2... のように表現します。


フレーズ検索
単語レベルの転置リストを使うことで,"search engine" というフレーズが検索可能となります。
"search"と"engine"が隣り合って出現しているかをチェックすることによりフレーズの存在の有無を確認します。

 

http://gihyo.jp/dev/serial/01/search-engine/0005
B+木
B+木はB木から派生したデータ構造
全てのレコードは木の葉ノード(leaf node)に格納され,
内部ノード(internal node)にはキーのみが格納される木構造

B+木は,各ノードをページと呼ばれる単位で管理し,
通常はそれをファイルシステムのブロックサイズの定数倍にします。

大規模な辞書をブロックデバイス上で扱う場合は,B+木を利用することで効率的に管理することができます。


http://gihyo.jp/dev/serial/01/search-engine/0005?page=2
転置リストは,各単語におけるポスティングリストの集まり
これらは通常辞書とは別の領域(ファイル)に保存されます。
各リストは隣りあって格納され,辞書がそのリストへの(オフセットなどの)位置情報を保持しているという構造

辞書:メモリ or ディスク上
ポスティングリスト:ディスク上


ポスティングリストの圧縮

転置リストを構成する各ポスティングリストは,検索したい文書数が増えるほど長くなります。
よって,中規模以上の文書におけるポスティングリストでは,
その取得におけるディスクI/Oが検索処理において非常に大きな比重を占めてしまいます。
この問題に対処するために,通常ポスティングリストは圧縮して格納され,ディスクI/Oの削減を図ります。

ポスティングリストは整数列となるため,整数列に向いた圧縮手法が用いられます。

 


http://gihyo.jp/dev/serial/01/search-engine/0006
文を単語や文字の並びに分割する方法

日本語のように単語が空白で区切られていない文を単語に分割するには,大きく分けて以下の2つの方法があります

1.形態素解析による分割
2.N-gram(q-gram)による分割


1.形態素解析による分割
形態素解析(Morphological Analysis)とは,
文を言語で意味を持つ最小単位の"形態素"の列に分割し,それぞれの品詞を判別すること

2.N-gram(q-gram)よる分割
N-gramとは文字のN文字の部分列のことを指し,Nには2や3などの数値が入ります
N-gramによる分割とは,文を単語の境界とは関係なくN文字ずつに分割することを言います。
全文検索エンジン」を2-gram(bi-gram)で分割した場合は,
「全文」「文検」「検索」「索エ」「エン」「ンジ」「ジン」となります。

 

形態素解析による転置索引の利点と欠点

利点は,文に対して辞書に登録するターム数が少なくなることから,
N-gramに比べて辞書,転置リストのサイズが小さくなり,また構築処理,検索処理も速くなります。

欠点は,検索漏れが生じてしまうことになります。
検索漏れとは,実際にクエリが文に含まれているにもかかわらず,見つけられないことを言います。


N-gramによる転置索引の利点と欠点
利点は,形態素解析の場合と異なり,検索漏れが発生しないことです。
これは,N-gramではすべての文字部分列をタームとして登録するため,
検索キーワードが文章に含まれていれば必ず見つけることができます。

欠点としては,上記のことから,辞書のサイズ,転置リストのサイズが大きくなってしまい,
構築処理・検索処理が形態素解析の場合と比べて少しだけ遅くなってしまいます。


日本語文書における転置索引の実装
現代の検索エンジンは,文の分割方法に依存しないように設計されることが多い

 

 


http://gihyo.jp/dev/serial/01/search-engine/0007
ディスクベースの構築方法

多くの場合,転置索引は実メモリよりも大きくなります

ディスクベースの構築方法
今回はSort-based InversionとMerge-based Inversionと呼ばれる2つの方法


■構築方法の種類
転置索引の構築には,大きく分けて以下の2種類の構築方法があります。

静的な構築方法(offline index construction, offline approarch)
動的な構築方法(online index construction, online approarch)


Web上のニュースやブログなどの場合,新しい記事は古い記事よりも重要度が高い
そのような場合には動的な構築方法が選ばれます。

 


http://gihyo.jp/dev/serial/01/search-engine/0008
検索の流れ

1.転置索引における一般的な検索処理の流れは,以下のようになります。
2.クエリ中の各タームのポスティングリストを取得
3.ブーリアン(Boolean)検索によりマッチした文書IDの取得
4.マッチした各文書とクエリの適合度計算またはソート属性値の取得
5.適合度 または 属性値により並び換え
6.上位k件(通常10件~100件)を返す


関連度によるランキング
文検索では,関連度を計算して並び変える場合が多くあります

代表的な関連度指標には,コサイン類似度(cosine similarity)やOkapi BM25などがあります。

 

Windows7にUbuntuをインストールする手順メモ

VMware PlayerのDownload

https://my.vmware.com/web/vmware/free#desktop_end_user_computing/vmware_player/5_0

 

参考(というかそのまま)

www2.rikkyo.ac.jp

Ubuntuインストール

f:id:ludwig125:20160409183653p:plain

VMware設定

f:id:ludwig125:20160409183520p:plain

f:id:ludwig125:20160409183528p:plain

f:id:ludwig125:20160409183541p:plain

f:id:ludwig125:20160409183547p:plain

f:id:ludwig125:20160409184802p:plain

仮想マシンの起動時のエラー

f:id:ludwig125:20160409184810p:plain

このエラーについて参考

「この仮想マシンは、64ビットゲストOS向けに構成されています。ただし、64ビット操作は使用できません。」 VMware player エラー対処法 - azapp.jp

Intel VT-x に対応していますが、Intel VT-x は無効になっています。エラーの対応手順|リナックスマスター.JP 公式ブログ

BIOS

BIOSとは|Basic Input/Output System - 意味/定義 : IT用語辞典

BIOSとは、パソコンなどの主基板(マザーボード)などに格納されたコンピュータプログラムファームウェア)の一種で、起動時のOSの読み込みや、接続された装置・機器に対する基本的な入出力制御などを行うもの。 

 HPのBIOS設定変更手順

http://h20564.www2.hp.com/hpsc/doc/public/display?docId=emr_na-c03544192&lang=ja-jp&cc=jp

f:id:ludwig125:20160409192435p:plain

この設定変更で起動できるようになる

Ubuntuの起動

f:id:ludwig125:20160409192658p:plain

f:id:ludwig125:20160409192710p:plain

f:id:ludwig125:20160409192718p:plain

上記の設定でインストールが終わったら再起動する

VMware Toolsのインストール

http://kledgeb.blogspot.jp/2012/09/ubuntu-vmware-player-8-vmware-tools.html

VMware ToolsをインストールしないとVMwareからWindows側へコピー&ペイストができません。
 なので、インストールしておいた方がよいでしょう。

f:id:ludwig125:20160409195719p:plain

上記でダウンロードしたtar.gzファイルをデスクトップに展開

f:id:ludwig125:20160409202208p:plain

端末からvmware toolsをインストール

> cd
> cd vmware-tools-distrib/
>
>
> ls
FILES INSTALL bin/ doc/ etc/ installer/ lib/ vmware-install.pl*
>
>
> sudo ./vmware-install.pl
Creating a new VMware Tools installer database using the tar4 format.

以下、yes, noなどは適宜選択

Vmware automatic kernel modules?

参考:

Laboratory of Theoretical Medicinal Chemistry & Drug Design Department of Chemistry, Rikkyo (St. Paul's) University

Would you like to enable VMware automatic kernel module

> yes

 

Vmware Toolsインストール後

vmware Toolsのインストール後、ウィンドウサイズを変更することができるようになった

f:id:ludwig125:20160409202208p:plain

f:id:ludwig125:20160409202140p:plain

 

トラブル対応

ludwig125.hatenablog.com

Outlookにフリーメールを連携させる方法メモ

Yahooメールの連携について

下記の方法に従う

Yahoo のインポート ツールを実行する

YahooメールのアドレスとYahooメールパスワードを入力

メールを Outlook.com に自動的に転送する

Yahoo メールに関する手順は、Yahoo! Web サイトにあります。

 の先のページが古かった

古いページ

Yahoo!メールヘルプ(旧正式版) - Yahoo!メールアドレスへ送信されたメールをほかのメールアドレスへ自動転送できますか

通常の検索をしてもこのページしかヒットしないので困っていた

送受信できない時のヘルプページ

Outlookの送受信設定をしていてエラーが出て、このページのリンクが記載されていた

Yahoo!メールヘルプ - メールソフトで送受信できない

Outlookへの連携方法

上のページのリンクに正しい設定方法の記述があった

Yahoo!メールヘルプ - メールソフトで送受信するには(Yahoo!メールアドレスの場合)

自分の場合は上のページ内の、Outlook2013の場合を選択して設定

Yahoo!メールヘルプ - Outlook 2013でYahoo!メールを送受信するには

成功!

成功するとこんな結果が出る

f:id:ludwig125:20151231173132p:plain

 

 

auのメールのバックアップ方法メモ

移行元の古い機種での作業

まるごとバックアップ(一応)

auのメールの機能である「まるごとバックアップ」をしてみた

この方法では、本体内にバックアップがとられるだけで、SDカードへのバックアップは行われないらしい

FileCommander

FileCommanderを使ってSDカードへバックアップをする

File Commander - Google Play の Android アプリ

「システムメモリ」の「private」を選んでコピーしてSDカード内に貼り付け

これでSDカードのメールのデータを移行できた。

バックアップしたメールを見る方法

単に見るだけの方法

操作しやすいように先ほどの「private」をDropBoxにUploadする

private内のメールの場所はファイルごとに以下のとおり

メールの形式はvmgファイルだが、サクラエディタまたは普通のメモ帳などにドラッグアンドドロップではりつければ中身は見られる

通常のメールのようにみられるようにするには以下

バックアップしたメールを通常のメールのようにOutlookで見られるようにするための方法

上の方法では、メール情報はvmgファイルになっている。

この形式ではメールのヘッダーやフッターなどの情報も一緒に記載されてみにくいので、Outlookで1件ずつメールを見られるようにするにはeml形式に変換する

Windows7対応ソフト

参考

VMGtoEML2を使った

VMGtoEML2の詳細情報 : Vector ソフトを探す!

VMGtoEML2の使用方法

http://wpcos.com/?p=12076

先ほど記載した下記のファイルをそれぞれ変換する

  • /private/au/BU/DR   ドラフト用
  • /private/au/BU/RE   受信メール
  • /private/au/BU/SE   送信メール

EMLに変換したファイルをOutlookで見られるようになった!

LINEのバックアップとかインポートとかの方法についてメモ

2015年12月時点のLINEのバックアップとインポートについてまとめ

旧機種側の操作(バックアップ)

メールが無効でパスワードを忘れた場合

Help Center | LINE

LINEの機種変更で「ログインできない」時の対処法まとめ──パスワード忘れ、PINコード・メールアドレス不明、電話番号エラーなど | アプリオ

Evernoteへのバックアップ方法参考

appllio.com

バックアップ注意点

1.復元できるファイルは、「すべてバックアップ」から作成したバックアップファイルのみ

参考:

機種変・トラブル対策に!LINEのトーク履歴をバックアップ&復元する方法(Q&A付き) | LINEの仕組み

前からある形式のバックアップファイル(.txtファイル)をインポートすることはできません。復元できるファイルは、「すべてバックアップ」から作成したバックアップファイルのみです

 

LINEのトーク、履歴のバックアップ保存&復元方法 – 機種変更などスマホを変更したときでもOK 【iPhone・Andoid対応】 ≫ 使い方・方法まとめサイト - usedoor

Windows上などでも見ることができる「.txt」ファイルが生成されます。
あくまでテキストファイルなのでスタンプなどは見ることができず、このファイルからLINEアプリ内へのデータの復元はできません。

自分がやったときはテキストでバックアップしかできないトークが幾つかあったので、それは復元できなかった

2.ただの複数人でのトークはバックアップ、インポートできない

参考:

機種変・トラブル対策に!LINEのトーク履歴をバックアップ&復元する方法(Q&A付き) | LINEの仕組み

LINE 複数人とグループトークの違いとは?わかりやすく丁寧に

how

新機種側の操作(インポート)

新機種内でのバックアップファイルの中身の確認方法

ファイルがどこにあるかはストレージ管理アプリがないと見られないのでダウンロードする

ファイル マネージャー (ファイルエクスプ ローラー)

ファイル マネージャー (ファイルエクスプ ローラー) - Google Play の Android アプリ

インポート方法

→ LINE_backupフォルダへバックアップデータをコピー の部分

LINEバックアップにEvernoteからダウンロードしたフォルダをコピーして1コずつインポートするのが一番確実だった

参考

機種変・トラブル対策に!LINEのトーク履歴をバックアップ&復元する方法(Q&A付き) | LINEの仕組み

 

 

Windows7 で勝手にスリープが解除される問題に対応

mouse computer FAQ - アーカイブページ

このページでネットワークアダプタの設定変更をすることで、勝手にスリープが解除されるのをやめさせることができた