utils/data-structures
自定义数据结构。
这些仅在内部使用,这意味着最终用户不需要访问此处的任何内容。
- utils/data-structures
- 静态
- .PriorityQueue
new PriorityQueue(comparator)
.size
.isEmpty()
⇒boolean
.peek()
⇒any
.push(...values)
⇒number
.extend(values)
⇒number
.pop()
⇒any
.replace(value)
⇒
- .CharTrie
- .TokenLattice
new TokenLattice(sentence, bosTokenId, eosTokenId)
.insert(pos, length, score, tokenId)
.viterbi()
⇒Array.<TokenLatticeNode>
.piece(node)
⇒string
.tokens()
⇒Array
.tokenIds()
⇒Array
- .PriorityQueue
- 内部
- ~CharTrieNode
new CharTrieNode(isLeaf, children)
.default()
⇒CharTrieNode
- ~TokenLatticeNode
new TokenLatticeNode(tokenId, nodeId, pos, length, score)
.clone()
⇒TokenLatticeNode
- ~CharTrieNode
- 静态
utils/data-structures.PriorityQueue
基于堆的优先队列的效率实现。它使用基于数组的二叉堆,其中根节点位于索引0
,节点i
的子节点分别位于索引2i + 1
和2i + 2
。
改编自以下来源
- https://stackoverflow.com/a/42919752/13989043(原始)
- https://github.com/belladoreai/llama-tokenizer-js(轻微改进)
类型:utils/data-structures
的静态类
- .PriorityQueue
new PriorityQueue(comparator)
.size
.isEmpty()
⇒boolean
.peek()
⇒any
.push(...values)
⇒number
.extend(values)
⇒number
.pop()
⇒any
.replace(value)
⇒
new PriorityQueue(comparator)
创建一个新的优先队列。
参数 | 类型 | 描述 |
---|---|---|
comparator | 函数 | 确定优先级的比较器函数。默认为最大堆。 |
priorityQueue.size
队列的大小
类别: PriorityQueue
的实例属性
priorityQueue.isEmpty() ⇒ <code> boolean </code>
检查队列是否为空。
类别: PriorityQueue
的实例方法
返回值: boolean
- 如果队列是空的则为 true
,否则为 false
。
priorityQueue.peek() ⇒ <code> any </code>
返回队列中优先级最高的元素。
类别: PriorityQueue
的实例方法
返回值: any
- 队列中优先级最高的元素。
priorityQueue.push(...values) ⇒ <code> number </code>
向队列添加一个或多个元素。
类别: PriorityQueue
的实例方法
返回值: number
- 队列的新大小。
参数 | 类型 | 描述 |
---|---|---|
...values | 任意 | 要推入队列的值。 |
priorityQueue.extend(values) ⇒ <code> number </code>
向队列中添加多个元素。
类别: PriorityQueue
的实例方法
返回值: number
- 队列的新大小。
参数 | 类型 | 描述 |
---|---|---|
values | 数组.<any> | 要推入队列的值。 |
priorityQueue.pop() ⇒ <code> any </code>
从队列中移除并返回具有最高优先级的元素。
类别: PriorityQueue
的实例方法
返回: any
- 队列中优先级最高的元素。
priorityQueue.replace(value) ⇒ <code> * </code>
用新值替换队列中具有最高优先级的元素。
类别: PriorityQueue
的实例方法
返回: *
- 替换后的值。
参数 | 类型 | 描述 |
---|---|---|
value | * | 新值。 |
utils/data-structures.CharTrie
一个高效存储和搜索字符串的Trie结构。
类型:utils/data-structures
的静态类
charTrie.extend(texts)
向字典树添加一个或多个 texts
。
类型: CharTrie
的实例方法
参数 | 类型 | 描述 |
---|---|---|
texts | Array<string> | 添加到字典树的字符串。 |
charTrie.push(text)
向字典树添加文本。
类型: CharTrie
的实例方法
参数 | 类型 | 描述 |
---|---|---|
text | string | 添加到字典树的字符串。 |
charTrie.commonPrefixSearch(text)
搜索具有公共前缀的字符串。
类型: CharTrie
的实例方法
参数 | 类型 | 描述 |
---|---|---|
text | string | 搜索的公共前缀。 |
utils/data-structures.TokenLattice
一个用于分词的格状数据处理结构。
类型:utils/data-structures
的静态类
- .TokenLattice
new TokenLattice(sentence, bosTokenId, eosTokenId)
.insert(pos, length, score, tokenId)
.viterbi()
⇒Array.<TokenLatticeNode>
.piece(node)
⇒string
.tokens()
⇒Array
.tokenIds()
⇒Array
new TokenLattice(sentence, bosTokenId, eosTokenId)
创建一个新的TokenLattice实例。
参数 | 类型 | 描述 |
---|---|---|
sentence | string | 待分词的输入句子。 |
bosTokenId | 数字 | 序列开始标记的token ID。 |
eosTokenId | 数字 | 序列结束标记的token ID。 |
tokenLattice.insert(pos, length, score, tokenId)
向token lattice插入一个新的token节点。
类型: TokenLattice
的实例方法
参数 | 类型 | 描述 |
---|---|---|
pos | 数字 | token的起始位置。 |
length | 数字 | token的长度。 |
score | 数字 | token的分数。 |
tokenId | 数字 | token的ID。 |
tokenLattice.viterbi() ⇒ <code> Array. < TokenLatticeNode > </code>
实现Viterbi算法,计算最有可能的token序列。
类型: TokenLattice
的实例方法
返回值: Array.<TokenLatticeNode>
- 代表最有可能序列的token节点数组。
tokenLattice.piece(node) ⇒ <code> string </code>
类型: TokenLattice
的实例方法
返回值: string
- 代表最可能序列的节点数组。
参数 | 类型 |
---|---|
node | TokenLatticeNode |
tokenLattice.tokens() ⇒ <code> Array </code>
类型: TokenLattice
的实例方法
返回值: Array
- 代表最可能序列的节点数组。
tokenLattice.tokenIds() ⇒ <code> Array </code>
类型: TokenLattice
的实例方法
返回值: Array
- 代表最可能序列的节点数组。
utils/data-structures~CharTrieNode
表示字符前缀树的节点。
类型: utils/data-structures
的内部类
- ~CharTrieNode
new CharTrieNode(isLeaf, children)
.default()
⇒CharTrieNode
new CharTrieNode(是否为叶子节点, 子节点)
创建一个新的 CharTrieNode。
参数 | 类型 | 描述 |
---|---|---|
是否为叶子节点 | 布尔类型 | 表示该节点是否为叶子节点。 |
子节点 | Map.<string, CharTrieNode> | 包含节点子节点的映射,其中键是一个字符,值是一个 |
CharTrieNode.default() ⇒ <code> CharTrieNode </code>
返回一个具有默认值的 CharTrieNode
实例。
类型: CharTrieNode
的静态方法
返回: CharTrieNode
- 一个新的 CharTrieNode
实例,其中 isLeaf
设置为 false
并且 children
映射为空。
utils/data-structures~TokenLatticeNode
类型: utils/data-structures
的内部类
- ~TokenLatticeNode
new TokenLatticeNode(tokenId, nodeId, pos, length, score)
.clone()
⇒TokenLatticeNode
new TokenLatticeNode(tokenId, nodeId, pos, length, score)
表示给定句子中标记格的一个节点。
参数 | 类型 | 描述 |
---|---|---|
tokenId | 数字 | 与此节点相关的令牌的ID。 |
nodeId | 数字 | 此节点的ID。 |
pos | 数字 | 令牌在句子中的起始位置。 |
length | 数字 | token的长度。 |
score | 数字 | 与令牌相关的分数。 |
tokenLatticeNode.clone() ⇒ <code> TokenLatticeNode </code>
返回此节点的副本。
类型: TokenLatticeNode
的实例方法
返回: TokenLatticeNode
- 此节点的副本。
< > 在GitHub上更新