【发布时间】:2020-04-24 11:28:54
【问题描述】:
我正在 tensorflow 中构建文本分类模型(实验从 BiLSTM 到 1DConvnet 等不同架构)我的数据结构如下:
1 个文档语料库
~ 100 个文档,由独立但上下文相似的多方对话转录(时间序列)组成。
~ 每个文档有 200 个被标记的话语(所有文档的标记约定相同
换句话说,它看起来像这样(标签结构看起来相同,但每个字符串有一个 int):
data = [
[
'hello how are you'
'i am good'
'whats the weather today'
...,
],
[
'how long have you had that cough'
'roughly 2 weeks'
'anything else'
...,
],
...,
]
现在,我通过扁平化所有文档将数据作为字符串(数据)和整数(标签)的扁平列表输入到模型中。这可行,但我想知道这是否是处理我的数据的最佳方式。 IIUC,使用任何类型的 RNN 意味着我的模型正在“记住”以前的数据。但是,由于每个文档都包含单独的对话,因此文档 1 中的文本不会影响文档 2 中的文本,依此类推。直观地说,由于每个文档都是一个独立的对话,我希望模型在对话结束时“记住”对话开始时发生的事情,但在进入下一个时“忘记”。这种直觉正确吗?
在这种情况下,最佳做法是什么?有没有办法一次输入一份文件(即将批量大小设置为文件长度?)?这会有所不同吗,或者是一个平面列表?
谢谢。
【问题讨论】:
-
所以你的文件或你的话语被标记了?
-
@SamH。只有我的话语被标记,而不是文档。
-
模型的目标是接收一个文档(这些通常称为对话),并为对话中的每个话语生成一个标签?您能否将标签添加到示例数据中?
标签: python tensorflow keras deep-learning nlp