使用机器学习构建自动问答系统

起因

  其实这个项目是我今年上半年的时候参加微软编程之美2017的时候的参赛作品,也是我的第一个比较完整的 NLP 的应用,在Task1 里的 MRR 分数应该是是排名前几的,所以来介(chui)绍(yi)一(bo)下。

  这个比赛会给你一堆问题和有关这个问题的正确答案和错误答案,然后在测试集中将给出另外一些问题以及和这个问题相关的一些答案,要求你将这些答案排序,正确答案越靠前则分数越高。下面是我的模型的部分测试结果:

Demo

问题分析及建模

  我在这个项目中用到的模型主要参考了这篇论文:《APPLYING DEEP LEARNING TO ANSWER SELECTION: A STUDY AND AN OPEN TASK》,下面的内容都会围绕这篇论文展开。

NLP中的一些概念

  在 CV 领域中,模型的输入很自然地成为一张RGB图片的三个通道×图片宽度×图片高度这样一个矩阵,且矩阵的每个元素的取值均为0-255,但在 NLP 领域内要用这样一个向量或矩阵来直接表示一句话不太可能,因为计算机无法理解人类的语言,而如果使用utf-8编码来直接代替文字做运算的话,一个汉字可能会占用4字节,也就是 2^32 bit,这样不仅难以运算,而且由于一段话是由多个文字组成的,那么模型的输入空间将变得非常大,这样训练出来的模型将难以收敛。

  要减少模型的输入空间,首先可以将只在目标文章中出现的字词作为模型空间,再其次可以将文本做分词,将一整个词作为最小单元,并将这些单元给予索引,那么一段话就可以表示成为一段索引号组成的向量(即词袋模型、词向量模型)。

本问题的分析

  本问题的训练集给了我们问题集A、正确答案集B、错误答案集C,将这些文本向量化之后我们就得到了三个向量:A、B、C,那么问题就转变成为了优化函数:max( F(A,B,C) ),其中F(A,B,C) = abs( Model_Score(A,B) - Model_Score(A,C) ),也就是说,需要给出一个让A与B、A与C之间的分数差异最大的模型。

  在上面提到的论文中,给出了四个简单的模型:
5.png

  其中Q、A分别代表问题和答案的词向量,HL层代表隐层、CNN层代表卷积层、P+T层代表Pooling+tanh层,每个模型在最后计算余弦相似度,这样的话,我们只要设定好模型的优化目标,让正确答案的Score远大于错误答案的Score即可。

模型建立和训练

  作为坚定不移的谷粉,建立神经网络的首选工具当然是天下第一的Tensorflow。这个项目的代码主要分成了三块:

  • net.py:神经网络模型的主体
  • util.py:文本到词向量的预处理工具、以及一些配套的方便函数
  • train.py:训练和测试的主要过程

评论卡

已有 18 条评论

  1. ylrkccazwh
    ylrkccazwh
    2024年12月01日

    《省港旗兵》动作片高清在线免费观看:https://www.jgz518.com/xingkong/64303.html

    回复

  2. fmbpqeckxl
    fmbpqeckxl
    2024年12月04日

    《河神》国产剧高清在线免费观看:https://www.jgz518.com/xingkong/36883.html

    回复

  3. udyexcoqga
    udyexcoqga
    2024年12月04日

    《特殊档案》恐怖片高清在线免费观看:https://www.jgz518.com/xingkong/66093.html

    回复

  4. vrzljvuugf
    vrzljvuugf
    2024年12月06日

    你的文章让我感受到了不一样的风景,谢谢分享。 http://www.55baobei.com/GpqcGwDXsb.html

    回复

  5. mseoeynbkr
    mseoeynbkr
    2024年12月07日

    《濒危的爱斯基摩犬》记录片高清在线免费观看:https://www.jgz518.com/xingkong/162854.html

    回复

  6. ijynrilpwq
    ijynrilpwq
    2024年12月08日

    《省港旗兵》动作片高清在线免费观看:https://www.jgz518.com/xingkong/64303.html

    回复

  7. fpcwahrtvz
    fpcwahrtvz
    2024年12月08日

    《我的反派夫君》国产剧高清在线免费观看:https://www.jgz518.com/xingkong/67922.html

    回复

  8. azxbsuvccq
    azxbsuvccq
    1月6日

    哈哈哈,写的太好了https://www.lawjida.com/

    回复

  9. banmgaguvi
    banmgaguvi
    1月6日

    哈哈哈,写的太好了https://www.lawjida.com/

    回复

  10. zisszneukb
    zisszneukb
    2月28日

    作者的情感表达细腻入微,让人在阅读中找到了心灵的慰藉。

    回复

  11. tiiwnuvpxa
    tiiwnuvpxa
    2月28日

    语言简洁明快,用词精准,毫无赘余。

    回复

  12. ihlpnsfgia
    ihlpnsfgia
    2月28日

    每一个段落都紧密相连,逻辑清晰,展现了作者高超的写作技巧。

    回复

  13. eyuhwxwyly
    eyuhwxwyly
    3月1日

    文章中的实用建议和操作指南,让读者受益匪浅,值得珍藏。

    回复

  14. pgqikdwfzs
    pgqikdwfzs
    3月1日

    字里行间饱含人文关怀,温暖而有力。

    回复

  15. upjkqrvfin
    upjkqrvfin
    3月2日

    理性与感性平衡得当,读来既有深度又有温度。

    回复

  16. rptlqftbap
    rptlqftbap
    3月2日

    ?总结与建议类?

    回复

  17. axmamvdemo
    axmamvdemo
    3月2日

    文化差异分析可再深化以避免误读。

    回复

  18. dgjfdgqmdh
    dgjfdgqmdh
    3月2日

    每一个段落都紧密相连,逻辑清晰,展现了作者高超的写作技巧。

    回复