我希望有人可以为我的项目提供指导/意见/建议,我相信 AI 可以提供帮助。
我对人工智能有一个大致的了解,但我缺乏正规的培训。
我从来没有自己从头开始构建过神经网络。
任务
构建一个能够为输入文本数据分配标签的分类模型。
与教科书示例不同的是,输入是自由文本,因此既不是分类的也不是数字的。
更复杂的是,我使用的训练数据中的预测变量通常彼此相似。
数据
- 输入:由职位描述组成的短文本数据,例如。高级营销经理
最短的词条由一个词组成,最长的词条可达~20个词。
输入数据形成一个封闭列表(约 130k 个条目),但可能会出现新的、看不见的文本。 - 标签:65 个文本标签的封闭列表(和相应的id)
策略测试
对于之前的项目,我gensim使用相同的数据使用 Word2Vec 构建了一个词嵌入模型。
所以我使用这个模型来获取输入文本中每个单词的向量表示,然后计算质心以获得它的嵌入。
我使用此嵌入来训练和测试以下内容
- 普通分类器:
DecisionTree,RandomForest,NaiveBayes,KNeighborsClassifier-> 最大准确率 ~ 41% - 多标签分类器:
OneVsRestClassifier,OneVsOneClassifier,OutputCodeClassifier-> 最大准确率 ~ 43% keras- 在keras中发现的基于文本分类器的多文本特征输入和单个文本标签输出分类-> 最大准确度 ~ 46%
不太确定这个网络是否适合我的任务,从描述来看,对我来说似乎如此
鉴于精度如此之低,我没有调整这些分类器的超参数。
我认为我应该首先建立一个具有更高基线性能的模型。
新战略
我认为训练输入数据的Doc2Vec嵌入并使用它来训练keras神经网络应该可以提高分类器的性能。
这是我的想法:
- 创建一个 Doc2Vec(超)参数网格
- 为每个组合训练一个新的 Doc2Vec 模型
- 使用简单快速的分类器(例如 Logistic)测试每个新模型
- 使用最高精度模型训练和测试分类
keras神经网络
问题
在开始这个(漫长的)过程之前,我想征求意见:
- 这种方法合理还是有人可以推荐一种更聪明的方法?
- 谁能推荐要关注哪些 Doc2Vec 参数以及要设置哪些参数?
- 我发现的keras神经网络是否适合这项任务,或者我应该修改它吗?如果是这样,怎么做?
非常感谢任何愿意阅读所有这些并提供建议的人。