# string.bm25 库模块帮助文档

## string 成员列表 <a id="string" href="#string">&#x23;</a>

### string.bm25 <a id="string.bm25" href="#string.bm25">&#x23;</a>
用于计算 BM25 词频。  
相关库： string.tfidf,sqlite(支持 FTS5+BM25)

创建 BM25 对象

### string.bm25() <a id="string.bm25" href="#string.bm25">&#x23;</a>
[返回对象:stringBm25Object](#stringBm25Object)

### string.bm25(keywords) <a id="string.bm25" href="#string.bm25">&#x23;</a>
创建 BM25 对象。  
可选用一个字符串数组限定要计数的全部关键词。  
不指定则计算所有出现的分词

## stringBm25Object 成员列表 <a id="stringBm25Object" href="#stringBm25Object">&#x23;</a>

### stringBm25Object.addDocument <a id="stringBm25Object.addDocument" href="#stringBm25Object.addDocument">&#x23;</a>
添加文档数据

### stringBm25Object.addDocument(idOrPath,words) <a id="stringBm25Object.addDocument" href="#stringBm25Object.addDocument">&#x23;</a>
添加文档数据。  
idOrPath可指定任何可作为键名的标识,可指定文档路径。  
words 指定文档内容分词后的字符串数组。

### stringBm25Object.calc <a id="stringBm25Object.calc" href="#stringBm25Object.calc">&#x23;</a>
计算或重新计算 BM25 值

### stringBm25Object.calc(b,k1,minDocLength) <a id="stringBm25Object.calc" href="#stringBm25Object.calc">&#x23;</a>
在添加所有文档后可调用此函数计算或重新计算 BM25 值。  
b 参数用于调整文档长度归一化的影响，值在 0 到 1 之间，默认为 0.75。  
b 值越大，长度归一化的影响越大，建议在 0.3~0.9 之间调整。  
k1 参数用于调整词频饱和度，默认为 1.5。建议在 1.2~2.0 之间调整。  
k1 越大，词频对相关性得分的影响越大。  
minDocLength 可选用于指定最小文档长度（分词数目,非字数）。  
默认值为 0,小于 minDocLength 的过短文档将会抑制其权重。

### stringBm25Object.getKeywords <a id="stringBm25Object.getKeywords" href="#stringBm25Object.getKeywords">&#x23;</a>
调用 bm25 函数后可获取文档统计的关键字数组,按 BM25 值排序。

### stringBm25Object.getKeywords(idOrPath,topN,excludePatterns,excludeWords) <a id="stringBm25Object.getKeywords" href="#stringBm25Object.getKeywords">&#x23;</a>
idOrPath 参数指定文档标记（例如路径）。  
数组按 BM25 值排序,BM25 值较高的在前。  
可选用 topN 参数限定返回数组长度。  
可选通过 excludePatterns 参数使用一个模式串数组指定要排除的词。  
可选用 excludeWords 参数指定一个要排除的关键词表,键为要排除的词

### stringBm25Object.getScore <a id="stringBm25Object.getScore" href="#stringBm25Object.getScore">&#x23;</a>
计算关键词在指定文档中的权重。

### stringBm25Object.getScore(keywords,idOrPath,decimals) <a id="stringBm25Object.getScore" href="#stringBm25Object.getScore">&#x23;</a>
计算关键词在指定文档中的权重。  
keywords 参数指定关键词数组。  
idOrPath 参数指定文档标志,通常为路径。  
第一个返回值为计算得到的总权重,  
第二个返回值为对应关键词顺序的权重数组。  
可选用 decimals 参数限定返回数组中权重的小数位数

### stringBm25Object.search <a id="stringBm25Object.search" href="#stringBm25Object.search">&#x23;</a>
搜索文档

### stringBm25Object.search(keywords,topN) <a id="stringBm25Object.search" href="#stringBm25Object.search">&#x23;</a>
搜索文档。  
keywords 指定要搜索的关键词数组。  
可选用 topN 参数限定返回的文档数目上限。  
返回的到的文档数组,按权重排序。
