ts-content-based-recommender
Version:
A TypeScript-based content-based recommender with multilingual support (Japanese & English). Forked from content-based-recommender.
108 lines • 4.19 kB
TypeScript
import { Document, RecommenderOptions, SimilarDocument, ExportedModel } from '../types/index.js';
/**
* コンテンツベース推薦システムのメインクラス
* TF-IDFとコサイン類似度を使用して文書間の類似性を計算し、類似したアイテムを推薦します
*/
declare class ContentBasedRecommender {
/** 推薦システムの設定オプション */
private options;
/** 文書間の類似度データ */
private data;
/** 処理パイプライン(トークナイザー + フィルター) */
private pipeline;
/**
* ContentBasedRecommenderのコンストラクタ
* @param options 推薦システムの設定オプション
*/
constructor(options?: RecommenderOptions);
/**
* 設定オプションを設定・検証する
* @param options 設定オプション
* @throws {Error} 無効なオプションが指定された場合
*/
setOptions(options?: RecommenderOptions): void;
/**
* 単一コレクションの文書を学習する
* @param documents 学習対象の文書配列
*/
train(documents: Document[]): Promise<void>;
/**
* 双方向学習(異なるコレクション間の類似度計算)
* @param documents メインの文書配列
* @param targetDocuments ターゲット文書配列
*/
trainBidirectional(documents: Document[], targetDocuments: Document[]): Promise<void>;
/**
* 文書配列のバリデーション
* @param documents 検証対象の文書配列
* @throws {Error} 無効な文書配列が指定された場合
*/
validateDocuments(documents: Document[]): void;
/**
* 指定IDの類似文書を取得する
* @param id 文書ID
* @param start 開始インデックス(デフォルト: 0)
* @param size 取得サイズ(未指定の場合は全て)
* @returns 類似文書の配列
*/
getSimilarDocuments(id: string, start?: number, size?: number): SimilarDocument[];
/**
* 学習済みモデルをエクスポートする
* @returns エクスポートデータ
*/
export(): Partial<ExportedModel>;
/**
* エクスポートされたモデルをインポートする
* @param object インポートするモデルデータ
*/
import(object: Partial<ExportedModel>): void;
/**
* 文書の前処理(トークン化、ステミング等)
* @param documents 対象文書配列
* @param options 設定オプション
* @returns 前処理済み文書配列
*/
private _preprocessDocuments;
/**
* 文字列からトークンを抽出する
* @param string 対象文字列
* @returns トークン配列のPromise
*/
private _getTokensFromString;
/**
* 類似文書を降順でソートし、最大数を制限する
* @param data 類似度データ
* @param options 設定オプション
*/
private orderDocuments;
/**
* 文書ベクトルを生成する
* @param processedDocuments 前処理済み文書配列
* @param options 設定オプション
* @returns 文書ベクトル配列
*/
private _produceWordVectors;
/**
* 2つのベクトルセット間の類似度を計算する(双方向学習用)
* @param documentVectors メイン文書のベクトル配列
* @param targetDocumentVectors ターゲット文書のベクトル配列
* @param options 設定オプション
* @returns 類似度データ
*/
private _calculateSimilaritiesBetweenTwoVectors;
/**
* データハッシュを初期化する
* @param documentVectors 文書ベクトル配列
* @returns 初期化されたデータハッシュ
*/
private initializeDataHash;
/**
* 同一コレクション内の類似度を計算する
* @param documentVectors 文書ベクトル配列
* @param options 設定オプション
* @returns 類似度データ
*/
private _calculateSimilarities;
}
export default ContentBasedRecommender;
//# sourceMappingURL=ContentBasedRecommender.d.ts.map