- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有以下代码
import tensorflow as tf
from tensorflow import keras
from tensorflow.keras.preprocessing.text import Tokenizer
sentences = [
'I love my dog',
'I love my cat',
'You love my dog',
]
tokenizer = Tokenizer(num_words=3)
tokenizer.fit_on_texts(sentences)
word_index = tokenizer.word_index
print(word_index)
Output: {'love': 1, 'my': 2, 'i': 3, 'dog': 4, 'cat': 5, 'you': 6}
现在我的代码如何跟踪超过 3 个唯一的常用单词?
我在这里遗漏了什么吗?
最佳答案
查看source code ,似乎索引已分配给遇到的所有单词。但是,一旦您实际使用标记生成器将文本转换为索引序列(例如使用 texts_to_sequences
),所有“不常见单词”都将被 OOV 标记替换。请注意,只有在您实际指定了 OOV token (您尚未指定)时才会执行此操作。示例:
import tensorflow as tf
from tensorflow import keras
from tensorflow.keras.preprocessing.text import Tokenizer
sentences = [
'I love my dog',
'I love my cat',
'You love my dog dog',
]
tokenizer = Tokenizer(num_words=4, oov_token=None)
tokenizer.fit_on_texts(sentences)
word_index = tokenizer.word_index
print(word_index)
tokenizer.texts_to_sequences(["I love my cat"])
{'love': 1, 'you': 6, 'i': 4, 'dog': 3, 'my': 2, 'cat': 5}
[[1, 2]]
我稍微修改了文本,打破了“dog”和“I”之间的联系,并将存储的单词数量增加了 1(无论出于何种原因,指定 4 实际上只使用了三个最常见的单词...)。您可以看到 OOV 单词(“I”和“cat”)被简单地从文本中删除,即使它们已分配了索引。
如果我们指定 OOV token ,会发生以下情况:
import tensorflow as tf
from tensorflow import keras
from tensorflow.keras.preprocessing.text import Tokenizer
sentences = [
'I love my dog',
'I love my cat',
'You love my dog dog',
]
tokenizer = Tokenizer(num_words=4, oov_token="oov")
tokenizer.fit_on_texts(sentences)
word_index = tokenizer.word_index
print(word_index)
tokenizer.texts_to_sequences(["I love my cat"])
{'love': 2, 'you': 7, 'i': 5, 'dog': 4, 'my': 3, 'cat': 6, 'oov': 1}
[[1, 2, 3, 1]]
如您所见,索引 1 现在是为 OOV 标记保留的,并且在转换时不常见的单词将分配给该索引。
关于python - 为什么 Tokenizer 跟踪的单词数量多于 num_words?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57899789/
我有以下型号:http://slexy.org/view/s20T8yOiKZ from mxutils.cms_services import generate_secid from django.
我遇到了一个问题..当我用我的程序运行 valgrind 时,我得到了以下输出,这让我很困惑: ==12919== HEAP SUMMARY: ==12919== in use at exit
我有一张产品销售表。每笔销售都有一个项目代码(例如序列号)和一个日期。 item_code | date a | 2013-01-01 a | 2013-01-18 b | 3013-02-10 c
是否可以定义一个不限于 1 个字符的分隔符?基于标题的示例,我想将我的分隔符定义为例如'#+#'。文本文件/行可以包含这两个字符,但您遇到特定子字符串/文本组合的可能性很小。 最佳答案 不可以,您不能
Produce a PDA to recognise the following language : the language of strings containing more a's than
我想做一个程序,想像这样生成一个 process -> n process -> n process 第二级可以使用多处理生成进程吗?使用 python 2.6 的 multiprocessinf 模
我对使用 CNN 进行图像识别非常陌生,目前使用 Keras(VGG 和 ResNet)中提供的几种标准(预训练)架构来执行图像分类任务。我想知道如何将输入 channel 的数量概括为 3 个以上(
我有一个 html 文档,当 URL 长度小于 30 个字符时,我想隐藏其中的一些 id(在本例中为 id="test")。 var test = document.getElementById('t
我有一个以 Qtreewidget(有 3 列)作为中央小部件的主窗口。我想保持第一列和第二列的大小固定,但第二列的大小应等于 qtreewidget 的大小减去其他两列的大小。既然主窗口(也就是树形
我的问题类似于this一。我想知道是否存在一个 PDA,它以随机顺序接受包含 a、b 和 c 的任何单词,其中 a 的总量高于 b 的总量并高于 c 的总量,例如单词“abcacba”将被接受。 最佳
我正在尝试使用准备好的 PDO 语句执行 while 循环,但我只希望它在有任何行时执行。目前我正在使用它,但它似乎缺少第一个结果,大概是因为它移动了指针。 正确的做法是什么? $stmt = $pd
1.实体(表)CurrentyEnitiy.java @Entity(tableName = "Corona") public class CurrentyEntity { @PrimaryKey(a
我是一名优秀的程序员,十分优秀!