/MusicLyricChatbot

chatbot based on music region using method including es and music kb.基于14W歌曲知识库的问答尝试,功能包括歌词接龙,已知歌词找歌曲以及歌曲歌手歌词三角关系的问答。

Primary LanguagePython

MusicChatbot

chatbot based on music region using method including es and music kb.基于14W歌曲知识库的问答尝试,功能包括歌词接龙,已知歌词找歌曲以及歌曲歌手歌词三角关系的问答。

项目由来

听歌识曲,歌词对唱,智能点歌是目前智能音乐中特别火的方向。本项目将使用最为传统的方法,以构建歌曲歌词语料库出发,以歌词为中心,构建歌曲、歌手、歌词三角知识库。并借助es完成相应的查询服务。
本项目的技术点包括:
1、歌曲知识库构建
2、es搜索
本项目尝试完成的工作:
1、歌词问答
2、已知歌词查歌曲
3、歌曲知识问答

项目步骤:

1、歌词语料库构建
2、歌词、歌曲、歌手知识库构建
3、基于知识库的问答挖掘

项目路线图

image

项目运行方式

1、解压data/music.json.zip,解压后文件放在data下。 music.json中为歌曲的信息文件,包含以下几个字段:
1)singer:歌手名
2)album:专辑
3)song:歌曲名称
4)author:作词者
5)composer:作曲者
整个歌曲信息文件包含140068首歌曲 ,示例如下:

    歌曲示例:  
{  "_id" : { "$oid" : "5bbdf280831b976548aa1509" },
    "singer" : "张学友",
    "song" : "耐人寻味",
    "geci" : [
            "在每个佳节 亦送上鲜花", "还常来电话 留言传达我牵挂", "在每次分散 亦送你归家", "无聊时玩耍 忘形时
            候说婚嫁", "*如最美满爱情 以这一生作保证", "说到最煽情 而你却说你清醒*", "这一宵 我再次借酒消愁 仍难忘透
            ", "我有哪里错漏 错要提分手", "这一天 对我有哪些要求 何妨直说", "你却说到以后 变做什么好友", "假使间 我很
            丑也不温柔 如何闷透", "你也说个理由 免我撒赖不走", "想不到 每到了紧要关头 词难达意", "我要对你挽留 却愤怒
            转身走", "是你太高贵 是我也潇洒", "和谐如像完 就算闲日会吵架", "望戏里主角 换上了婚纱", "何妨来玩耍 问你
            何日会想嫁" ],
    "composer" : "",
    "author" : "劳子",
    "album" : "《Jacky Cheung 15-Disc2》"
}

2、python insert_es.py 将歌曲数据库插入至ES数据库中
3、python chat_main.py 启动歌词问答

执行效果

handler = MusicChatbot()
lyric = 你哼唱的歌词
next = handler.search_next(lyric)
last = handler.search_last(lyric)
print(next)
print(last)

输入:'断桥是否下过雪'
输出:
    上一句:
    摇曳后就随风飘远---来自王子月的《断桥残雪》
    摇曳后就随风飘远---来自刘方庆的《江南夜色》
    摇曳后就随风飘远---来自许嵩的《断桥残雪》
    下一句:
    我望着湖面---来自王子月的《断桥残雪》
    我望着湖面---来自刘方庆的《江南夜色》
    我望着湖面---来自许嵩的《断桥残雪》
***************************************
输入:'我要一步一步往上爬'
输出:
    下一句:
    我的天---来自梦想星搭档的《蜗牛》
    等待阳光静静看着它的脸---来自周杰伦的《蜗牛》
    上一句:
    历经的伤都不感觉疼---来自周杰伦的《蜗牛》
***************************************
输入:'我爱你**'
输出:
    下一句:
    我爱你**---来自于秋颖的《我永远爱你**》
    我要用浪花做琴弦---来自常颖的《干杯**》
    遥远的祖国---来自梁晏豪的《我爱你**2016》
    上一句:
    更让我心贴着祖国---来自于秋颖的《我永远爱你**》
    我要为你唱首歌---来自常颖的《干杯**》
    最爱的**---来自梁晏豪的《我爱你**2016》

总结

1)本项目是对es的一个简单应用,es用的精确匹配。
2)没有什么技术含量,但有那么点意思。