├── Clawer250.py ├── IntelligentCommunicationSystem.py ├── KnowledgeGraph.py ├── README.md ├── __init__.py ├── movieInfo.csv ├── selfDefiningFile.py └── selfDefiningTxt.txt /Clawer250.py: -------------------------------------------------------------------------------- 1 | # -*-coding = utf-8-*- 2 | 3 | # Author:qyan.li 4 | # Date:2022.3.11 5 | # Topic:借助于python爬取豆瓣前250电影的相关信息 6 | 7 | 8 | # 模块引入 9 | from bs4 import BeautifulSoup 10 | import urllib.request,urllib.error 11 | import re 12 | import time 13 | import csv 14 | import jieba 15 | 16 | # 全局变量 17 | titleList = [] 18 | rateLst = [] 19 | numLst = [] 20 | infoLst = [] 21 | directorLst = [] 22 | actorLst = [] 23 | timeLst = [] 24 | countryLst = [] 25 | typeLst = [] 26 | 27 | # jieba中文分词 28 | def jiebaCut(text): 29 | ''' 30 | :param text:待分词的字符串 31 | :return: 分词后的字符结果 32 | ''' 33 | textCut = ' '.join(jieba.cut(text)).split(' ') 34 | ## 此处字符串处理必须保证'中国大陆'在原有列表中的位置(使用insert函数,而不是append函数) 35 | if '中国大陆' in text: 36 | index = textCut.index('中国') 37 | textCut.remove('中国') 38 | textCut.remove('大陆') 39 | textCut.insert(index,'中国大陆') 40 | return textCut[0] 41 | 42 | # 处理演员信息,获得主演中的第一个,否则赋值'演职人员不详' 43 | def ActorDealing(ActorInfo): 44 | ''' 45 | :param ActorInfo:待处理的演职人员信息 46 | :return: 演职人员名称或'演职人员不详' 47 | ''' 48 | if '主演:' in ActorInfo: 49 | ActorInfo = ActorInfo.strip('主演:') 50 | if ActorInfo == "": 51 | ActorInfo = '演职人员不详' 52 | else: 53 | ActorInfo = ActorInfo.split('/')[0] # 获得演职员表中的第一个 54 | if ActorInfo == '主' or ActorInfo == '主演': 55 | ActorInfo = '演职人员不详' 56 | return ActorInfo 57 | 58 | 59 | # 正则表达式匹配 60 | findTitle = re.compile(r'(.*?)') # 获取标题title 61 | ''' 62 | 1. 注意从网页源码复制,而不是手敲 2. 内容匹配时注意忽略其中的换行符 63 | ''' 64 | findContent = re.compile(r'

(.*?)

',re.S) # 获取电影主要内容 65 | findRate = re.compile(r'(.*?)') # 获取评分 66 | findNum = re.compile(r'(.*?)') # 获取评价人数 67 | findInfo = re.compile(r'(.*?)') # 获取电影简介 68 | 69 | 70 | # 请求获取网页信息 71 | def askURL(url): 72 | '''模拟浏览器进行网页请求,返回网页信息 73 | :param url:待爬取的网页链接 74 | :return: 获取到html网页信息 75 | ''' 76 | head = { 77 | 'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.51 Safari/537.36 Edg/99.0.1150.39' 78 | } 79 | request = urllib.request.Request(url,headers = head) 80 | html = '' 81 | try: 82 | responseInfo = urllib.request.urlopen(request) 83 | html = responseInfo.read().decode('utf-8') 84 | except urllib.error.URLError as e: # 异常处理机制 85 | if hasattr(e,'code'): 86 | print(e.code) 87 | if hasattr(e,'reason'): 88 | print(e.reason) 89 | 90 | return html 91 | 92 | # 解析网页获得目标信息 93 | def getData(html): 94 | '''网页内容解析,获取目标字段 95 | :param html: 获取到的html网页对象 96 | :return: None 97 | ''' 98 | 99 | soup = BeautifulSoup(html,'lxml') # 网页解析 100 | 101 | ObjectPart = soup.find_all('ol',class_ = "grid_view")[0] 102 | for item in ObjectPart.find_all('li'): 103 | flag = 0 104 | 105 | item = str(item) 106 | 107 | movieDict = {} 108 | 109 | # title匹配,仅提取中文名称 110 | title = re.findall(findTitle,item)[0] 111 | titleList.append(title) 112 | 113 | # 电影内容内容匹配 114 | content = re.findall(findContent,item)[0] 115 | # 电影内容解析 116 | contentLst = content.split('\n') 117 | Time_Country_type = contentLst[2].replace(' ','').strip('/') # 去除所有的空格借助于replace(' ','')函数 118 | # 导演信息 119 | director = contentLst[1].replace(' ','').split('\xa0\xa0\xa0')[0].strip('导演:').split('/')[0] 120 | directorLst.append(director) 121 | 122 | # 演员信息(解决演员信息获取不到的问题) 123 | if len(contentLst[1].replace(' ','').split('\xa0\xa0\xa0')) == 1: 124 | actor = '演职人员不详' 125 | else: 126 | actor = contentLst[1].replace(' ','').split('\xa0\xa0\xa0')[1].strip('...
') # 多人之间以'/'区分 127 | actor = ActorDealing(actor) 128 | actorLst.append(actor) 129 | 130 | # 上映时间信息 131 | time = Time_Country_type.split('/')[0].strip('\xa0') 132 | ## 添加数据筛选代码:后续报错->[py2neo]TypeError: Neo4j does not support JSON parameters of type int64尚未解决 133 | # if '(中国大陆)' in time: 134 | # time = time.strip('(中国大陆)') 135 | timeLst.append(str(time)) 136 | 137 | # 国家信息获取 138 | # country = Time_Country_type.split('/')[1].strip('\xa0') 139 | country = Time_Country_type.split('/')[1].replace('\xa0','') 140 | countryCut = jiebaCut(country) 141 | countryLst.append(countryCut) 142 | 143 | # 类型信息获取 144 | type = contentLst[2].strip('/').split('/')[-1].strip('\xa0').split(' ')[0] # 多类型之间以' '区分 145 | typeLst.append(type) 146 | 147 | # 电影评分内容匹配 148 | rate = re.findall(findRate,item)[0] 149 | rateLst.append(str(rate)) 150 | # 电影评价人数匹配 151 | num = re.findall(findNum,item)[0].strip('评价') 152 | numLst.append(num) 153 | # 电影简介获取 154 | info = re.findall(findInfo,item) 155 | # 解决信息可能获取不到 156 | if len(info) != 0: 157 | info = info[0] 158 | else: 159 | info = '电影详细信息不详' 160 | infoLst.append(info) 161 | 162 | 163 | 164 | # python内容写入excel表格 165 | # csv文件写入-参考文献:https://blog.csdn.net/lbj1260200629/article/details/89600055 166 | def writeIntoCSVFile(fileName): 167 | ''' 168 | :param fileName:待保存csv文件路径 169 | :return: None 170 | ''' 171 | # newline = ''解决csv写入内容自动换行的问题 172 | # 参考文献:https://blog.csdn.net/weixin_44064937/article/details/105745398 173 | f = open(fileName,'w',newline = '',encoding = 'utf-8') 174 | csv_writer = csv.writer(f) 175 | # 构建列表头 176 | csv_writer.writerow(['title','rate','num','info','director','actor','time','country','type']) 177 | for i in range(len(titleList)): 178 | csv_writer.writerow([titleList[i],rateLst[i],numLst[i],infoLst[i],directorLst[i],actorLst[i],timeLst[i],countryLst[i],typeLst[i]]) 179 | f.close() 180 | 181 | 182 | 183 | def ClawerCode(): 184 | '''网络爬虫主体程序:获取电影各部分信息,写入csv文件 185 | :return: None 186 | ''' 187 | # 比较网页url区别,多界面爬取 188 | for i in range(10): 189 | LoopUrl = 'https://movie.douban.com/top250?start=' + str(i*25) + '&filter=' # 网页切换 190 | time.sleep(2) # 爬虫速率控制(自己添加,不知道有没有用) 191 | html = askURL(LoopUrl) 192 | getData(html) 193 | print(i) 194 | writeIntoCSVFile(fileName='./movieInfo.csv') 195 | 196 | def main(): 197 | ClawerCode() 198 | 199 | if __name__ == '__main__': 200 | main() 201 | -------------------------------------------------------------------------------- /IntelligentCommunicationSystem.py: -------------------------------------------------------------------------------- 1 | # -*-coding = utf-8-*- 2 | 3 | # Author:qyan.li 4 | # Date:2022/5/19 17:46 5 | # Topic:借助于python语言构建基于知识图谱的电影智能问答系统 6 | 7 | ''' 8 | 智能问答系统构建: 9 | 1. 网络爬虫 + 数据集构建 10 | 2. 电影知识图谱构建 11 | 3. 问句处理 + 查询返回 12 | ''' 13 | 14 | # 相关模块导入 15 | import jieba.posseg as pseg 16 | import jieba 17 | from fuzzywuzzy import fuzz 18 | from py2neo import Graph 19 | 20 | ## 建立neo4j对象,便于后续执行cyphere语句 21 | graph = Graph("http://localhost:7474//browser/",auth = ('neo4j','999272@123xy')) 22 | 23 | ## 用户意图的判断 24 | #设计八类问题的匹配模板 25 | info = ['这部电影主要讲的是什么?','这部电影的主要内容是什么?','这部电影主要说的什么问题?','这部电影主要讲述的什么内容?'] 26 | director = ['这部电影的导演是谁?','这部电影是谁拍的?'] 27 | actor = ['这部电影是谁主演的?','这部电影的主演都有谁?','这部电影的主演是谁?','这部电影的主角是谁?'] 28 | time = ['这部电影是什么时候播出的?','这部电影是什么时候上映的?'] 29 | country = ['这部电影是那个国家的?','这部电影是哪个地区的?'] 30 | type = ['这部电影的类型是什么?','这是什么类型的电影'] 31 | rate = ['这部电影的评分是多少?','这部电影的评分怎么样?','这部电影的得分是多少分?'] 32 | num = ['这部电影的评价人数是多少?','这部有多少人评价过?'] 33 | # 设计八类问题的回答模板 34 | infoResponse = '{}这部电影主要讲述{}' 35 | directorResponse = '{}这部电影的导演为{}' 36 | actorResponse = '{}这部电影的主演为{}' 37 | timeResponse = '{}这部电影的上映时间为{}' 38 | countryResponse = '{}这部电影是{}的' 39 | typeResponse = '{}这部电影的类型是{}' 40 | rateResponse = '{}这部电影的评分为{}' 41 | numResponse = '{}这部电影评价的人数为{}人' 42 | # 用户意图模板字典 43 | stencil = {'info':info,'director':director,'actor':actor,'time':time,'country':country,'type':type,'rate':rate,'num':num} 44 | # 图谱回答模板字典 45 | responseDict = {'infoResponse':infoResponse,'directorResponse':directorResponse,'actorResponse':actorResponse,'timeResponse':timeResponse,'countryResponse':countryResponse,'typeResponse':typeResponse,'rateResponse':rateResponse,'numResponse':numResponse} 46 | 47 | # 由模板匹配程度猜测用户意图 48 | ## 模糊匹配参考文献:https://blog.csdn.net/Lynqwest/article/details/109806055 49 | def AssignIntension(text): 50 | ''' 51 | :param text: 用户输入的待匹配文本 52 | :return: dict:各种意图的匹配值 53 | ''' 54 | stencilDegree = {} 55 | for key,value in stencil.items(): 56 | score = 0 57 | for item in value: 58 | degree = fuzz.partial_ratio(text,item) 59 | score += degree 60 | stencilDegree[key] = score/len(value) 61 | 62 | return stencilDegree 63 | 64 | 65 | ## 问句实体的提取 66 | ## 结巴分词参考文献:https://blog.csdn.net/smilejiasmile/article/details/80958010 67 | def getMovieName(text): 68 | ''' 69 | :param text:用户输入内容 70 | :return: 输入内容中的电影名称 71 | ''' 72 | movieName = '' 73 | jieba.load_userdict('./selfDefiningTxt.txt') 74 | words =pseg.cut(text) 75 | for w in words: 76 | ## 提取对话中的电影名称 77 | if w.flag == 'lqy': 78 | movieName = w.word 79 | return movieName 80 | 81 | 82 | ## cyphere语句生成,知识图谱查询,返回问句结果 83 | ## py2neo执行cyphere参考文献:https://blog.csdn.net/qq_38486203/article/details/79826028 84 | def SearchGraph(movieName,stencilDcit = {}): 85 | ''' 86 | :param movieName:待查询的电影名称 87 | :param stencilDcit: 用户意图匹配程度字典 88 | :return: 用户意图分类,知识图谱查询结果 89 | ''' 90 | classification = [k for k,v in stencilDcit.items() if v == max(stencilDcit.values())][0] 91 | ## python中执行cyphere语句实现查询操作 92 | cyphere = 'match (n:movie) where n.title = "' + str(movieName) + '" return n.' + str(classification) 93 | object = graph.run(cyphere) 94 | for item in object: 95 | result = item 96 | return classification,result 97 | 98 | ## 根据问题模板回答问题 99 | def respondQuery(movieName,classification,item): 100 | ''' 101 | :param movieName: 电影名称 102 | :param classification: 用户意图类别 103 | :param item:知识图谱查询结果 104 | :return:none 105 | ''' 106 | query = classification + 'Response' 107 | response = [v for k,v in responseDict.items() if k == query][0] 108 | print(response.format(movieName,item)) 109 | 110 | def main(): 111 | queryText = '肖申克的救赎这部电影的导演是谁?' 112 | movieName = getMovieName(queryText) 113 | dict = AssignIntension(queryText) 114 | classification,result = SearchGraph(movieName,dict) 115 | respondQuery(movieName,classification,result) 116 | 117 | if __name__ == '__main__': 118 | main() 119 | 120 | 121 | 122 | 123 | 124 | 125 | -------------------------------------------------------------------------------- /KnowledgeGraph.py: -------------------------------------------------------------------------------- 1 | # -*-coding = utf-8-*- 2 | 3 | # Author:qyan.li 4 | # Date:2022/5/19 14:49 5 | # Topic:豆瓣电影数据解析,处理形成电影知识图谱 6 | # Reference:https://blog.csdn.net/black_lightning/article/details/114499690 7 | 8 | 9 | ## 相关模块导入 10 | import pandas as pd 11 | from py2neo import Graph,Node,Relationship 12 | 13 | ## 连接图形库,配置neo4j 14 | graph = Graph("http://localhost:7474//browser/",auth = ('neo4j','********')) 15 | # 清空全部数据 16 | graph.delete_all() 17 | # 开启一个新的事务 18 | graph.begin() 19 | 20 | ## 此处使用utf-8编码会报编码错误:UnicodeDecodeError: 'utf-8' codec can't decode byte 0xc9 in position 56: invalid continuation byte 21 | ## 将此处编解码方式修改为gbk 22 | ## 修改文件的录入内容后,gbk编码报错,utf-8编码可以正常使用 23 | 24 | ## csv源数据读取 25 | storageData = pd.read_csv('./movieInfo.csv',encoding = 'utf-8') 26 | # 获取所有列标签 27 | columnLst = storageData.columns.tolist() 28 | # 获取数据数量 29 | num = len(storageData['title']) 30 | 31 | # KnowledgeGraph知识图谱构建(以电影为主体构建的知识图谱) 32 | for i in range(num): 33 | 34 | ''' 35 | py2neo.errors.ClientError: [Request.InvalidFormat] Unable to deserialize request: Non-standard token 'NaN': enable JsonParser.Feature.ALLOW_NON_NUMERIC_NUMBERS to allow 36 | at [Source: (org.eclipse.jetty.server.HttpInputOverHTTP); line: 1, column: 588] 37 | 问题在于‘黑客帝国’电影的演员表为nan,且在某种程度上无法通过重新写入,修改csv文件实现修改,解决办法:直接在程序运行时剔除 38 | ''' 39 | if storageData['title'][i] == '黑客帝国2:重装上阵' or storageData['title'][i] == '黑客帝国3:矩阵革命': 40 | continue 41 | 42 | # 为每部电影构建属性字典 43 | dict = {} 44 | for column in columnLst: 45 | dict[column] = storageData[column][i] 46 | # print(dict) 47 | node1 = Node('movie',name = storageData['title'][i],**dict) 48 | graph.merge(node1,'movie','name') 49 | 50 | ## 上述代码已经成功构建所有电影的主节点,下面构建所有的分结点以及他们之间的联系 51 | # 去除所有的title结点 52 | dict.pop('title') 53 | ## 分界点以及关系 54 | for key,value in dict.items(): 55 | ## 建立分结点 56 | node2 = Node(key,name = value) 57 | graph.merge(node2,key,'name') 58 | ## 创建关系 59 | rel = Relationship(node1,key,node2) 60 | graph.merge(rel) 61 | 62 | 63 | ## 到此为止,知识图谱基本已经构建完成,下面进行知识图谱结构的微调 64 | 65 | ''' 66 | 小Tips: 67 | 1. 所有的node的相同relationship的对象只能有一个 68 | 2. 为增加电影之间的关联性,对于内容具有多个标签的,仅选取其中第一个 69 | ''' 70 | 71 | 72 | 73 | 74 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Movie-Knowledge-QS-system-using-KnowledgeGraph 2 | 3 | ### 一、简介 4 | 利用python语言借助于知识图谱搭建电影知识问答系统 5 | ### 二、文件结构 6 | + Clawer250.py 爬虫代码爬取豆瓣250网页电影知识 7 | + movieInfo.csv 爬取数据构建电影知识数据集文件 8 | + IntelligentCommunicationSystem.py 基于电影数据和知识图谱搭建知识问答系统 9 | + KnowledgeGraph.py 知识图谱搭建 10 | + selfDefiningFile.py 生成结巴分词自定义词典 11 | + selfDefiningTxt.txt jieba分词自定义词典 12 | ### 三、调用方式: 13 | + 修改KnowledgeGraph.py中的用户名和密码,运行代码,生成知识图谱 14 | + 运行IntelligentCommunicationSystem.py完成电影知识问答 15 | ### 四、博文链接: 16 | https://blog.csdn.net/DALEONE/article/details/125116858?spm=1001.2014.3001.5501 17 | -------------------------------------------------------------------------------- /__init__.py: -------------------------------------------------------------------------------- 1 | # -*-coding = utf-8-*- 2 | 3 | # Author:qyan.li 4 | # Date:2022/5/19 10:11 5 | # Topic: 6 | # Reference: 7 | 8 | 9 | 10 | 11 | 12 | 13 | def main(): 14 | pass 15 | 16 | 17 | if __name__ == '__main__': 18 | main() 19 | 20 | 21 | 22 | -------------------------------------------------------------------------------- /movieInfo.csv: -------------------------------------------------------------------------------- 1 | title,rate,num,info,director,actor,time,country,type 2 | 肖申克的救赎,9.7,2620022人,希望让人自由。,弗兰克·德拉邦特FrankDarabont,蒂姆·罗宾斯TimRobbins,1994,美国,犯罪 3 | 霸王别姬,9.6,1945391人,风华绝代。,陈凯歌KaigeChen,张国荣LeslieCheung,1993,中国大陆,剧情 4 | 阿甘正传,9.5,1969789人,一部美国近现代史。,罗伯特·泽米吉斯RobertZemeckis,汤姆·汉克斯TomHanks,1994,美国,剧情 5 | 泰坦尼克号,9.4,1930036人,失去的才是永恒的。 ,詹姆斯·卡梅隆JamesCameron,莱昂纳多·迪卡普里奥Leonardo,1997,美国,剧情 6 | 这个杀手不太冷,9.4,2121141人,怪蜀黍和小萝莉不得不说的故事。,吕克·贝松LucBesson,让·雷诺JeanReno,1994,法国,剧情 7 | 美丽人生,9.6,1210487人,最美的谎言。,罗伯托·贝尼尼RobertoBenigni,罗伯托·贝尼尼RobertoBeni,1997,意大利,剧情 8 | 千与千寻,9.4,2046309人,最好的宫崎骏,最好的久石让。 ,宫崎骏HayaoMiyazaki,柊瑠美RumiHîragi,2001,日本,剧情 9 | 辛德勒的名单,9.6,1009807人,拯救一个人,就是拯救整个世界。,史蒂文·斯皮尔伯格StevenSpielberg,连姆·尼森LiamNeeson,1993,美国,剧情 10 | 盗梦空间,9.4,1887666人,诺兰给了我们一场无法盗取的梦。,克里斯托弗·诺兰ChristopherNolan,莱昂纳多·迪卡普里奥Le,2010,美国,剧情 11 | 忠犬八公的故事,9.4,1291529人,永远都不能忘记你所爱的人。,莱塞·霍尔斯道姆LasseHallström,理查·基尔RichardGe,2009,美国,剧情 12 | 星际穿越,9.4,1578424人,爱是一种力量,让我们超越时空感知它的存在。,克里斯托弗·诺兰ChristopherNolan,马修·麦康纳MatthewMc,2014,美国,剧情 13 | 楚门的世界,9.3,1500971人,如果再也不能见到你,祝你早安,午安,晚安。,彼得·威尔PeterWeir,金·凯瑞JimCarrey,1998,美国,剧情 14 | 海上钢琴师,9.3,1535462人,每个人都要走一条自己坚定了的路,就算是粉身碎骨。 ,朱塞佩·托纳多雷GiuseppeTornatore,蒂姆·罗斯TimRoth,1998,意大利,剧情 15 | 三傻大闹宝莱坞,9.2,1712805人,英俊版憨豆,高情商版谢耳朵。,拉库马·希拉尼RajkumarHirani,阿米尔·汗AamirKhan,2009,印度,剧情 16 | 机器人总动员,9.3,1209003人,小瓦力,大人生。,安德鲁·斯坦顿AndrewStanton,本·贝尔特BenBurtt,2008,美国,科幻 17 | 放牛班的春天,9.3,1194724人,天籁一般的童声,是最接近上帝的存在。 ,克里斯托夫·巴拉蒂ChristopheBarratier,让-巴蒂斯特·莫尼,2004,法国,剧情 18 | 无间道,9.3,1212240人,香港电影史上永不过时的杰作。,刘伟强,刘德华,2002,中国香港,剧情 19 | 疯狂动物城,9.2,1725584人,迪士尼给我们营造的乌托邦就是这样,永远善良勇敢,永远出乎意料。,拜伦·霍华德ByronHoward,金妮弗·,2016,美国,喜剧 20 | 大话西游之大圣娶亲,9.2,1401871人,一生所爱。,刘镇伟JeffreyLau,周星驰StephenChow,1995,中国香港,喜剧 21 | 熔炉,9.3,853689人,我们一路奋战不是为了改变世界,而是为了不让世界改变我们。,黄东赫Dong-hyukHwang,孔侑YooGong,2011,韩国,剧情 22 | 控方证人,9.6,460700人,比利·怀德满分作品。,比利·怀尔德BillyWilder,泰隆·鲍华TyronePower,1957,美国,剧情 23 | 教父,9.3,869491人,千万不要记恨你的对手,这样会让你失去理智。,弗朗西斯·福特·科波拉FrancisFordCoppola,马龙·白兰度M,1972,美国,剧情 24 | 当幸福来敲门,9.2,1391712人,平民励志片。 ,加布里尔·穆奇诺GabrieleMuccino,威尔·史密斯WillSmith,2006,美国,剧情 25 | 触不可及,9.3,973290人,满满温情的高雅喜剧。,奥利维·那卡什OlivierNakache,演职人员不详,2011,法国,剧情 26 | 怦然心动,9.1,1667798人,真正的幸福是来自内心深处。,罗伯·莱纳RobReiner,玛德琳·卡罗尔MadelineCarroll,2010,美国,剧情 27 | 龙猫,9.2,1156211人,人人心中都有个龙猫,童年就永远不会消失。,宫崎骏HayaoMiyazaki,日高法子NorikoHidaka,1988,日本,动画 28 | 末代皇帝,9.3,777968人,“不要跟我比惨,我比你更惨”再适合这部电影不过了。,贝纳尔多·贝托鲁奇BernardoBertolucci,尊龙JohnLone,1987,英国,剧情 29 | 寻梦环游记,9.1,1487987人,死亡不是真的逝去,遗忘才是永恒的消亡。,李·昂克里奇LeeUnkrich,演职人员不详,2017,美国,喜剧 30 | 蝙蝠侠:黑暗骑士,9.2,963526人,无尽的黑暗。,克里斯托弗·诺兰ChristopherNolan,克里斯蒂安·贝尔Christ,2008,美国,剧情 31 | 活着,9.3,750231人,张艺谋最好的电影。,张艺谋YimouZhang,葛优YouGe,1994,中国大陆,剧情 32 | 哈利·波特与魔法石,9.1,1045912人,童话世界的开端。,ChrisColumbus,DanielRadcliffe,2001,美国,奇幻 33 | 指环王3:王者无敌,9.3,729133人,史诗的终章。,彼得·杰克逊PeterJackson,伊利亚·伍德ElijahWood,2003,美国,剧情 34 | 乱世佳人,9.3,629646人,Tomorrow is another day.,维克多·弗莱明VictorFleming,费,1939,美国,剧情 35 | 素媛,9.3,617921人,受过伤害的人总是笑得最开心,因为他们不愿意让身边的人承受一样的痛苦。,李濬益Jun-ikLee,薛景求Kyung-guSol,2013,韩国,剧情 36 | 飞屋环游记,9.1,1209803人,最后那些最无聊的事情,才是最值得怀念的。 ,彼特·道格特PeteDocter,爱德,2009,美国,剧情 37 | 摔跤吧!爸爸,9.0,1437555人,你不是在为你一个人战斗,你要让千千万万的女性看到女生并不是只能相夫教子。,涅提·蒂瓦里NiteshTiwari,阿米尔·汗AamirKhan,2016,印度,剧情 38 | 我不是药神,9.0,1916881人,对我们国家而言,这样的电影多一部是一部。,文牧野MuyeWen,徐峥ZhengXu,2018,中国大陆,剧情 39 | 何以为家,9.1,942846人,凝视卑弱生命,用电影改变命运。,娜丁·拉巴基NadineLabaki,扎因·拉费阿Zainal-Rafeea,2018,黎巴嫩,剧情 40 | 十二怒汉,9.4,433610人,1957年的理想主义。 ,SidneyLumet,亨利·方达HenryFonda,1957,美国,剧情 41 | 哈尔的移动城堡,9.1,916081人,带着心爱的人在天空飞翔。,宫崎骏HayaoMiyazaki,倍赏千惠子ChiekoBaishô,2004,日本,动画 42 | 少年派的奇幻漂流,9.1,1244721人,瑰丽壮观、无人能及的冒险之旅。,李安AngLee,苏拉·沙玛SurajSharma,2012,美国,剧情 43 | 鬼子来了,9.3,563959人,对敌人的仁慈,就是对自己残忍。,姜文WenJiang,姜文WenJiang,2000,中国大陆,剧情 44 | 大话西游之月光宝盒,9.0,1117834人,旷古烁今。,刘镇伟JeffreyLau,周星驰StephenChow,1995,中国香港,喜剧 45 | 猫鼠游戏,9.1,885306人,骗子大师和执著警探的你追我跑故事。 ,史蒂文·斯皮尔伯格StevenSpielberg,莱昂纳多·迪卡普里奥L,2002,美国,传记 46 | 天空之城,9.1,751073人,对天空的追逐,永不停止。 ,宫崎骏HayaoMiyazaki,田中真弓MayumiTanaka,1986,日本,动画 47 | 天堂电影院,9.2,629468人,那些吻戏,那些青春,都在影院的黑暗里被泪水冲刷得无比清晰。,朱塞佩·托纳多雷GiuseppeTornatore,菲利普·努瓦雷Philipp,1988,意大利,剧情 48 | 闻香识女人,9.1,793708人,史上最美的探戈。,马丁·布莱斯MartinBrest,阿尔·帕西诺AlPacino,1992,美国,剧情 49 | 指环王2:双塔奇兵,9.2,680784人,承前启后的史诗篇章。,彼得·杰克逊PeterJackson,伊利亚·伍德ElijahWood,2002,美国,剧情 50 | 钢琴家,9.3,547596人,音乐能化解仇恨。,罗曼·波兰斯基RomanPolanski,艾德里安·布洛迪AdrienBrod,2002,英国,剧情 51 | 让子弹飞,8.9,1519877人,你给我翻译翻译,神马叫做TMD的惊喜。,姜文WenJiang,姜文WenJiang,2010,中国大陆,剧情 52 | 罗马假日,9.1,877043人,爱情哪怕只有一天。,威廉·惠勒WilliamWyler,奥黛丽·赫本AudreyHepburn,1953,美国,喜剧 53 | 海蒂和爷爷,9.3,491449人,如果生活中有什么使你感到快乐,那就去做吧!不要管别人说什么。,阿兰·葛斯彭纳AlainGsponer,阿努克·斯特芬AnukSteffen,2015,德国,剧情 54 | 指环王1:护戒使者,9.1,769365人,传说的开始。,彼得·杰克逊PeterJackson,伊利亚·伍德ElijahWood,2001,新西兰,剧情 55 | 黑客帝国,9.1,766080人,视觉革命。,安迪·沃卓斯基AndyWachowski,演职人员不详,1999,美国,动作 56 | 大闹天宫,9.4,386217人,经典之作,历久弥新。,万籁鸣LaimingWan,邱岳峰YuefengQiu,1961(中国大陆),1964,剧情 57 | 教父2,9.2,492563人,优雅的孤独。,弗朗西斯·福特·科波拉FrancisFordCoppola,阿尔·帕西诺A,1974,美国,剧情 58 | 死亡诗社,9.1,641075人,当一个死水般的体制内出现一个活跃的变数时,所有的腐臭都站在了光明的对面。,彼得·威尔PeterWeir,罗宾·威廉姆斯RobinWilliams,1989,美国,剧情 59 | 辩护人,9.2,542483人,电影的现实意义大过电影本身。,杨宇硕Woo-seokYang,宋康昊Kang-hoSong,2013,韩国,剧情 60 | 狮子王,9.1,758213人,动物版《哈姆雷特》。,RogerAllers,乔纳森·泰勒·托马,1994,美国,动画 61 | 绿皮书,8.9,1464239人,去除成见,需要勇气。,彼得·法雷里PeterFarrelly,维果·莫腾森ViggoMortensen,2018,美国,剧情 62 | 搏击俱乐部,9.0,774012人,邪恶与平庸蛰伏于同一个母体,在特定的时间互相对峙。,大卫·芬奇DavidFincher,爱德华·诺顿EdwardNorton,1999,美国,剧情 63 | 饮食男女,9.2,553946人,人生不能像做菜,把所有的料都准备好了才下锅。,李安AngLee,郎雄SihungLung,1994,中国台湾,剧情 64 | 美丽心灵,9.1,699871人,爱是一切逻辑和原由。,朗·霍华德RonHoward,罗素·克劳RussellCrowe,2001,美国,传记 65 | 本杰明·巴顿奇事,9.0,898892人,在时间之河里感受溺水之苦。,大卫·芬奇DavidFincher,凯特·布兰切特CateBlanchett,2008,美国,剧情 66 | 窃听风暴,9.2,513186人,别样人生。,弗洛里安·亨克尔·冯·多纳斯马尔克FlorianHenckelvonDonnersmarck  &n...