Open aitianyu2006 opened 6 years ago
@aitianyu2006 输入的文件是 .json 格式的:
{testid: "xxxxxxxx", feature_content: ["xx", "xx", "xxx"], labels_index: [33, 77, 129], labels_num: "3"}
其中:
例如,你的所有标签的个数是 500,某一条记录属于第 33,77,129 个类别,labels_index 就记为 [33, 77, 129]。
我尝试一下 谢谢了
labels_num 有作用吗?好像也是可有可无
@luchenue 是的,目前来说,labels_num 在代码中没有用到。主要是后面有个想法将会用到这个东西。
@RandolphVI 请问 feature_content这个字段是分完词的结果,还是分完词后去除停用词后的结果?如果文章的词数很多,比如在2000以上的话,都要保留这么多词吗?如果用不到这么多词的话,是不是不用保留这么多数量的词,训练的时候对每个doc中的词的数量是不是有数量限制?
@JiaWenqi
feature_content
是分完词后并去除停用词后的结果。
如果文章的词数很多,是要看是整体数据集的词数都很多还是就极个别的文章是这样的。 训练呢的时候每个 doc 的词的数量可以用 pad_seq 设定(一般是你整体数据集按照所有 doc 的词数分布图来确定) 。超过 pad_seq 词语长度的 doc 截取超过的词语,不足的 pad_seq 词语长度的 doc 补齐至 pad_seq 长度。
你好,想问一下训练文本输入的事情。 假设我有2000条长文本,每条文本包含约10-20句话,每句话包含若干单词。 如何做到 “word-sent-doc”的向量化输入,因为看到feature_content的单条数据就是每个doc分词后的结果。
@ft3020997
doc 由 sentence 组成,sentence 由 word 组成,先得到长文本的各个分词词向量,堆叠形成的矩阵就是 doc 文档的向量化表征。具体流程也很简单,长文本里面先进行分词,其中包括去除停用词操作,然后会得到每个长文本记录对应的分词。这个分词就是 feature_content
的内容,之后训练模型的时候,通过 load 你训练好的词向量表就可以得到这个长文本的文档向量了。
@RandolphVI 那模型知道该如何进行单个doc句子的截断吗?因为看到feature_content 的内容,都是[word1,word2....wordN]的格式,如果需要做成“word-sent-doc”形式的,是否需要doc1[sent1[word,word],sent2[word,word]....sentN]的输入?
@ft3020997
听你的说法,是要区别对待每个句子,这样有两个做法:
feature_content: [word1, wor2, ..., <end>, word1, word2, ..., <end>, ...]
,之后要针对的 feature_content: [word1, wor2, ..., <end>, word1, word2, ..., <end>, ...]
,也可以是 feature_content: [[word1, wor2, ...,], [word1, word2, ...,], ...]
,根据你自己设计的数据格式,数据处理的时候代码要修改。以上我说的两种方法,我的代码并不支持处理,这属于是区别对待 doc 中的 sentence 方式,你需要修改的地方不仅仅是数据处理部分的代码,还需要针对你所生成的堆叠文档向量进行设计特定网络(例如网络是寻找文档中不同句子的重要程度)。
@RandolphVI 十分感谢大神的解答,我先尝试一下,谢谢。
1 环境都是按照requirements里装的虚拟环境。 2 先是按照作者给的提示,自己做了个中文的json文本格式,有报错。 3 然后只用作者给的一条记录跑了下CNN的train,报错如下: FileNotFoundError: [Errno 2] No such file or directory: '../data/content.txt' 请问作者,是我遗漏了什么嘛?
@327850200
可以参考我的这个项目下 Issues 中的一个问题 https://github.com/RandolphVI/Multi-Label-Text-Classification/issues/12 已经在里面作了回答,希望能帮到你
如果每个样本的labels_num都不相同,可以支持吗?
@christianahui
抱歉过了这么久才回复。
可以的,因为本身 Multi-label Classification 任务就是处理文本可能对应一个或多个的属性标签。
每个样本的 labels_num
本身可能就不一样,可以参考 /data
文件夹下的 data sample 的 format。
项目的代码是可以处理上述情况的。
输入文件的格式是什么样子的?