NLP项目流程及思考逻辑( 二 )


第一种方式 , 也是对语序的规则进行学习 , 将语句视为一个序列 , 每个节点的词均与前面节点的词相关 , 通过学习序列中不同位置节点词之间的关系 , 从而确定语句的含义 , 这类算法主要有RNN相关算法 , 如LSTM及GRU , 以及概率图模型相关算法 , 如HMM&CRF
第二种方式 , 不是从单一一条语句的角度考虑 , 而是从语句与语句之间的角度 , 考虑不同位置之间的对应关系 , 从而可以根据上一条语句的词序 , 确定下一条语句的词序 , 这类算法主要是机制以及模型
三、
实际项目中 , 由于要用语句做不同的任务 , 所用到的算法也会不同 , 但这同样与人类思考逻辑类似:
1、在做文本分类 , 比如新闻分类 , 情感分类等任务时 , 我们人的关注点在于把握关键信息(如经济类字眼、体育类字眼或者积极评价类字眼 , 消极评价类字眼等) , 这要求对句子中重要词语的辨别能力要求高 , 而对词序的要求不多;计算机模型在此类任务中也有类似体现 , 贝叶斯的模型 , 或CNN等模型的表现并不比LSTM的差 , 甚至比之速度更快 , 更适合 , 关键在于词典的建立 , 此时仅就词向量生成方面 , BERT>>tfidf
2、在做类任务(如生成式摘要或者机器翻译时) , 对词序的要求就体现出来了 , 因此此类任务多采用双向LSTM或GRU+的-模型 , 或者模型
3、在做序列标注类任务(如NER时) , 由于词序基本确定 , 类似于分类问题 , 可用LSTM+CRF模型