Create your Gitee Account
Explore and code with more than 6 million developers,Free private repositories !:)
Sign up
This repository doesn't specify license. Without author's permission, this code is only for learning and cannot be used for other purposes.
Clone or download
Cancel
Notice: Creating folder will generate an empty file .keep, because not support in Git
Loading...
README.md

冬奥会领域问答机器人

2020-人工智能基础课程大作业

小组成员

郭光曜、葛忠鑫、曹瀚云、宋昱

仓库结构

│  .gitignore
│  README.md

├─answer							# 所生成答案的存放目录
│      answer_s_spd.csv					# sklearn_spd.py生成的测试集答案(csv格式)
│      answer_s_spd.json				# sklearn_spd.py生成的测试集答案(json格式)
│      answer_t_s_re_t.csv				# sklearn_re.py生成的测试集答案(csv格式)
│      answer_t_s_re_t.json				# sklearn_re.py生成的测试集答案(json格式)

├─dictionary						# 词典目录
│      common_dic.txt					# 通用词词典(nz)
│      dic_generate_helper.py			# 自建词典辅助工具
│      game_dic.txt						# 竞技项目词典(nz)
│      name_dic.txt						# 人名词典(nr)

├─gensim							# 使用gensim库训练的模型目录
│      gensim_bow.py					# 使用gensim库训练的BOW模型
│      gensim_tfidf.py					# 使用gensim库训练的Tfidf模型

├─glove								# GloVe模型目录
│      glove_100_15_vectors.txt			# Linux环境下预训练好的词向量
│      glove_100_5_vectors.txt			# 命名格式:生成维度_词向量大小
│      glove_150_15_vectors.txt			# 文件格式:txt
│      glove_150_5_vectors.txt
│      glove_50_15_vectors.txt
│      glove_50_5_vectors.txt
│      glove_g_scos.py					# gensim库加载GloVe词向量,构建句向量后使用余弦相似度计算相似度的模型
│      glove_tf.py						# gensim库加载GloVe词向量,对词向量进行idf加权(具有一定的效果)
│      glove_train.py					# 一种Windows下训练GloVe词向量的方法(建议还是在Linux下进行)
│      Glove模型训练方法.md				

├─sklearn							# 使用sklearn库训练的模型目录(不同库训练效果稍微不同)
│      key_words.txt					# 关键词(自建)
│      sklearn_cos.py					# 使用sklearn库训练的tfidf模型,计算余弦相似度匹配
│      sklearn_re.py					# 使用sklearn库训练的tfidf模型,采取了倒排索引、动态建立语料向量的方式
│      sklearn_spd.py					# 使用sklearn库训练的tfidf模型,使用稀疏矩阵乘sparse_dot_topn
										# 返回匹配结果,模型效果与余弦相似度相似,速度上可能稍快一点

├─stopwords							# 停用词目录
│      baidu_stopwords.txt				# 百度停用词表
│      cn_stopwords.txt					# 中文停用词表
│      hit_stopwords.txt				# 哈工大停用词表
│      README.md						# 停用词目录简介
│      scu_stopwords.txt				# 四川大学机器智能实验室停用词库
│      sichuan.txt						# 四川大学机器智能实验室停用词库(?)
│      stopwords.txt					# 其他停用词库

├─test								# 测试集存放目录(详情请见使用方法)
│      comp.py							# 测试结果比较小程序
│      final_answer.csv					# 测试集问题及答案(作为测试输入)
│      test.csv							# 测试集问题

├─train_data						# 训练集存放目录
│      correct_train_data.csv			# 经处理后的用于训练的数据
│      mark_data1.xlsx					# 原标注数据1.xlxs
│      mark_data2.xlsx					# 原标注数据2.xlxs
│      process_raw.py					# 训练数据处理工具
│      train_raw.csv					# 合并后的原始训练数据(csv格式)
│      train_raw.json					# 合并后的原始训练数据(json格式)
│      xlxs2json.py						# 合并标注数据集工具

└─word2vec							# 使用gensim库训练的Word2Vec模型目录
       word2vec_g_scos.py				# 使用gensim库训练的Word2Vec模型,转换为句向量后使用余弦相似度计算
       word2vec_g_tf.py					# 使用gensim库训练的Word2Vec模型,
       									# 词向量使用idf加权(效果不显著,不如GloVe的效果)
       word2vec_train.py				# 使用gensim库训练Word2Vec模型的方法,方法见内部注释
       word2vec_wc.vector				# 词向量生成结果
       word2vec_wtf.vector  			

最终作业

/sklearn/sklearn_re.py 是这次冬奥会领域问答机器人大作业的最终版本。

其在训练集(总计 13735 个问题)上的仅错了 17 个(因为严格对比,所以包含了一些可接受结果,实际错误更少),错误率低于 0.12%,在测试集(1732个问题上,依据小组自己查询得到的答案)错误 12 个(除去可接受结果,仅错 6个)。

注:验证结果为人工查找,可能不准确

使用说明

本项目主要采用 csv 格式进行训练,并提供 json 输出和答案对比功能。

csv 文件格式

第一列为问题,名称为 Q,第二列为答案,名称为 A

训练集

/train_data/correct_train_data.csv

通过合并两组标注数据、去重和手动修正相关问题答案得到。

测试数据

/test/final_answer.csv

此测试集已经将问题和答案准备好。如需更换测试集,请将测试集转为 csv 文件,并按照上述csv 文件格式进行修正后使用(否则可能报错)。若 测试集文件名不为 final_answer.csv,请手动修改相应模型的 py 文件。

若不需要答案对比功能或无答案,请手动注释 compare 函数。

输出结果

根据 py 文件名简写在answer 目录中查找。有 csv 和 json 两种格式输出结果。

其中 json 格式如下:

    {
        "question":"哪一届冬奥会是亚洲举办的第一届奥运会?",
        "answer":"第十一届日本札幌冬奥会"
    },

Comments ( 0 )

Sign in for post a comment

About

No description spread retract
Cancel

Releases

No release

Contributors

All

Activities

load more
can not load any more