基于任务间关系的文件搜索方法
立即解锁
发布时间: 2025-08-23 00:46:13 阅读量: 2 订阅数: 12 

### 基于任务间关系的文件搜索方法
#### 1. 引言
在文件搜索领域,传统的全文搜索方法存在一定局限性,例如iMecho方法虽能生成文件间的IAA链接,但未考虑任务间关系,且其排名分数定义方式使其无法将全文搜索结果扩展到非文本文件。而SUGOI(Search by Utilizing Groups Of Interrelated files in a task)通过引入“任务”概念,利用文件访问日志挖掘任务及任务间关系,能够有效扩展全文搜索结果。
#### 2. 提出的方法
##### 2.1 整体流程
SUGOI的整体流程如下:
1. 在搜索前,将相关文件聚类为任务,并通过文件访问日志发现任务间的关联。
2. 利用任务和任务间关系扩展传统关键词搜索引擎的结果。
3. 系统在文件系统上放置访问监视器,记录文件访问日志,包括访问时间、客户端信息、目标文件路径和操作。
4. 清理日志后,提取语义文件组作为任务,并建立任务间的加权链接。
5. 根据用户搜索请求,结合任务上下文和传统全文搜索结果计算任务分数。
```mermaid
graph LR
A[开始] --> B[记录文件访问日志]
B --> C[日志清理]
C --> D[提取任务]
D --> E[建立任务间加权链接]
E --> F[用户搜索请求]
F --> G[结合上下文和全文搜索结果计算任务分数]
G --> H[输出搜索结果]
H --> I[结束]
```
##### 2.2 任务挖掘
任务挖掘的目的是将与同一任务相关的文件分组,提取两种类型的任务:FI任务和RMC任务。
- **FI任务挖掘**:FI任务(Frequent Itemset task)由并发访问的文件构建。相关文件在短时间内倾向于频繁访问,例如用户写文章时会同时编辑TeX文件、EPS文件并生成PDF文件。具体步骤如下:
1. 将文件访问日志按一定时长(TransactionTime)拆分为多个事务。
2. 对事务集应用Eclat算法挖掘频繁模式,该算法能找出出现频率大于最小支持值的项集。
3. 确定最小支持计数(MinSuppCnt)提取频繁项集,最后提取最大频繁项集作为FI任务。
- **RMC任务挖掘**:假设短时间内一起进行RMC(重命名、移动、复制)操作的文件与过去完成的任务相关,将此类文件组提取为RMC任务。具体做法是将访问日志划分为多个相同长度的时间窗口,仅提取RMC操作的目标文件。
##### 2.3 任务间关系
通过考虑任务间的重叠和RMC操作,提出了计算任务相似性链接和RMC链接权重以及任务间相关性的公式。
- **相似性链接分析**:假设强关联的任务使用大量共同文件,基于每个任务中重复文件的数量对任务间的相似性链接进行加权。相似性链接权重公式为:
\[sim(t_i \to t_j) = \frac{|t_i \cap t_j|}{|t_i|}\]
其中,\(t_i\)和\(t_j\)分别表示任务\(i\)和任务\(j\)的文件集。
- **RMC链接分析**:用户进行RMC操作可表达任务间的强关系,通过检测不同任务间的RMC操作建立任务的RMC链接。引入\(rmcf(f_m \to f_n)\)表示由RMC操作引起的从文件\(m\)到文件\(n\)的权重:
\[rmcf(f_m \to f_n) =
\begin{cases}
\alpha_1 & \text{if } f_m \text{ was renamed as } f_n \\
\alpha_2 & \text{if } f_m \text{ was renamed from } f_n \\
\beta_1 & \text{if } f_m \text{ was moved to } f_n \\
\beta_2 & \text{if } f_m \text{ was moved from } f_n \\
\gamma_1 & \text{if } f_m \text{ was copied to } f_n \\
\gamma_2 & \text{if } f_m \text{ was copied from } f_n \\
0 & \text{otherwise}
\end{cases}
\]
同时,考虑到RMC操作后文件内容可能因重复编辑而与原文件不同,引入了基于经过时间、写操作频率和文件大小变化的减少公式:
\[T(f_m, f_n) = \Delta time(f_m, f_n) - \tau\]
\[E(f_m, f_n) = \Delta edit(f_m, f_n) - \epsilon\]
\[S(f_m, f_n) = \Delta size(f_m, f_n) - \sigma\]
RMC链接权重计算公式为:
\[rmc(t_i \to t_j) = \sum_{(f_m,f_n) \in (t_i,t_j)} rmcf(f_m \to f_n) * T(f_m, f_n) * E(f_m, f_n)
0
0
复制全文
相关推荐










