Python 我可以用字符级标记对笑词进行分类吗?

Python 我可以用字符级标记对笑词进行分类吗?,python,machine-learning,keras,Python,Machine Learning,Keras,我想使用Keras的标记器的char\u级别功能来训练一个模型,以分类一个单词是笑还是普通单词,比如“hello”(普通)和“hahaha”,“loooool”(笑)。我不确定这是不是最好的方式,但我只是想尝试一下会发生什么 对于英语来说可能很容易。但在土耳其语中有一种叫做“随机笑”的东西,你只是像“asdpfjaefpkaods”一样随意地敲击键盘来表达你的笑声 我想训练一个模型,也许它可以学习“dpfj不能在一个常规单词中按顺序排列,应该有一个[a,e,I…](也许我也可以添加元音和辅音特征

我想使用Keras的标记器的
char\u级别
功能来训练一个模型,以分类一个单词是笑还是普通单词,比如“hello”(普通)和“hahaha”,“loooool”(笑)。我不确定这是不是最好的方式,但我只是想尝试一下会发生什么

对于英语来说可能很容易。但在土耳其语中有一种叫做“随机笑”的东西,你只是像“asdpfjaefpkaods”一样随意地敲击键盘来表达你的笑声

我想训练一个模型,也许它可以学习“dpfj不能在一个常规单词中按顺序排列,应该有一个[a,e,I…](也许我也可以添加元音和辅音特征?)

所以我只生成了40个单词并训练了一个模型。当我进行预测时,我希望每个单词都有一个值的概率,但它会为每个字符生成一个值(长度为SEQ_length)。以下是我到目前为止所做的基本工作:

序列长度=20
字数=50
标记器=标记器(num\u words=num\u words,char\u level=True)
标记器.fit_on_文本(data.word)
X=标记器.文本到序列(data.word)
X=焊盘顺序(X,最大长度=顺序长度)
模型=顺序()
添加(嵌入(输入尺寸=字数,输出尺寸=20,输入长度=序列长度))
model.add(密集(12,activation='relu'))
model.add(密集型(1,激活='sigmoid'))
model.compile('adam','binary\u crossentropy','accurity')
培训内容如下:

Epoch 1/100
2/2 [==============================] - 0s 682us/step - loss: 0.6910 - accuracy: 0.5525
Epoch 2/100
2/2 [==============================] - 0s 797us/step - loss: 0.6880 - accuracy: 0.6650
Epoch 3/100
2/2 [==============================] - 0s 763us/step - loss: 0.6855 - accuracy: 0.7050
预测是针对单个
[“哈哈哈”]


我是否误解了字符级标记化的目的?谢谢。

我注意到你的嵌入
输出\u dim=20
,你给我们的输出也是长度20。我认为您正在查看的输出可能只是在嵌入层之后。您可以看到,h都具有相同的值
0.8137126
,a都具有相同的值
0.9003294
,然后后面的所有内容都是焊盘值
0.3136345
。所以我相信你的模型只使用了一层。

我刚刚看到我忘记添加一个展平层。。。抱歉发了这么长的邮件。不过我仍然需要关于这个概念的建议。谢谢
array([[[0.3136345 ],
        [0.3136345 ],
        [0.3136345 ],
        [0.3136345 ],
        [0.3136345 ],
        [0.3136345 ],
        [0.3136345 ],
        [0.3136345 ],
        [0.3136345 ],
        [0.3136345 ],
        [0.3136345 ],
        [0.3136345 ],
        [0.3136345 ],
        [0.3136345 ],
        [0.90032935],
        [0.8137126 ],
        [0.90032935],
        [0.8137126 ],
        [0.9003294 ],
        [0.8137126 ]]], dtype=float32)