ここhttp://www2002.org/CDROM/refereed/643/node6.htmlおよびこのペーパーhttp://singhal.info/ieee2001.pdfから、Okapi類似性測度を使用してドキュメントの類似性を計算できることがわかりました。
LuceneとのOkapi類似性スキームを使用してドキュメントコレクションのドキュメント間の類似性を計算したい
たとえば、ドキュメントコレクションに10個のドキュメント(ドキュメント#A、#B、#C、#Dなど)があります。クエリドキュメントとしてドキュメントを選択します。ドキュメント#Aと言います。次に、クエリドキュメントの各term = 1..nについて、計算します。
idfOfQueryTerm = log (totalNumIndexedDocs - docFreq + 0.5)/(docFreq + 0.5)
それから私は取りsum of (idfOfQueryTerm) from 1 to n
ます; idfOfQueryDoc= sum of (idfOfQueryTerm)
次に、10個のドキュメント(クエリドキュメントを含む)ごとに、最初に選択されたクエリドキュメントのクエリ用語に基づいて、この式によってドキュメントの合計用語頻度を計算します。
tfOfDocument={2.2 * termFrq }/ { 1.2 * ( 0.25 + 0.75 * docLength / this.avgDocLength ) + termFrq }
したがって、最終的には10tfOfDocument
個の値になります。1つはドキュメントごとに1つ、もう1つはidfOfQueryDoc
値です。
次に、これら2つの方法を使用して、クエリドキュメントと他のドキュメントの類似性を計算できます。
1)クエリドキュメントとドキュメント#B=の類似性idfOfQueryDoc* tfOfDocument #B
2)クエリドキュメントとドキュメント#B=の類似性idfOfQueryDoc* tfOfDocument #B* tfOfDocument#queryDoc
オカピの類似性測度についての私の理解が正しいかどうか知りたいですか?
上記の2つの方法のうち、ドキュメントの類似性を計算するのに最適な方法はどれですか?