TopicNet知识图谱搭建

我要开发同款
廷翰2021年07月31日
221阅读

作品详情

项目描述:从neo4j数据库获取三朵云平台所有stories(故事), menus(菜单), leaves(叶子)等数据,从mysql数据库获取ppts等数据,通过jieba, stanfordnlp, nltk工具处理所有故事的文本信息,结合word2vec训练模型,构建词向量,使用LDA主题模型提取主题,使用机器学习算法进行文本分类,建立多种数据之间的联系,将关系结果存入mongodb数据库或pickle形式暂存,搭建API,便于查询图谱相关内容责任描述:⚫ 使用cypher语句结合py2neo工具从neo4j图数据库获取stories(storyhotname, storyintro, storykeyword, storyname), menus(menu_name_en, menu_name_cn), leaves(leaf_intro_cn, leaf_big_name, leaf_image_content, leaf_image_title)以及story_id, unique_id与menu_id, leaf_id之间的关系⚫ 从mysql数据库中获取ppts相关信息(ppt_big_name, ppt_concept)⚫ 用jieba.cut()对stories, menus, leaves, ppts数据进行分词处理⚫ 使用requests请求tdb接口,获取concepts以及concept和taxonomy, 其他concept的关系,创建中英文concept字典,对以上数据进行分词操作⚫ 对stories, menus, leaves, ppts进行tce处理,获取每个concept的类别,index, length, match(打中的concept),并将这四分支的tce结果合并到一起,用Counter进行词频统计,最后用most_common()进行排序⚫ 对以上四部分的tce结果进行n-gram操作,寻找共生概念(主题),并将结果合并,建立story_id与topics的关系⚫ 使用pseg.cut()对stories, menus, leaves, ppts进行分词和词性标注,借助stopwords及通用词性表过滤掉不符合要求的concept⚫ 使用rank算法计算出每个concept及短语的rank_score,将四个部分的rank结果合并在一起,相同的concept对应的rank_score相加即可,通过rank_score进行排序,取前2000个,不在原concepts里面的即作为候选词⚫ 将stories, leaves, ppts经过tce处理后的conceptname_cn提取出来,用LdaMulticore提取出300个主题⚫ 将stories, menus, leaves, ppts分词后的结果合并作为语料库喂入Word2Vec模型进行训练,并将concepts里面的每个概念转为词向量⚫ 将上一步每个词向量组成的数组作为x, 每个概念对应的类别组成的数组作为y,选择5个邻居,进行KNN训练模型;选择OVO方式进行SVM训练模型⚫ 将story_rake_candidate_phrases,等menu, leaf, ppt等rake数据经过去重,汉字范围筛选,候选词长度筛选操作整合到candidate_phrases中⚫ 使用flask, flask_cors, flask_restplus写接口,实现通过story_id查找concept,候选词, 通过concept查找类别,主题,通过concept找到对应的近义词等操作,最终形成知识图谱完整体系⚫ 技 术 栈 : python + pandas + py2neo+ rake+ Dictionary + LdaMulticore + Word2Vec+ KNN + SVM + stanza + flask+ flask_cores + flask_restplus
查看全文
声明:本文仅代表作者观点,不代表本站立场。如果侵犯到您的合法权益,请联系我们删除侵权资源!如果遇到资源链接失效,请您通过评论或工单的方式通知管理员。未经允许,不得转载,本站所有资源文章禁止商业使用运营!
下载安装【程序员客栈】APP
实时对接需求、及时收发消息、丰富的开放项目需求、随时随地查看项目状态

评论