在文献检索领域,全文检索是从全文资料库中查询特定文本的技术。全文检索与基于元数据的查询方法不同,前者会搜索对象中的所有内容,而后者只根据部分内容进行检索,如标题或摘要等。
执行全文检索任务的程序一般叫做搜索引擎,其功能是根据使用者输入的查询文字从资料库中找到符合的内容。
建立索引
当文本数量较少时,可以直接逐一对比数据库中的文本。然而,当需要处理大量文本或频繁查询时,全文检索通常会被分为两个阶段:索引建立与搜索。
在索引建立阶段,索引器会扫描数据库中的文本,并将文本转换为适合检索的数据结构。索引条目通常会记录词语出现在哪些文档中,并可能包含该词语在文档中的出现次数、相对位置等信息,以支持更快速的检索与排序。
在搜索阶段,系统主要依据索引来定位符合条件的候选文档,而不是逐字扫描所有原始文本。随后,系统可能会结合索引中的统计信息进行相关性评分,并在需要时读取部分原文内容,用于高亮显示、摘要生成或进一步排序。
索引器通常会对文本进行预处理,例如分词、大小写规范化、去除或降低停用词的影响等。有些索引器也会使用词干提取(stemming)或词形还原(lemmatization),将同一词语的不同变体归一化为相同的形式,以提升检索效果。
全文索引的相关议题
*語根處理 (stemming)
*符素解析器 (token parser) 1-gram, 2-gram , n-gram
*斷詞/分詞 word segmentation
*-{zh-hans:倒排索引;zh-hant:反向索引;}- inverted index
演算法、搜索方法的模型
- 布林式 boolean
- 統計模型 Probabilistic model
- 向量空間模型 vector base model
- 隱性語義模型 Latent semantic model
评估的标准
*查全率(recall rate),查準率(precision)
开放源代码的全文检索系统
- Apache Solr
- BaseX
- Clusterpoint Server [https://web.archive.org/web/20140328121334/http://www.clusterpoint.com/ (freeware licence for a single-server)]
- DataparkSearch
- Ferret
- Ht-//Dig
- Hyper Estraier
- KinoSearch
- Lemur/Indri
- Lucene
- mnoGoSearch
- Sphinx
- Swish-e
- Xapian
- ElasticSearch
- Meilisearch
和中文有關的議題
*分词
*语法解析
*古籍问题
*多语言混合
優化
- 剔除字(Stopwords)
- 詞性標註
- -{zh-hans:规范文件;zh-hant:權威檔;}-(authority file)
- 知識體系,本體論(ontology)
- 超連結分析(page rank)技術
历史即未来的趋势
- 自然语言搜索
參考
*-{zh-hans:信息抽取;zh-hant:資訊擷取;}-
*搜尋引擎
评论 (0)