# Summary
# Cues
# Notes
`in_indices` 的中文含义是:**输入索引** 或 **输入token索引**
## 详细解释
### 英文拆解
- `in` = **input**(输入的)
- `indices` = **index的复数**(索引、指标)
### 在NLP中的具体含义
`in_indices` 就是 **token ID序列**,每个数字代表词汇表中一个词的编号。
## 举个中文例子
假设你有这样一个句子:
```Java
"我 喜欢 学习 人工智能"
```
### 1. 建立[[词汇表]](vocabulary)
```python
vocab = {
"<pad>": 0,
"<eos>": 1,
"我": 2,
"喜欢": 3,
"学习": 4,
"人工智能": 5,
"很": 6,
"有趣": 7,
# ... 更多词汇到 vocab_size=10000
}
```
### 2. 文本 → token indices
```python
文本: "我 喜欢 学习 人工智能"
↓
token_indices = [2, 3, 4, 5]
```
### 3. 在测试中
```python
in_indices = torch.tensor([[2, 3, 4, 5, 6, 7, ...], # 第1个句子的token ID
[1, 2, 8, 9, 1, 0, ...], # 第2个句子的token ID
[...]]) # 更多句子
```
## 为什么叫 "indices"?
因为每个数字都是**词汇表的索引位置**:
- `2` → 指向词汇表第2位的"我"
- `3` → 指向词汇表第3位的"喜欢"
- `4` → 指向词汇表第4位的"学习"
## 常见的中文叫法
- **Token ID** (最常用)
- **词汇索引**
- **输入索引**
- **token索引**
- **词元ID**
在代码注释中,你经常会看到:
```python
in_indices = torch.randint(0, 10_000, (batch_size, n_queries))
# 随机生成token ID,范围是 0 到 9999(词汇表大小)
```
所以 `in_indices` 就是**把文本转换成数字后的结果**,计算机只能理解数字,不能直接理解文字。