我想更多地了解为什么我们可以使用下面的代码及其作用?
如果可以的话,有人可以向我解释Tokenizer.__init__
的工作方式吗?由于我们可以将“ __init__
”附加到库中,我们也可以用其他方法来做到这一点吗?如果可以的话,有人可以给我一些例子让我理解,如果可以再做一个简单的例子,将会很高兴。
我的代码:
from tensorflow.python.keras.preprocessing.text import Tokenizer
// we import the tokenizer library
//Then we build a class
class DataWrapper(Tokenizer):
def __init__(self, num_words):
Tokenizer.__init__(self, num_words=num_words) // I dont understand how this part work.
self.fit_on_texts(texts)
self.tokens = self.texts_to_sequences(texts)
self.reverse_tokens = dict(zip(self.word_index.values(),
self.word_index.keys()))
if reverse:
self.tokens = [list(reversed(token)) for token in self.tokens]
self.num_tokens = [len(token) for token in self.tokens]
self.max_num = np.mean(self.num_tokens) + 2 * np.std(self.num_tokens)
self.max_num = int(self.max_num)
self.sequences_padded = pad_sequences(self.tokens, maxlen=self.max_num,
padding=padding,
truncating=truncating)
答案 0 :(得分:0)
在python中,可以用两种方式调用所有带有self
的函数:obj.method(params)或cls.method(obj,params)。参见以下示例:
class A:
def foo(self):
print('foo')
a = A()
# now we can call foo function in two ways:
a.foo()
A.foo(a)
此规则也适用于带有双下划线的功能,例如__init__
。就您而言:
Tokenizer.__init__(self, num_words=num_words)
cls = Tokenizer
method = __init__
obj = self # object of class DataWrapper
params = num_words