├── README.md
├── assets
├── MovieKGQA1.png
├── MovieKGQA2.png
├── MovieKGQA3.png
└── MovieKGQA_workflow_graph.png
├── backend
├── README.md
├── flask
│ ├── app.py
│ ├── core
│ │ ├── __init__.py
│ │ ├── classifier.py
│ │ ├── database.py
│ │ ├── parser.py
│ │ └── qa.py
│ ├── data
│ │ ├── train.json
│ │ └── userdict.txt
│ └── test
│ │ ├── test.py
│ │ └── userdict.txt
└── spider
│ ├── database_1000
│ ├── actor.csv
│ ├── actor_movie.csv
│ ├── genre.csv
│ ├── movie.csv
│ ├── movie_genre.csv
│ └── userdict_1000.txt
│ ├── database_250
│ ├── actor.csv
│ ├── actor_movie.csv
│ ├── genre.csv
│ ├── movie.csv
│ ├── movie_genre.csv
│ └── userdict_250.txt
│ ├── generate_userdict.py
│ ├── import_data_cql.txt
│ ├── main_1000.py
│ ├── main_250.py
│ └── process_data.py
└── frontend
├── README.md
├── app.js
├── app.json
├── app.wxss
├── img
├── bot.png
├── chatbot.svg
├── graphdatabase.svg
├── knowledge_graph.svg
├── send.svg
├── stop.svg
├── user.png
└── voice.png
├── package-lock.json
├── package.json
├── pages
├── chat
│ ├── chat.js
│ ├── chat.json
│ ├── chat.wxml
│ └── chat.wxss
└── index
│ ├── index.js
│ ├── index.json
│ ├── index.wxml
│ └── index.wxss
├── project.config.json
├── project.private.config.json
└── utils
├── asr.min.js
└── util.js
/README.md:
--------------------------------------------------------------------------------
1 | # MovieKGQA
2 | ## Introduction
3 |
4 | 基于知识图谱和neo4j图数据库的电影知识问答系统
5 |
10 |
11 |
12 | ## Workflow
13 |
14 | ### DataBase
15 |
16 | 爬取豆瓣TOP1000电影信息数据
17 |
18 | ### Frontend
19 |
20 | 1. 获取用户输入的信息 (语音输入 / 文本输入)
21 | 2. 向电影知识问答后端服务器发送请求
22 | 3. 获取返回结果 (成功 -> 4 / 失败 -> 5)
23 | 4. 如果返回结果包含image信息,则显示图片和文字,否则只显示文字
24 | 5. 请求基于gpt的AI模型服务器,并显示返回结果
25 |
26 | ### Backend
27 |
28 | [准备工作] 训练 TF-IDF 向量算法和朴素贝叶斯分类器,用于预测用户文本所属的问题类别
29 |
30 | 1. 接受前端请求,获取用户输入信息
31 | 2. 使用分词库解析用户输入的文本词性,提取关键词
32 | 3. 根据贝叶斯分类器,分类出用户文本的问题类型
33 | 4. 结合关键词与问题类别,在 Neo4j 中查询问题的答案
34 | 5. 返回查询结果 (若问题类型为 演员信息 / 电影介绍,则附加图片url)
35 |
36 | ### WorkFlow Graph
37 |
38 | 
39 |
40 | ## Frame
41 |
42 | ### DataBase
43 |
44 | [](https://neo4j.com/)
45 |
46 | ### Frontend
47 |
48 | [](https://developers.weixin.qq.com/)
49 |
50 | ### Backend
51 |
52 | [](https://www.python.org/)[](https://flask.palletsprojects.com/)[](https://scikit-learn.org/stable/index.html)[](https://github.com/fxsjy/jieba)
53 |
54 | ## Reference
55 |
56 | ### Frontend
57 |
58 | [微信小程序:微信聊天机器人](https://github.com/JzheTang/wechat_robot_app)
59 |
60 | ### BackEnd
61 |
62 | [基于知识图谱的电影知识问答系统](https://github.com/mrcaidev/kgqa)
63 |
64 | [电影知识库问答机器人](https://github.com/futurehear/chatbot)
65 |
--------------------------------------------------------------------------------
/assets/MovieKGQA1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SwimmingLiu/MovieKGQA/ba77aed8c4e1d71d54ffa37185ebc9da32f54a3e/assets/MovieKGQA1.png
--------------------------------------------------------------------------------
/assets/MovieKGQA2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SwimmingLiu/MovieKGQA/ba77aed8c4e1d71d54ffa37185ebc9da32f54a3e/assets/MovieKGQA2.png
--------------------------------------------------------------------------------
/assets/MovieKGQA3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SwimmingLiu/MovieKGQA/ba77aed8c4e1d71d54ffa37185ebc9da32f54a3e/assets/MovieKGQA3.png
--------------------------------------------------------------------------------
/assets/MovieKGQA_workflow_graph.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SwimmingLiu/MovieKGQA/ba77aed8c4e1d71d54ffa37185ebc9da32f54a3e/assets/MovieKGQA_workflow_graph.png
--------------------------------------------------------------------------------
/backend/README.md:
--------------------------------------------------------------------------------
1 | - **flask**
2 | - ***core***
3 | - *classifier 问题分类,句子=>jieba分词,再按空格为间隔拼接在一起,转为TF-IDF向量=>喂入分类模型*
4 | - *database 连接Neo4j*
5 | - *parser 对句子进行词性标注(这里使用userdict作为自定义词性),拿到查询的key*
6 | - *qa 汇合上述三个模块实现知识问答*
7 | - ***data***
8 | - *train.json 训练分类模型的数据*
9 | - *userdict 词性标注的文件*
10 | - ***test***
11 | - *词性标注和TF-IDF测试*
12 | - **spider**
13 |
14 | - *generate_userdict.py 生成用户字典,作用:导入jieba进行词性标注,进而提取关键词*
15 | - *main_x.py 爬虫代码,生成movie.csv和actor.csv文件*
16 | - *process_data.py 根据爬虫结果,生成需要的文件,可将其导入至Neo4j*
17 | - *database_x 包含最终的结果文件和导入Neo4j的CQL语句*
18 |
19 | - 完结撒花!
20 |
21 |
--------------------------------------------------------------------------------
/backend/flask/app.py:
--------------------------------------------------------------------------------
1 | from atexit import register
2 |
3 | from core import QA
4 | from flask import Flask, abort, jsonify, request
5 | from flask_cors import CORS
6 |
7 |
8 | qa = QA()
9 | register(qa.close)
10 |
11 | app = Flask(__name__)
12 | CORS(app)
13 |
14 |
15 | @app.route("/q/", methods=['GET', 'POST'])
16 | def get_answer(question):
17 |
18 | if not question:
19 | abort(jsonify({"error": "问题不能为空"}), 400)
20 |
21 | return {"answer": qa.answer(question)}
22 |
23 |
24 | @app.route("/q", methods=['POST'])
25 | def get_ans():
26 | # data format = {q: "question"}
27 | if request.headers['Content-Type'] == 'application/json':
28 | data = request.json
29 | # 在这里处理接收到的JSON数据
30 | question = data.get('q')
31 | else:
32 | data = request.form
33 | # 在这里处理接收到的表单数据
34 | question = data.get('q')
35 |
36 | if not question:
37 | abort(jsonify({"error": "问题不能为空"}), 400)
38 |
39 | return {"answer": qa.answer(question)}
40 |
41 |
42 | if __name__ == '__main__':
43 | app.run(port=8888) # 指定端口号为 8000
44 |
--------------------------------------------------------------------------------
/backend/flask/core/__init__.py:
--------------------------------------------------------------------------------
1 | from .qa import QA
2 |
3 | __all__ = ["QA"]
4 |
--------------------------------------------------------------------------------
/backend/flask/core/classifier.py:
--------------------------------------------------------------------------------
1 | import json
2 | import os
3 |
4 | import jieba
5 | from sklearn.feature_extraction.text import TfidfVectorizer
6 | from sklearn.naive_bayes import MultinomialNB
7 |
8 | # print(os.getcwd())
9 | # TRAIN_DATASET_PATH = os.path.join("../data", "train.json") # 单个文件run的目录和从app.py run 的目录不一样
10 | TRAIN_DATASET_PATH = os.path.join("data", "train.json")
11 |
12 | jieba.setLogLevel("ERROR")
13 |
14 |
15 | # 在进行文本分类任务时,使用jieba对文本进行分词可以将复杂的句子拆分成独立的词汇,从而更好地表示句子的含义和特征
16 | # 提高分类准确率 cut 是分词
17 | def normalize(sentence: str):
18 | return " ".join(jieba.cut(sentence))
19 |
20 |
21 | class BaseClassifier:
22 | """
23 | 底层分类器。
24 |
25 | 使用 TF-IDF 向量化文本,然后使用朴素贝叶斯预测标签。
26 | """
27 |
28 | def __init__(self):
29 | self._vectorizer = TfidfVectorizer()
30 | self._classifier = MultinomialNB(alpha=0.01)
31 |
32 | def _train(self, x: list, y: list):
33 | X = self._vectorizer.fit_transform(x).toarray()
34 | self._classifier.fit(X, y)
35 |
36 | def _predict(self, x: list):
37 | X = self._vectorizer.transform(x).toarray()
38 | return self._classifier.predict(X)
39 |
40 |
41 | class Classifier(BaseClassifier):
42 | """
43 | 问题分类器。
44 |
45 | 根据问题中出现的关键词,将问题归于某一已知类别下。
46 | """
47 |
48 | def __init__(self):
49 | BaseClassifier.__init__(self)
50 | # question: 'nm简介' ... label: 'introduce_by_movie ...
51 | questions, labels = Classifier._read_train_dataset()
52 | self._train(questions, labels)
53 |
54 | def classify(self, sentence: str):
55 | question = normalize(sentence)
56 | # question = sentence
57 | y = self._predict([question])
58 | return y[0]
59 |
60 | @staticmethod
61 | def _read_train_dataset():
62 | with open(TRAIN_DATASET_PATH, "r", encoding="utf-8") as fr:
63 | train_dataset: dict[str, list[str]] = json.load(fr)
64 |
65 | questions = []
66 | labels = []
67 | for label, sentences in train_dataset.items():
68 | questions.extend([normalize(sentence) for sentence in sentences])
69 | # questions.extend([sentence for sentence in sentences])
70 | labels.extend([label for _ in sentences])
71 |
72 | return questions, labels
73 |
74 |
75 | if __name__ == "__main__":
76 | classifier = Classifier()
77 |
78 | while True:
79 | sentence = input("请输入问题:").strip()
80 | label = classifier.classify(sentence)
81 | print(f"问题分类:{label}")
82 |
--------------------------------------------------------------------------------
/backend/flask/core/database.py:
--------------------------------------------------------------------------------
1 | import os
2 |
3 | from neo4j import GraphDatabase
4 |
5 |
6 | class Database:
7 | """
8 | Neo4j 数据库访问层。
9 |
10 | 管理数据库连接的生命周期,并提供查询接口。
11 | """
12 |
13 | def __init__(self):
14 | uri = 'bolt://localhost:7687/neo4j'
15 | user = 'neo4j'
16 | password = 'wl070919'
17 |
18 | try:
19 | self._driver = GraphDatabase.driver(uri, auth=(user, password))
20 | self._session = self._driver.session()
21 | except Exception as e:
22 | raise Exception("数据库连接失败") from e
23 |
24 | def close(self):
25 | try:
26 | self._session.close()
27 | self._driver.close()
28 | except Exception as e:
29 | raise Exception("数据库断开失败") from e
30 |
31 | def find_one(self, query: str, **parameters):
32 | result = self._session.run(query, parameters).single()
33 | return result.value() if result else None
34 |
35 | def find_many(self, query: str, **parameters):
36 | return self._session.run(query, parameters).value()
37 |
38 | def find_movie_img(self, query: str, **parameters):
39 | result = self._session.run(query, parameters)
40 | # 提取结果
41 | introduction = None
42 | image = None
43 | for record in result:
44 | introduction = record['m.introduction']
45 | image = record['m.image']
46 | return {'introduction': introduction,
47 | 'image': image}
48 |
49 | def find_actor_img(self, query: str, **parameters):
50 | result = self._session.run(query, parameters)
51 | # 提取结果
52 | biography = None
53 | image = None
54 | for record in result:
55 | biography = record['a.biography']
56 | image = record['a.image']
57 |
58 | if biography is not None:
59 | return {'introduction': biography,
60 | 'image': image}
61 | else:
62 | return None
63 |
64 |
65 | if __name__ == "__main__":
66 | # import dotenv
67 | #
68 | # dotenv.load_dotenv()
69 |
70 | database = Database()
71 | genres = database.find_actor_img(
72 | """
73 | MATCH (a:Actor)
74 | WHERE a.name = $actor_name
75 | RETURN a.biography, a.image
76 | Limit 1
77 | """,
78 | actor_name="葛优",
79 | )
80 |
81 | database.close()
82 |
83 | print(genres)
84 |
--------------------------------------------------------------------------------
/backend/flask/core/parser.py:
--------------------------------------------------------------------------------
1 | import os
2 |
3 | import jieba
4 | import jieba.posseg as jp
5 |
6 | # print(os.getcwd())
7 | # USERDICT_PATH = os.path.join("..\\data", "userdict.txt")
8 | USERDICT_PATH = 'data\\userdict.txt'
9 |
10 | jieba.setLogLevel("ERROR")
11 | jieba.load_userdict(USERDICT_PATH)
12 |
13 |
14 | # 成龙 是 谁 ? =》 关于演员的介绍 问题分类
15 | # 拿到key ‘成龙’ !词性!
16 |
17 | class Parser:
18 | """
19 | 语句解析器。
20 |
21 | 从语句中解析出演员、电影和类型。
22 | """
23 |
24 | def __init__(self, sentence: str):
25 | self._pairs = jp.lcut(sentence)
26 |
27 | print(self._pairs)
28 |
29 | def _get_words_by_flag(self, flag: str):
30 | return [pair.word for pair in self._pairs if pair.flag == flag]
31 |
32 | @property
33 | def actors(self):
34 | return self._get_words_by_flag("nr")
35 |
36 | @property
37 | def movies(self):
38 | return self._get_words_by_flag("nm")
39 |
40 | @property
41 | def genres(self):
42 | return self._get_words_by_flag("ng")
43 |
44 |
45 | if __name__ == "__main__":
46 | while True:
47 | sentence = input("请输入语句:").strip()
48 | parser = Parser(sentence) # pair 先用jieba库进行分词操作
49 | print(f"解析成分:演员={parser.actors},电影={parser.movies},类型={parser.genres}")
50 |
--------------------------------------------------------------------------------
/backend/flask/core/qa.py:
--------------------------------------------------------------------------------
1 | from datetime import datetime
2 |
3 | from backend.core.classifier import Classifier
4 | from backend.core.database import Database
5 | from backend.core.parser import Parser
6 |
7 |
8 | class QA:
9 | _BAD_QUESTION_MESSAGE = "抱歉,我无法理解这个问题。请换个问题试试吧!"
10 | _NOT_FOUND_MESSAGE = "没有找到答案。请换个问题试试吧!"
11 |
12 | def __init__(self):
13 | self._classifer = Classifier()
14 | self._database = Database()
15 |
16 | def close(self):
17 | self._database.close()
18 |
19 | def answer(self, sentence: str):
20 | sentence = sentence.replace("·", '').replace(" ", '')
21 | print(f"问题:{sentence}")
22 |
23 | label = self._classifer.classify(sentence)
24 | print(f"类别:{label}")
25 |
26 | parser = Parser(sentence)
27 |
28 | movies = parser.movies
29 | actors = parser.actors
30 | genres = parser.genres
31 | print(f"解析成分:电影={movies},演员={actors},类型={genres}")
32 |
33 | try:
34 | if label == "introduction_by_movie":
35 | return self._get_introduction_by_movie(movies[0])
36 | elif label == "rating_by_movie":
37 | return self._get_rating_by_movie(movies[0])
38 | elif label == "release_date_by_movie":
39 | return self._get_release_date_by_movie(movies[0])
40 | elif label == "actors_by_movie":
41 | return self._get_actors_by_movie(movies[0])
42 | elif label == "genres_by_movie":
43 | return self._get_genres_by_movie(movies[0])
44 | elif label == "birthday_by_actor":
45 | return self._get_birthday_by_actor(actors[0])
46 | elif label == "birthplace_by_actor":
47 | return self._get_birthplace_by_actor(actors[0])
48 | elif label == "biography_by_actor":
49 | return self._get_biography_by_actor(actors[0])
50 | elif label == "movies_by_actor":
51 | return self._get_movies_by_actor(actors[0])
52 | elif label == "movie_num_by_actor":
53 | return self._get_movie_num_by_actor(actors[0])
54 | elif label == "actors_by_genre":
55 | return self._get_actors_by_genre(genres[0])
56 | elif label == "movies_by_actor_and_genre":
57 | return self._get_movies_by_actor_and_genre(actors[0], genres[0])
58 | elif label == 'genres_by_actor':
59 | return self._get_genres_by_actor(actors[0])
60 | else:
61 | return QA._BAD_QUESTION_MESSAGE
62 | except IndexError:
63 | return QA._BAD_QUESTION_MESSAGE
64 |
65 | def _get_introduction_by_movie(self, movie_name: str):
66 | result = self._database.find_movie_img(
67 | """
68 | MATCH (m:Movie)
69 | WHERE m.name = $movie_name
70 | RETURN m.introduction, m.image
71 | Limit 1
72 | """,
73 | movie_name=movie_name,
74 | )
75 | return result or QA._NOT_FOUND_MESSAGE
76 |
77 | def _get_rating_by_movie(self, movie_name: str):
78 | result = self._database.find_one(
79 | """
80 | MATCH (m:Movie)
81 | WHERE m.name = $movie_name
82 | RETURN m.rating
83 | """,
84 | movie_name=movie_name,
85 | )
86 | return round(result, 1) if result else QA._NOT_FOUND_MESSAGE
87 |
88 | def _get_release_date_by_movie(self, movie_name: str):
89 | result = self._database.find_one(
90 | """
91 | MATCH (m:Movie)
92 | WHERE m.name = $movie_name
93 | RETURN m.release_date
94 | """,
95 | movie_name=movie_name,
96 | )
97 | # print(result, type(result))
98 | if result and type(result) == str:
99 | return result
100 | elif result and type(result) == datetime:
101 | result.strftime("%Y/%m/%d")
102 | else:
103 | return QA._NOT_FOUND_MESSAGE
104 |
105 | def _get_actors_by_movie(self, movie_name: str):
106 | results = self._database.find_many(
107 | """
108 | MATCH (a:Actor)-[STARS_IN]->(m:Movie)
109 | WHERE m.name = $movie_name
110 | RETURN a.name
111 | """,
112 | movie_name=movie_name,
113 | )
114 | return "、".join(results) if results else QA._NOT_FOUND_MESSAGE
115 |
116 | def _get_genres_by_movie(self, movie_name: str):
117 | results = self._database.find_many(
118 | """
119 | MATCH (m:Movie)-[BELONGS_TO]->(g:Genre)
120 | WHERE m.name = $movie_name
121 | RETURN g.name
122 | """,
123 | movie_name=movie_name,
124 | )
125 | return "、".join(results) if results else QA._NOT_FOUND_MESSAGE
126 |
127 | def _get_birthday_by_actor(self, actor_name: str):
128 | result = self._database.find_one(
129 | """
130 | MATCH (a:Actor)
131 | WHERE a.name = $actor_name
132 | RETURN a.birthday
133 | """,
134 | actor_name=actor_name,
135 | )
136 | return result or QA._NOT_FOUND_MESSAGE
137 |
138 | def _get_birthplace_by_actor(self, actor_name: str):
139 | result = self._database.find_one(
140 | """
141 | MATCH (a:Actor)
142 | WHERE a.name = $actor_name
143 | RETURN a.birthplace
144 | """,
145 | actor_name=actor_name,
146 | )
147 | return result or QA._NOT_FOUND_MESSAGE
148 |
149 | def _get_biography_by_actor(self, actor_name: str):
150 | isalpha = all(ord(c) < 128 for c in actor_name)
151 | if isalpha:
152 | result = self._database.find_actor_img(
153 | """
154 | MATCH (a:Actor)
155 | WHERE a.english_name = $actor_name
156 | RETURN a.biography, a.image
157 | Limit 1
158 | """,
159 | actor_name=actor_name,
160 | )
161 | else:
162 | result = self._database.find_actor_img(
163 | """
164 | MATCH (a:Actor)
165 | WHERE a.name = $actor_name
166 | RETURN a.biography, a.image
167 | Limit 1
168 | """,
169 | actor_name=actor_name,
170 | )
171 |
172 | if result:
173 | return result
174 | else:
175 | return QA._NOT_FOUND_MESSAGE
176 |
177 | def _get_movies_by_actor(self, actor_name: str):
178 | results = self._database.find_many(
179 | """
180 | MATCH (a:Actor)-[STARS_IN]->(m:Movie)
181 | WHERE a.name = $actor_name
182 | RETURN m.name
183 | """,
184 | actor_name=actor_name,
185 | )
186 | return "、".join(results) if results else QA._NOT_FOUND_MESSAGE
187 |
188 | def _get_movie_num_by_actor(self, actor_name: str):
189 | result = self._database.find_one(
190 | """
191 | MATCH (a:Actor)-[STARS_IN]->(m:Movie)
192 | WHERE a.name = $actor_name
193 | RETURN COUNT(m)
194 | """,
195 | actor_name=actor_name,
196 | )
197 | return result or QA._NOT_FOUND_MESSAGE
198 |
199 | def _get_genres_by_actor(self, actor_name: str):
200 | results = self._database.find_many(
201 | """
202 | MATCH (a:Actor)-[STARS_IN]->(Movie)-[BELONGS_TO]->(g:Genre)
203 | WHERE a.name = $actor_name
204 | RETURN DISTINCT g.name
205 | """,
206 | actor_name=actor_name,
207 | )
208 | print('###', results)
209 | return "、".join(results) if results else QA._NOT_FOUND_MESSAGE
210 |
211 | def _get_movies_by_actor_and_genre(self, actor_name: str, genre_name: str):
212 | results = self._database.find_many(
213 | """
214 | MATCH (a:Actor)-[STARS_IN]->(m:Movie)-[BELONGS_TO]->(g:Genre)
215 | WHERE a.name = $actor_name AND g.name = $genre_name
216 | RETURN m.name, m.image
217 | """,
218 | actor_name=actor_name,
219 | genre_name=genre_name,
220 | )
221 | return "、".join(results) if results else QA._NOT_FOUND_MESSAGE
222 |
223 |
224 | if __name__ == "__main__":
225 | # import dotenv
226 |
227 | # dotenv.load_dotenv()
228 |
229 | qa = QA()
230 | while True:
231 | sentence = input("请输入问题:")
232 | print(qa.answer(sentence))
233 |
--------------------------------------------------------------------------------
/backend/flask/data/train.json:
--------------------------------------------------------------------------------
1 | {
2 | "introduction_by_movie": [
3 | "nm简介",
4 | "nm剧情简介",
5 | "nm的内容是什么",
6 | "nm讲了什么",
7 | "nm讲了什么故事",
8 | "nm演了什么",
9 | "nm的故事梗概是什么",
10 | "nm的剧情简介是什么",
11 | "nm的内容简介是什么",
12 | "nm的剧情介绍是什么",
13 | "nm的情节是什么",
14 | "nm的主要情节是什么"
15 | ],
16 | "rating_by_movie": [
17 | "nm的评分是多少",
18 | "nm得了多少分",
19 | "nm的评分有多少",
20 | "nm的评分",
21 | "nm得分是多少",
22 | "nm的分数是",
23 | "nm电影分数是多少",
24 | "nm电影评分",
25 | "nm评分",
26 | "nm的分数是多少",
27 | "nm这部电影的评分是多少"
28 | ],
29 | "release_date_by_movie": [
30 | "nm上映时间",
31 | "nm定档时间",
32 | "nm的上映时间是什么时候",
33 | "nm的首映时间是什么时候",
34 | "nm什么时候上映",
35 | "nm什么时候首映",
36 | "最早什么时候能看到nm",
37 | "nm什么时候在影院上线",
38 | "什么时候可以在影院看到nm",
39 | "nm什么时候在影院放映",
40 | "nm什么时候首播"
41 | ],
42 | "actors_by_movie": [
43 | "nm演员表",
44 | "nm的演员",
45 | "nm里都有哪些演员",
46 | "nm是谁演的",
47 | "谁演了nm",
48 | "nm有哪些演员出演",
49 | "nm是由哪些人演的",
50 | "nm中参演的演员都有哪些",
51 | "nm中哪些人演过",
52 | "nm这部电影的演员都有哪些",
53 | "nm这部电影中哪些人演过"
54 | ],
55 | "genres_by_movie": [
56 | "nm电影类型",
57 | "nm电影类别",
58 | "nm的电影类型是什么",
59 | "nm的电影类别是什么",
60 | "nm属于什么类的电影",
61 | "nm属于哪种类型的电影",
62 | "nm的风格是什么",
63 | "nm是什么风格的电影",
64 | "nm的格调是什么",
65 | "nm是什么格调的电影",
66 | "nm是什么类型的电影",
67 | "nm的类型是什么",
68 | "nm是什么类型的"
69 | ],
70 | "birthday_by_actor": [
71 | "nr的出生日期",
72 | "nr的生日",
73 | "nr生日多少",
74 | "nr的出生是什么时候",
75 | "nr的出生是多少",
76 | "nr生日是什么时候",
77 | "nr生日什么时候",
78 | "nr什么时候过生日",
79 | "nr出生日期是什么时候",
80 | "nr什么时候出生的",
81 | "nr出生于哪一天",
82 | "nr的出生日期是哪一天",
83 | "nr哪一天出生的"
84 | ],
85 | "birthplace_by_actor": [
86 | "nr的出生地",
87 | "nr的家乡",
88 | "nr的籍贯",
89 | "nr来自哪里",
90 | "nr是哪里人",
91 | "nr老家在哪",
92 | "nr的家乡是哪里",
93 | "nr的籍贯是哪里",
94 | "nr是哪个省的",
95 | "nr在哪里出生"
96 | ],
97 | "biography_by_actor": [
98 | "nr",
99 | "nr",
100 | "nr",
101 | "nr",
102 | "nr",
103 | "演员nr",
104 | "nr人物介绍",
105 | "nr人物信息",
106 | "介绍一下nr",
107 | "nr是",
108 | "nr是谁",
109 | "nr的介绍",
110 | "nr的简介",
111 | "谁是nr",
112 | "nr的详细信息",
113 | "nr的信息"
114 | ],
115 | "movies_by_actor": [
116 | "nr的作品有哪些",
117 | "nr演过什么",
118 | "nr演了什么电影",
119 | "nr演了什么作品",
120 | "nr代表作",
121 | "nr出演了什么电影",
122 | "nr演过什么电影",
123 | "nr拍过什么电影",
124 | "nr拍过哪些电影",
125 | "nr演过哪些电影",
126 | "nr过去演过哪些电影",
127 | "nr以前演过哪些电影",
128 | "nr演过的电影有什么",
129 | "nr有哪些电影"
130 | ],
131 | "movie_num_by_actor": [
132 | "nr演了多少电影",
133 | "nr演了多少部电影",
134 | "nr演过多少电影",
135 | "nr演过多少部电影",
136 | "nr一共参演过多少电影",
137 | "nr参演的电影有多少"
138 | ],
139 | "genres_by_actor": [
140 | "nr演了哪些类型的电影",
141 | "nr演了哪些种类的电影",
142 | "nr演了哪些风格的电影",
143 | "nr演过哪些类型的电影",
144 | "nr演过哪些种类的电影",
145 | "nr演过哪些风格的电影",
146 | "nr演过的电影都有哪些风格",
147 | "nr演过的电影有哪些类型",
148 | "nr演过风格的电影",
149 | "nr演过类型的电影",
150 | "nr演过题材的电影"
151 | ],
152 | "movies_by_actor_and_genre": [
153 | "nr演过哪些ng类电影",
154 | "nr演哪些ng类电影",
155 | "nr演过ng类电影",
156 | "nr演过什么ng类电影",
157 | "nr演过ng类电影",
158 | "nr演过的ng类电影有哪些",
159 | "nr出演的ng类电影有哪些"
160 | ]
161 | }
162 |
--------------------------------------------------------------------------------
/backend/flask/test/test.py:
--------------------------------------------------------------------------------
1 | import jieba
2 | from jieba import posseg
3 | from sklearn.feature_extraction.text import TfidfVectorizer
4 |
5 |
6 | def jiebaTest():
7 | USERDICT_PATH = "userdict.txt" # xxx 词性 格式的文件
8 |
9 | jieba.setLogLevel("ERROR")
10 | jieba.load_userdict(USERDICT_PATH)
11 |
12 | sentence = "成龙演了什么喜剧?"
13 |
14 | # 使用jieba.posseg 进行词性标注,提前 导入演员、电影和题材 所指定的词性
15 | pairs = posseg.lcut(sentence)
16 | print(pairs)
17 |
18 |
19 | # 进行文本分类时,使用jieba.cut 进行分词能够提升分类效果!
20 | # 已测试
21 |
22 | # TF-IDF 词频TF-逆向文档频率IDF 逆向文档频率IDF为了惩罚无意义的词,例如的、了、我们、都 等等...
23 | # 词频表示词出现的次数, 逆向文档频率是衡量一个词在整个文本集合中的重要程度 IDF = log(N/n) N=总的文档数,n=词出现的文档数
24 | # 若n非常常见,极端N=n => log1 = 0 若 n = N/2 => log2 > 0 n出现的越少,越有区别性
25 | # TF-IDF = TF x IDF 作用:一个词预测主题的能力
26 | def tfidfTest():
27 | texts = ["大大 小小 大大 大大 嘻嘻 哈哈 梦想 张三", "小小 大大 大大 大大 哈哈 嘻嘻 李四", "嘻嘻 哈哈 小小 大大 大大 大大 王五"]
28 | # texts = ["This is the first document.", "This is the second document."]
29 | tf_idf = TfidfVectorizer()
30 | trans = tf_idf.fit_transform(texts)
31 | feature_list = tf_idf.get_feature_names_out()
32 | weight = trans.toarray()
33 | print(feature_list)
34 | print(weight)
35 |
36 |
37 | # 训练数据使用占位符,或许时降低占位符对分类的影响?
38 |
39 |
40 | if __name__ == '__main__':
41 | # jiebaTest()
42 | tfidfTest()
43 |
44 |
45 | # QA System
46 | # Question class
47 | # 文本分类 成龙是谁? => 预处理 [分词(使用空格间隔开) + TD-IDF向量化] => 分类模型 => 问题类型:演员简介
48 | # 词性标注, 句子 => 分词+按照自定义的词性标,pair再拿出需要的标记, 此步骤的目的是拿到查询的key
49 | # 根据问题和查询的key,在图数据库中进行查询
50 |
--------------------------------------------------------------------------------
/backend/flask/test/userdict.txt:
--------------------------------------------------------------------------------
1 | 卧虎藏龙 nm
2 | 肖申克的救赎 nm
3 | 成龙 nr
4 | 喜剧 ng
--------------------------------------------------------------------------------
/backend/spider/database_1000/genre.csv:
--------------------------------------------------------------------------------
1 | id,name
2 | 0,剧情
3 | 1,爱情
4 | 2,同性
5 | 3,犯罪
6 | 4,动作
7 | 5,悬疑
8 | 6,惊悚
9 | 7,喜剧
10 | 8,科幻
11 | 9,历史
12 | 10,战争
13 | 11,冒险
14 | 12,动画
15 | 13,奇幻
16 | 14,家庭
17 | 15,灾难
18 | 16,音乐
19 | 17,情色
20 | 18,传记
21 | 19,歌舞
22 | 20,恐怖
23 | 21,武侠
24 | 22,古装
25 | 23,西部
26 | 24,儿童
27 | 25,黑色电影
28 | 26,运动
29 | 27,纪录片
30 |
--------------------------------------------------------------------------------
/backend/spider/database_1000/movie_genre.csv:
--------------------------------------------------------------------------------
1 | movie_id,genre_id
2 | 0,0
3 | 0,1
4 | 0,2
5 | 1,0
6 | 1,3
7 | 2,0
8 | 2,4
9 | 2,3
10 | 3,0
11 | 3,4
12 | 3,5
13 | 3,6
14 | 4,0
15 | 4,7
16 | 4,1
17 | 5,0
18 | 5,7
19 | 5,3
20 | 6,0
21 | 6,1
22 | 7,0
23 | 7,5
24 | 7,6
25 | 8,0
26 | 8,8
27 | 8,3
28 | 9,0
29 | 9,9
30 | 9,10
31 | 10,0
32 | 10,8
33 | 10,5
34 | 10,11
35 | 11,0
36 | 11,12
37 | 11,13
38 | 12,0
39 | 12,7
40 | 12,1
41 | 12,10
42 | 13,0
43 | 13,3
44 | 14,0
45 | 14,1
46 | 14,2
47 | 14,14
48 | 15,0
49 | 15,1
50 | 15,15
51 | 16,0
52 | 16,16
53 | 17,0
54 | 17,1
55 | 18,0
56 | 18,1
57 | 18,2
58 | 19,0
59 | 19,1
60 | 20,0
61 | 20,6
62 | 20,3
63 | 21,8
64 | 21,12
65 | 21,11
66 | 22,0
67 | 22,5
68 | 22,6
69 | 22,3
70 | 23,0
71 | 23,1
72 | 23,9
73 | 23,10
74 | 24,0
75 | 25,0
76 | 25,3
77 | 26,0
78 | 26,5
79 | 26,6
80 | 26,3
81 | 27,0
82 | 27,1
83 | 28,8
84 | 28,6
85 | 28,11
86 | 29,0
87 | 29,8
88 | 30,0
89 | 30,17
90 | 30,10
91 | 31,0
92 | 31,1
93 | 31,14
94 | 32,0
95 | 32,1
96 | 33,0
97 | 33,16
98 | 34,0
99 | 34,1
100 | 34,8
101 | 35,4
102 | 35,8
103 | 36,0
104 | 36,1
105 | 37,0
106 | 37,7
107 | 37,1
108 | 38,0
109 | 38,1
110 | 38,2
111 | 39,0
112 | 39,1
113 | 39,14
114 | 40,0
115 | 40,18
116 | 41,0
117 | 41,19
118 | 42,0
119 | 42,3
120 | 43,0
121 | 43,7
122 | 43,3
123 | 44,0
124 | 44,3
125 | 45,0
126 | 45,16
127 | 45,18
128 | 45,10
129 | 46,0
130 | 46,3
131 | 47,0
132 | 47,7
133 | 47,1
134 | 48,0
135 | 48,1
136 | 48,13
137 | 49,0
138 | 49,6
139 | 50,0
140 | 50,1
141 | 51,0
142 | 51,8
143 | 51,5
144 | 51,6
145 | 52,0
146 | 52,7
147 | 52,1
148 | 53,0
149 | 53,1
150 | 54,0
151 | 54,5
152 | 55,0
153 | 55,1
154 | 55,10
155 | 56,0
156 | 56,5
157 | 56,6
158 | 57,0
159 | 58,5
160 | 58,6
161 | 58,20
162 | 59,0
163 | 59,14
164 | 59,13
165 | 59,11
166 | 60,0
167 | 61,0
168 | 61,1
169 | 61,13
170 | 62,0
171 | 62,5
172 | 62,3
173 | 63,0
174 | 63,1
175 | 63,10
176 | 64,0
177 | 64,7
178 | 64,1
179 | 65,0
180 | 65,3
181 | 65,13
182 | 66,0
183 | 66,5
184 | 67,12
185 | 67,13
186 | 67,11
187 | 68,0
188 | 68,3
189 | 69,0
190 | 69,5
191 | 70,0
192 | 70,5
193 | 70,6
194 | 71,0
195 | 71,7
196 | 72,0
197 | 72,4
198 | 72,18
199 | 72,9
200 | 72,10
201 | 73,0
202 | 73,7
203 | 73,12
204 | 73,11
205 | 74,0
206 | 74,4
207 | 74,8
208 | 74,6
209 | 74,3
210 | 75,0
211 | 75,4
212 | 75,1
213 | 75,21
214 | 75,22
215 | 76,0
216 | 76,7
217 | 76,12
218 | 77,0
219 | 77,4
220 | 77,13
221 | 77,11
222 | 78,0
223 | 78,1
224 | 79,0
225 | 80,0
226 | 80,5
227 | 80,6
228 | 81,0
229 | 81,7
230 | 81,1
231 | 81,19
232 | 82,0
233 | 82,4
234 | 82,5
235 | 82,6
236 | 82,3
237 | 83,0
238 | 83,4
239 | 83,5
240 | 83,6
241 | 84,0
242 | 84,5
243 | 84,6
244 | 84,3
245 | 85,20
246 | 86,0
247 | 87,0
248 | 87,13
249 | 87,11
250 | 88,0
251 | 88,1
252 | 89,0
253 | 89,14
254 | 89,9
255 | 90,0
256 | 90,1
257 | 90,17
258 | 91,0
259 | 91,10
260 | 92,0
261 | 93,4
262 | 93,6
263 | 93,3
264 | 94,7
265 | 94,1
266 | 94,13
267 | 94,22
268 | 95,0
269 | 95,18
270 | 95,11
271 | 96,0
272 | 96,6
273 | 96,3
274 | 97,0
275 | 97,7
276 | 97,14
277 | 98,0
278 | 99,0
279 | 99,14
280 | 100,0
281 | 101,0
282 | 101,3
283 | 102,0
284 | 102,7
285 | 103,0
286 | 103,3
287 | 104,0
288 | 104,4
289 | 104,11
290 | 105,0
291 | 105,3
292 | 106,0
293 | 106,7
294 | 106,1
295 | 107,0
296 | 107,19
297 | 108,0
298 | 108,1
299 | 108,16
300 | 109,0
301 | 109,5
302 | 109,6
303 | 110,0
304 | 110,14
305 | 110,18
306 | 111,0
307 | 112,0
308 | 112,3
309 | 113,0
310 | 113,1
311 | 113,19
312 | 113,18
313 | 114,0
314 | 114,6
315 | 115,0
316 | 115,1
317 | 116,0
318 | 116,7
319 | 116,1
320 | 117,0
321 | 117,5
322 | 117,6
323 | 118,0
324 | 118,14
325 | 118,11
326 | 119,0
327 | 119,1
328 | 119,17
329 | 120,0
330 | 120,14
331 | 121,0
332 | 121,8
333 | 121,11
334 | 122,0
335 | 122,4
336 | 122,13
337 | 122,11
338 | 123,0
339 | 123,7
340 | 123,11
341 | 124,0
342 | 124,1
343 | 124,16
344 | 125,0
345 | 125,1
346 | 126,0
347 | 126,18
348 | 126,9
349 | 127,7
350 | 127,1
351 | 127,19
352 | 128,0
353 | 129,8
354 | 129,6
355 | 130,4
356 | 130,8
357 | 130,11
358 | 131,0
359 | 131,1
360 | 131,5
361 | 131,10
362 | 132,0
363 | 132,3
364 | 133,0
365 | 133,7
366 | 133,1
367 | 133,2
368 | 133,14
369 | 134,0
370 | 134,1
371 | 134,8
372 | 134,12
373 | 135,0
374 | 135,10
375 | 136,12
376 | 136,13
377 | 136,11
378 | 137,0
379 | 137,1
380 | 138,0
381 | 138,1
382 | 139,0
383 | 139,1
384 | 139,2
385 | 140,0
386 | 140,18
387 | 140,11
388 | 141,0
389 | 141,7
390 | 141,4
391 | 141,23
392 | 142,0
393 | 142,8
394 | 143,0
395 | 143,7
396 | 144,0
397 | 144,3
398 | 145,0
399 | 145,7
400 | 145,10
401 | 146,0
402 | 146,16
403 | 146,18
404 | 146,9
405 | 147,0
406 | 147,1
407 | 147,12
408 | 148,5
409 | 148,6
410 | 148,20
411 | 149,0
412 | 149,1
413 | 150,4
414 | 150,6
415 | 150,3
416 | 151,0
417 | 151,1
418 | 151,2
419 | 152,5
420 | 152,6
421 | 153,0
422 | 153,18
423 | 154,0
424 | 154,6
425 | 154,3
426 | 155,0
427 | 155,10
428 | 155,13
429 | 156,0
430 | 157,0
431 | 157,1
432 | 157,13
433 | 158,0
434 | 158,1
435 | 158,21
436 | 159,0
437 | 159,6
438 | 159,3
439 | 160,4
440 | 160,6
441 | 160,3
442 | 161,0
443 | 161,6
444 | 162,0
445 | 162,7
446 | 162,1
447 | 163,0
448 | 163,24
449 | 163,11
450 | 164,0
451 | 164,1
452 | 164,13
453 | 165,0
454 | 165,1
455 | 166,0
456 | 166,7
457 | 166,1
458 | 167,0
459 | 167,18
460 | 167,9
461 | 168,0
462 | 168,19
463 | 168,14
464 | 168,24
465 | 169,0
466 | 169,2
467 | 169,16
468 | 170,0
469 | 170,14
470 | 170,24
471 | 171,0
472 | 171,7
473 | 172,0
474 | 172,1
475 | 172,8
476 | 173,0
477 | 173,4
478 | 173,3
479 | 174,0
480 | 174,1
481 | 174,3
482 | 175,0
483 | 175,12
484 | 175,10
485 | 176,0
486 | 176,1
487 | 176,5
488 | 177,5
489 | 177,6
490 | 177,3
491 | 178,0
492 | 178,1
493 | 178,17
494 | 178,18
495 | 179,0
496 | 179,1
497 | 179,16
498 | 180,0
499 | 180,1
500 | 180,3
501 | 181,1
502 | 181,5
503 | 181,6
504 | 182,12
505 | 182,13
506 | 182,11
507 | 183,0
508 | 183,1
509 | 183,13
510 | 184,0
511 | 184,1
512 | 185,0
513 | 185,1
514 | 185,2
515 | 186,8
516 | 186,12
517 | 186,5
518 | 186,6
519 | 187,12
520 | 187,13
521 | 187,11
522 | 188,0
523 | 188,8
524 | 189,0
525 | 189,9
526 | 190,0
527 | 191,0
528 | 191,10
529 | 192,0
530 | 192,2
531 | 193,0
532 | 194,0
533 | 194,8
534 | 195,0
535 | 196,0
536 | 196,7
537 | 196,1
538 | 197,0
539 | 197,7
540 | 197,16
541 | 198,7
542 | 198,1
543 | 198,13
544 | 198,22
545 | 199,0
546 | 200,0
547 | 200,9
548 | 201,8
549 | 201,5
550 | 201,6
551 | 202,4
552 | 202,18
553 | 202,3
554 | 203,0
555 | 203,1
556 | 203,10
557 | 203,23
558 | 204,0
559 | 204,2
560 | 204,18
561 | 204,10
562 | 205,0
563 | 205,1
564 | 205,13
565 | 206,8
566 | 206,5
567 | 206,6
568 | 207,0
569 | 207,16
570 | 208,0
571 | 208,16
572 | 209,0
573 | 209,16
574 | 209,18
575 | 210,6
576 | 210,3
577 | 211,0
578 | 211,5
579 | 211,6
580 | 212,0
581 | 212,14
582 | 213,0
583 | 213,25
584 | 214,0
585 | 214,14
586 | 215,0
587 | 215,6
588 | 215,3
589 | 216,0
590 | 216,18
591 | 216,3
592 | 217,0
593 | 217,1
594 | 217,18
595 | 218,0
596 | 218,6
597 | 218,3
598 | 219,0
599 | 219,9
600 | 219,10
601 | 220,0
602 | 220,7
603 | 220,1
604 | 221,4
605 | 221,8
606 | 221,11
607 | 222,8
608 | 222,5
609 | 222,6
610 | 223,0
611 | 223,6
612 | 223,13
613 | 224,0
614 | 224,8
615 | 224,5
616 | 225,0
617 | 225,4
618 | 225,13
619 | 225,11
620 | 226,0
621 | 227,12
622 | 227,19
623 | 227,11
624 | 228,0
625 | 228,8
626 | 229,0
627 | 229,1
628 | 229,13
629 | 229,22
630 | 230,7
631 | 230,12
632 | 230,13
633 | 230,11
634 | 231,0
635 | 231,7
636 | 232,7
637 | 232,20
638 | 233,0
639 | 233,7
640 | 234,5
641 | 234,6
642 | 234,20
643 | 235,0
644 | 235,1
645 | 235,2
646 | 236,0
647 | 236,5
648 | 236,6
649 | 236,3
650 | 237,0
651 | 238,0
652 | 238,7
653 | 238,1
654 | 238,13
655 | 239,4
656 | 239,8
657 | 239,11
658 | 240,0
659 | 240,4
660 | 240,11
661 | 241,0
662 | 241,1
663 | 242,0
664 | 242,1
665 | 242,3
666 | 243,0
667 | 243,5
668 | 243,20
669 | 244,0
670 | 244,18
671 | 244,26
672 | 245,0
673 | 246,0
674 | 246,1
675 | 246,14
676 | 247,0
677 | 247,14
678 | 248,0
679 | 249,0
680 | 249,7
681 | 249,1
682 | 249,13
683 | 250,0
684 | 250,4
685 | 250,8
686 | 250,6
687 | 251,0
688 | 251,5
689 | 251,6
690 | 251,3
691 | 252,0
692 | 252,1
693 | 252,17
694 | 253,0
695 | 253,1
696 | 253,2
697 | 254,0
698 | 254,18
699 | 254,9
700 | 254,10
701 | 255,8
702 | 255,6
703 | 255,20
704 | 256,0
705 | 256,8
706 | 256,5
707 | 256,6
708 | 257,0
709 | 257,6
710 | 257,3
711 | 257,25
712 | 258,0
713 | 258,7
714 | 258,1
715 | 259,0
716 | 259,14
717 | 260,12
718 | 260,6
719 | 260,13
720 | 261,0
721 | 262,0
722 | 262,7
723 | 262,1
724 | 263,0
725 | 263,7
726 | 264,0
727 | 264,23
728 | 264,11
729 | 265,0
730 | 265,7
731 | 265,1
732 | 266,7
733 | 266,12
734 | 266,13
735 | 267,0
736 | 267,7
737 | 268,5
738 | 268,6
739 | 268,25
740 | 269,7
741 | 269,4
742 | 269,11
743 | 270,0
744 | 270,1
745 | 271,8
746 | 271,6
747 | 271,20
748 | 272,7
749 | 272,13
750 | 272,21
751 | 272,22
752 | 273,0
753 | 273,3
754 | 274,0
755 | 274,14
756 | 275,1
757 | 276,0
758 | 276,7
759 | 276,1
760 | 277,0
761 | 277,1
762 | 278,0
763 | 279,0
764 | 279,1
765 | 280,0
766 | 280,12
767 | 280,18
768 | 281,4
769 | 281,5
770 | 281,6
771 | 281,3
772 | 282,0
773 | 282,4
774 | 282,1
775 | 282,18
776 | 283,8
777 | 283,6
778 | 283,15
779 | 284,0
780 | 284,26
781 | 285,0
782 | 285,1
783 | 285,12
784 | 286,0
785 | 286,4
786 | 286,23
787 | 286,11
788 | 287,7
789 | 288,0
790 | 288,1
791 | 288,10
792 | 289,0
793 | 289,13
794 | 290,1
795 | 290,13
796 | 290,21
797 | 290,22
798 | 291,0
799 | 291,1
800 | 291,6
801 | 291,17
802 | 292,0
803 | 292,4
804 | 293,0
805 | 293,1
806 | 293,2
807 | 293,18
808 | 294,0
809 | 294,1
810 | 294,12
811 | 295,0
812 | 296,0
813 | 296,8
814 | 296,5
815 | 297,0
816 | 297,6
817 | 297,3
818 | 298,4
819 | 298,8
820 | 299,0
821 | 300,0
822 | 300,7
823 | 301,0
824 | 301,1
825 | 302,0
826 | 302,1
827 | 302,18
828 | 302,11
829 | 303,0
830 | 303,3
831 | 304,0
832 | 304,6
833 | 305,0
834 | 305,1
835 | 306,19
836 | 306,13
837 | 306,11
838 | 307,7
839 | 307,4
840 | 307,8
841 | 307,12
842 | 307,11
843 | 308,0
844 | 308,5
845 | 308,20
846 | 309,7
847 | 309,12
848 | 309,11
849 | 310,0
850 | 310,5
851 | 310,6
852 | 311,0
853 | 311,8
854 | 311,6
855 | 312,0
856 | 312,1
857 | 312,19
858 | 313,23
859 | 313,11
860 | 314,0
861 | 314,7
862 | 314,1
863 | 315,0
864 | 315,7
865 | 315,3
866 | 316,0
867 | 316,5
868 | 316,6
869 | 316,17
870 | 317,7
871 | 317,1
872 | 317,13
873 | 318,0
874 | 318,18
875 | 318,3
876 | 319,0
877 | 319,7
878 | 319,3
879 | 320,0
880 | 320,5
881 | 321,0
882 | 321,6
883 | 322,0
884 | 322,7
885 | 322,1
886 | 322,5
887 | 323,0
888 | 323,5
889 | 323,3
890 | 324,0
891 | 324,7
892 | 324,1
893 | 325,0
894 | 325,1
895 | 325,5
896 | 325,3
897 | 326,4
898 | 326,13
899 | 326,11
900 | 327,0
901 | 327,4
902 | 327,3
903 | 328,12
904 | 328,13
905 | 328,11
906 | 329,12
907 | 329,13
908 | 329,11
909 | 330,0
910 | 330,10
911 | 331,0
912 | 331,5
913 | 331,3
914 | 332,12
915 | 332,13
916 | 332,11
917 | 333,0
918 | 333,3
919 | 334,0
920 | 334,1
921 | 334,18
922 | 335,0
923 | 335,5
924 | 335,6
925 | 336,0
926 | 336,7
927 | 336,1
928 | 337,0
929 | 337,7
930 | 338,0
931 | 339,7
932 | 339,12
933 | 339,11
934 | 340,0
935 | 340,1
936 | 341,7
937 | 341,4
938 | 341,3
939 | 342,0
940 | 342,1
941 | 342,17
942 | 343,0
943 | 344,0
944 | 344,2
945 | 345,0
946 | 345,5
947 | 345,6
948 | 345,3
949 | 346,4
950 | 346,8
951 | 346,13
952 | 346,11
953 | 347,0
954 | 347,1
955 | 347,13
956 | 348,0
957 | 348,1
958 | 349,8
959 | 349,5
960 | 349,6
961 | 350,0
962 | 350,10
963 | 351,7
964 | 351,12
965 | 351,11
966 | 352,0
967 | 352,1
968 | 353,0
969 | 353,1
970 | 354,0
971 | 354,7
972 | 354,1
973 | 355,0
974 | 355,7
975 | 355,1
976 | 356,7
977 | 356,3
978 | 357,27
979 | 358,0
980 | 358,14
981 | 359,0
982 | 359,14
983 | 360,0
984 | 360,4
985 | 360,8
986 | 360,6
987 | 360,3
988 | 361,5
989 | 361,6
990 | 361,3
991 | 362,7
992 | 362,1
993 | 363,0
994 | 363,2
995 | 363,18
996 | 364,0
997 | 364,21
998 | 364,22
999 | 365,1
1000 | 365,20
1001 | 365,13
1002 | 366,0
1003 | 366,12
1004 | 366,13
1005 | 367,0
1006 | 367,7
1007 | 367,1
1008 | 368,0
1009 | 368,5
1010 | 368,3
1011 | 369,7
1012 | 369,1
1013 | 370,0
1014 | 370,1
1015 | 371,7
1016 | 371,8
1017 | 371,12
1018 | 371,14
1019 | 371,11
1020 | 372,0
1021 | 372,7
1022 | 372,24
1023 | 373,7
1024 | 373,12
1025 | 373,24
1026 | 373,13
1027 | 373,11
1028 | 374,0
1029 | 374,7
1030 | 374,1
1031 | 375,0
1032 | 375,4
1033 | 375,3
1034 | 376,0
1035 | 376,5
1036 | 376,3
1037 | 376,13
1038 | 377,4
1039 | 377,8
1040 | 377,12
1041 | 378,4
1042 | 378,8
1043 | 378,12
1044 | 379,0
1045 | 379,7
1046 | 379,1
1047 | 380,7
1048 | 380,1
1049 | 380,16
1050 | 381,0
1051 | 381,1
1052 | 382,0
1053 | 382,7
1054 | 382,13
1055 | 382,11
1056 | 383,0
1057 | 383,1
1058 | 384,0
1059 | 384,1
1060 | 384,3
1061 | 385,0
1062 | 385,1
1063 | 385,19
1064 | 386,0
1065 | 386,1
1066 | 386,18
1067 | 387,0
1068 | 387,7
1069 | 387,1
1070 | 388,0
1071 | 389,0
1072 | 389,8
1073 | 390,7
1074 | 390,19
1075 | 390,3
1076 | 391,7
1077 | 391,13
1078 | 392,0
1079 | 392,1
1080 | 392,5
1081 | 392,3
1082 | 393,0
1083 | 393,7
1084 | 393,1
1085 | 394,0
1086 | 394,1
1087 | 394,2
1088 | 395,0
1089 | 395,23
1090 | 396,0
1091 | 396,2
1092 | 397,0
1093 | 397,12
1094 | 397,13
1095 | 398,7
1096 | 398,14
1097 | 398,24
1098 | 399,0
1099 | 399,1
1100 | 399,9
1101 | 399,10
1102 | 400,4
1103 | 400,8
1104 | 400,6
1105 | 400,11
1106 | 401,0
1107 | 402,0
1108 | 402,7
1109 | 402,1
1110 | 403,0
1111 | 403,3
1112 | 404,0
1113 | 404,1
1114 | 404,5
1115 | 405,0
1116 | 405,24
1117 | 406,4
1118 | 406,5
1119 | 406,6
1120 | 407,5
1121 | 407,6
1122 | 407,11
1123 | 408,0
1124 | 408,10
1125 | 409,0
1126 | 409,2
1127 | 409,10
1128 | 410,7
1129 | 410,8
1130 | 410,11
1131 | 411,0
1132 | 411,5
1133 | 411,6
1134 | 411,3
1135 | 411,25
1136 | 412,0
1137 | 412,1
1138 | 412,2
1139 | 413,0
1140 | 413,14
1141 | 413,18
1142 | 414,0
1143 | 414,1
1144 | 414,17
1145 | 415,0
1146 | 415,1
1147 | 415,6
1148 | 415,17
1149 | 416,7
1150 | 416,3
1151 | 417,0
1152 | 417,1
1153 | 417,14
1154 | 418,0
1155 | 418,10
1156 | 419,0
1157 | 419,4
1158 | 419,9
1159 | 419,10
1160 | 419,11
1161 | 420,0
1162 | 420,7
1163 | 420,1
1164 | 421,0
1165 | 421,18
1166 | 421,11
1167 | 422,4
1168 | 422,6
1169 | 422,15
1170 | 423,0
1171 | 423,13
1172 | 424,0
1173 | 424,1
1174 | 425,0
1175 | 425,9
1176 | 425,10
1177 | 426,0
1178 | 426,14
1179 | 427,0
1180 | 427,7
1181 | 427,1
1182 | 428,0
1183 | 429,0
1184 | 429,7
1185 | 429,1
1186 | 430,0
1187 | 430,2
1188 | 430,14
1189 | 430,18
1190 | 431,0
1191 | 431,1
1192 | 431,16
1193 | 431,18
1194 | 432,7
1195 | 432,13
1196 | 432,11
1197 | 433,0
1198 | 433,6
1199 | 433,3
1200 | 434,0
1201 | 434,1
1202 | 434,10
1203 | 435,0
1204 | 435,1
1205 | 435,16
1206 | 436,0
1207 | 436,6
1208 | 436,10
1209 | 436,3
1210 | 437,7
1211 | 437,12
1212 | 438,7
1213 | 438,1
1214 | 439,0
1215 | 439,17
1216 | 440,0
1217 | 440,1
1218 | 440,8
1219 | 440,13
1220 | 441,0
1221 | 441,8
1222 | 441,11
1223 | 442,0
1224 | 442,3
1225 | 443,0
1226 | 443,2
1227 | 443,18
1228 | 444,0
1229 | 444,5
1230 | 444,6
1231 | 444,18
1232 | 444,3
1233 | 445,0
1234 | 445,1
1235 | 445,20
1236 | 446,0
1237 | 446,18
1238 | 446,9
1239 | 446,10
1240 | 447,0
1241 | 447,10
1242 | 447,13
1243 | 448,0
1244 | 448,9
1245 | 449,0
1246 | 449,7
1247 | 449,3
1248 | 450,13
1249 | 450,11
1250 | 451,0
1251 | 452,7
1252 | 452,1
1253 | 453,0
1254 | 454,0
1255 | 454,2
1256 | 455,0
1257 | 455,6
1258 | 455,11
1259 | 456,0
1260 | 456,1
1261 | 457,7
1262 | 457,12
1263 | 457,14
1264 | 458,0
1265 | 458,13
1266 | 459,5
1267 | 459,20
1268 | 460,0
1269 | 460,14
1270 | 461,0
1271 | 461,1
1272 | 462,0
1273 | 462,3
1274 | 463,12
1275 | 463,13
1276 | 463,11
1277 | 464,20
1278 | 465,0
1279 | 465,1
1280 | 465,6
1281 | 465,3
1282 | 466,0
1283 | 466,5
1284 | 466,6
1285 | 466,2
1286 | 466,3
1287 | 467,0
1288 | 467,7
1289 | 467,1
1290 | 468,0
1291 | 469,1
1292 | 470,0
1293 | 470,5
1294 | 471,0
1295 | 472,12
1296 | 472,13
1297 | 472,11
1298 | 473,0
1299 | 473,18
1300 | 473,9
1301 | 474,7
1302 | 474,4
1303 | 474,12
1304 | 474,11
1305 | 475,0
1306 | 475,1
1307 | 476,0
1308 | 476,6
1309 | 476,9
1310 | 477,0
1311 | 478,0
1312 | 478,1
1313 | 478,10
1314 | 479,0
1315 | 479,1
1316 | 479,13
1317 | 480,0
1318 | 480,14
1319 | 481,0
1320 | 481,1
1321 | 481,5
1322 | 482,0
1323 | 482,9
1324 | 482,10
1325 | 483,0
1326 | 484,0
1327 | 484,18
1328 | 484,9
1329 | 484,10
1330 | 485,0
1331 | 485,7
1332 | 485,3
1333 | 486,0
1334 | 486,18
1335 | 486,9
1336 | 486,10
1337 | 487,0
1338 | 487,6
1339 | 487,3
1340 | 488,0
1341 | 488,5
1342 | 488,6
1343 | 488,18
1344 | 488,9
1345 | 489,7
1346 | 489,12
1347 | 489,11
1348 | 490,0
1349 | 491,0
1350 | 491,1
1351 | 491,3
1352 | 492,0
1353 | 492,6
1354 | 493,0
1355 | 493,1
1356 | 494,0
1357 | 495,0
1358 | 495,24
1359 | 495,13
1360 | 495,11
1361 | 496,0
1362 | 496,1
1363 | 496,10
1364 | 497,0
1365 | 497,3
1366 | 497,23
1367 | 498,0
1368 | 498,1
1369 | 499,5
1370 | 499,20
1371 | 499,3
1372 | 500,0
1373 | 500,8
1374 | 500,5
1375 | 501,0
1376 | 501,14
1377 | 502,0
1378 | 502,1
1379 | 503,13
1380 | 503,11
1381 | 504,0
1382 | 505,6
1383 | 505,20
1384 | 505,11
1385 | 506,20
1386 | 507,7
1387 | 507,4
1388 | 507,3
1389 | 507,13
1390 | 508,1
1391 | 508,16
1392 | 508,13
1393 | 509,0
1394 | 509,8
1395 | 509,5
1396 | 510,0
1397 | 510,3
1398 | 510,23
1399 | 510,11
1400 | 511,0
1401 | 511,23
1402 | 512,0
1403 | 512,5
1404 | 512,3
1405 | 513,0
1406 | 513,5
1407 | 513,3
1408 | 514,0
1409 | 515,0
1410 | 515,7
1411 | 515,4
1412 | 515,3
1413 | 516,0
1414 | 516,1
1415 | 517,7
1416 | 517,5
1417 | 517,3
1418 | 518,0
1419 | 518,1
1420 | 519,0
1421 | 519,1
1422 | 520,0
1423 | 520,20
1424 | 521,0
1425 | 522,4
1426 | 522,5
1427 | 522,6
1428 | 523,0
1429 | 523,7
1430 | 523,11
1431 | 524,7
1432 | 524,12
1433 | 524,11
1434 | 525,0
1435 | 525,1
1436 | 526,0
1437 | 526,14
1438 | 527,0
1439 | 528,27
1440 | 529,4
1441 | 529,1
1442 | 529,21
1443 | 529,22
1444 | 530,0
1445 | 530,1
1446 | 530,6
1447 | 531,0
1448 | 531,5
1449 | 531,6
1450 | 532,0
1451 | 532,5
1452 | 532,3
1453 | 533,4
1454 | 533,13
1455 | 533,11
1456 | 534,0
1457 | 534,1
1458 | 534,14
1459 | 535,0
1460 | 535,6
1461 | 535,3
1462 | 536,0
1463 | 536,6
1464 | 536,3
1465 | 537,0
1466 | 538,0
1467 | 538,18
1468 | 539,0
1469 | 539,17
1470 | 540,8
1471 | 540,6
1472 | 540,11
1473 | 541,0
1474 | 541,7
1475 | 542,0
1476 | 542,7
1477 | 543,7
1478 | 543,12
1479 | 543,19
1480 | 543,13
1481 | 544,0
1482 | 544,1
1483 | 544,18
1484 | 545,0
1485 | 545,1
1486 | 546,0
1487 | 546,9
1488 | 547,0
1489 | 547,2
1490 | 548,0
1491 | 548,7
1492 | 548,1
1493 | 549,0
1494 | 549,5
1495 | 549,3
1496 | 550,0
1497 | 550,7
1498 | 551,4
1499 | 551,8
1500 | 552,0
1501 | 552,1
1502 | 552,13
1503 | 553,12
1504 | 553,13
1505 | 553,11
1506 | 554,0
1507 | 554,4
1508 | 554,6
1509 | 554,3
1510 | 555,0
1511 | 555,7
1512 | 555,10
1513 | 556,0
1514 | 556,1
1515 | 556,18
1516 | 557,0
1517 | 557,18
1518 | 557,9
1519 | 557,10
1520 | 558,0
1521 | 558,1
1522 | 559,7
1523 | 559,8
1524 | 559,11
1525 | 560,0
1526 | 560,5
1527 | 560,6
1528 | 560,3
1529 | 561,0
1530 | 561,1
1531 | 561,12
1532 | 561,13
1533 | 562,0
1534 | 562,1
1535 | 563,0
1536 | 563,1
1537 | 564,0
1538 | 564,16
1539 | 565,0
1540 | 566,7
1541 | 566,1
1542 | 566,2
1543 | 566,18
1544 | 567,0
1545 | 567,1
1546 | 567,18
1547 | 567,9
1548 | 568,0
1549 | 568,7
1550 | 568,11
1551 | 569,0
1552 | 569,10
1553 | 570,0
1554 | 570,10
1555 | 571,0
1556 | 571,1
1557 | 571,5
1558 | 571,13
1559 | 572,0
1560 | 572,14
1561 | 573,7
1562 | 573,1
1563 | 573,23
1564 | 573,11
1565 | 574,0
1566 | 574,5
1567 | 574,6
1568 | 575,0
1569 | 575,4
1570 | 575,11
1571 | 576,0
1572 | 576,1
1573 | 576,2
1574 | 576,18
1575 | 577,0
1576 | 577,18
1577 | 577,9
1578 | 577,3
1579 | 578,0
1580 | 578,1
1581 | 578,5
1582 | 578,10
1583 | 579,0
1584 | 579,7
1585 | 579,1
1586 | 579,14
1587 | 580,0
1588 | 580,20
1589 | 580,19
1590 | 581,0
1591 | 582,0
1592 | 583,0
1593 | 584,0
1594 | 584,5
1595 | 585,0
1596 | 585,11
1597 | 586,0
1598 | 586,1
1599 | 586,18
1600 | 587,0
1601 | 587,1
1602 | 587,26
1603 | 588,0
1604 | 588,3
1605 | 588,26
1606 | 589,0
1607 | 589,4
1608 | 589,3
1609 | 590,0
1610 | 590,18
1611 | 591,4
1612 | 591,8
1613 | 592,8
1614 | 592,5
1615 | 592,6
1616 | 593,0
1617 | 593,7
1618 | 593,1
1619 | 594,4
1620 | 594,8
1621 | 594,6
1622 | 594,3
1623 | 595,4
1624 | 595,8
1625 | 595,6
1626 | 596,0
1627 | 596,16
1628 | 597,0
1629 | 597,3
1630 | 598,0
1631 | 598,4
1632 | 598,5
1633 | 599,0
1634 | 599,14
1635 | 0,4
1636 | 0,9
1637 | 0,10
1638 | 1,0
1639 | 1,1
1640 | 2,6
1641 | 2,3
1642 | 2,25
1643 | 3,0
1644 | 3,1
1645 | 3,17
1646 | 4,0
1647 | 4,10
1648 | 5,7
1649 | 5,12
1650 | 5,11
1651 | 6,0
1652 | 6,7
1653 | 6,12
1654 | 7,6
1655 | 7,3
1656 | 8,0
1657 | 8,7
1658 | 8,1
1659 | 9,0
1660 | 9,7
1661 | 9,18
1662 | 10,0
1663 | 10,5
1664 | 10,6
1665 | 11,0
1666 | 11,18
1667 | 12,0
1668 | 12,7
1669 | 12,1
1670 | 13,0
1671 | 13,14
1672 | 14,0
1673 | 14,6
1674 | 14,3
1675 | 15,0
1676 | 15,18
1677 | 15,3
1678 | 16,0
1679 | 16,6
1680 | 16,10
1681 | 17,4
1682 | 17,11
1683 | 18,0
1684 | 18,1
1685 | 18,12
1686 | 19,0
1687 | 19,18
1688 | 19,10
1689 | 20,0
1690 | 20,4
1691 | 20,8
1692 | 20,11
1693 | 21,0
1694 | 21,2
1695 | 21,18
1696 | 22,4
1697 | 22,8
1698 | 23,0
1699 | 23,1
1700 | 24,0
1701 | 24,16
1702 | 0,6
1703 | 0,3
1704 | 0,25
1705 | 1,0
1706 | 2,0
1707 | 2,1
1708 | 2,2
1709 | 3,1
1710 | 3,5
1711 | 3,25
1712 | 4,0
1713 | 4,7
1714 | 5,0
1715 | 5,1
1716 | 5,9
1717 | 5,10
1718 | 6,4
1719 | 6,12
1720 | 6,3
1721 | 6,11
1722 | 7,0
1723 | 7,1
1724 | 8,0
1725 | 8,7
1726 | 8,1
1727 | 8,3
1728 | 9,8
1729 | 9,5
1730 | 9,6
1731 | 10,0
1732 | 10,17
1733 | 11,0
1734 | 11,14
1735 | 12,0
1736 | 12,4
1737 | 12,10
1738 | 13,0
1739 | 13,12
1740 | 14,0
1741 | 14,7
1742 | 14,12
1743 | 15,0
1744 | 15,3
1745 | 16,0
1746 | 16,6
1747 | 16,3
1748 | 17,0
1749 | 17,7
1750 | 17,4
1751 | 17,10
1752 | 17,11
1753 | 18,0
1754 | 18,7
1755 | 18,13
1756 | 19,7
1757 | 20,0
1758 | 20,5
1759 | 20,6
1760 | 21,0
1761 | 22,0
1762 | 22,7
1763 | 22,3
1764 | 23,0
1765 | 24,7
1766 | 24,1
1767 | 25,0
1768 | 25,5
1769 | 25,6
1770 | 25,3
1771 | 26,0
1772 | 26,1
1773 | 27,0
1774 | 27,4
1775 | 27,8
1776 | 27,6
1777 | 27,3
1778 | 28,0
1779 | 28,10
1780 | 29,0
1781 | 29,7
1782 | 29,1
1783 | 30,0
1784 | 30,2
1785 | 31,0
1786 | 31,7
1787 | 31,6
1788 | 32,0
1789 | 32,10
1790 | 33,0
1791 | 33,5
1792 | 33,6
1793 | 33,3
1794 | 34,0
1795 | 34,12
1796 | 34,13
1797 | 34,22
1798 | 35,12
1799 | 35,13
1800 | 35,11
1801 | 36,0
1802 | 36,18
1803 | 37,8
1804 | 37,5
1805 | 37,6
1806 | 38,13
1807 | 38,11
1808 | 39,12
1809 | 39,13
1810 | 39,22
1811 | 40,4
1812 | 40,8
1813 | 40,11
1814 | 41,4
1815 | 41,6
1816 | 41,3
1817 | 42,20
1818 | 42,13
1819 | 43,0
1820 | 43,18
1821 | 44,0
1822 | 44,14
1823 | 45,0
1824 | 45,18
1825 | 46,0
1826 | 46,11
1827 | 47,7
1828 | 48,0
1829 | 48,7
1830 | 48,14
1831 | 49,0
1832 | 49,6
1833 | 49,3
1834 | 50,6
1835 | 50,20
1836 | 51,7
1837 | 51,4
1838 | 51,12
1839 | 51,11
1840 | 52,27
1841 | 53,0
1842 | 53,18
1843 | 53,11
1844 | 54,5
1845 | 54,3
1846 | 54,25
1847 | 55,4
1848 | 55,8
1849 | 55,11
1850 | 56,0
1851 | 56,18
1852 | 57,0
1853 | 57,18
1854 | 58,0
1855 | 58,1
1856 | 58,10
1857 | 59,0
1858 | 59,9
1859 | 59,10
1860 | 59,11
1861 | 60,0
1862 | 60,1
1863 | 60,2
1864 | 61,0
1865 | 61,14
1866 | 62,0
1867 | 62,9
1868 | 62,10
1869 | 63,7
1870 | 63,1
1871 | 63,10
1872 | 64,0
1873 | 64,14
1874 | 65,7
1875 | 65,10
1876 | 66,0
1877 | 66,6
1878 | 66,3
1879 | 67,12
1880 | 67,13
1881 | 68,0
1882 | 68,9
1883 | 69,0
1884 | 69,1
1885 | 70,0
1886 | 70,9
1887 | 70,10
1888 | 71,0
1889 | 71,1
1890 | 71,6
1891 | 71,16
1892 | 72,27
1893 | 72,10
1894 | 73,0
1895 | 73,6
1896 | 73,3
1897 | 74,7
1898 | 74,3
1899 | 75,5
1900 | 75,6
1901 | 76,0
1902 | 76,7
1903 | 77,7
1904 | 77,5
1905 | 77,19
1906 | 78,0
1907 | 78,14
1908 | 78,13
1909 | 79,0
1910 | 80,12
1911 | 80,13
1912 | 80,11
1913 | 81,7
1914 | 81,1
1915 | 81,14
1916 | 81,24
1917 | 82,0
1918 | 83,0
1919 | 83,3
1920 | 84,4
1921 | 84,13
1922 | 84,11
1923 | 85,0
1924 | 85,4
1925 | 85,8
1926 | 86,7
1927 | 86,12
1928 | 86,11
1929 | 87,0
1930 | 87,14
1931 | 87,26
1932 | 88,0
1933 | 88,7
1934 | 88,1
1935 | 88,18
1936 | 89,0
1937 | 89,1
1938 | 89,19
1939 | 90,7
1940 | 90,1
1941 | 91,0
1942 | 92,0
1943 | 92,7
1944 | 92,1
1945 | 92,3
1946 | 93,0
1947 | 93,5
1948 | 93,6
1949 | 94,0
1950 | 94,6
1951 | 94,3
1952 | 95,8
1953 | 95,6
1954 | 95,3
1955 | 96,0
1956 | 96,1
1957 | 97,0
1958 | 97,1
1959 | 98,0
1960 | 98,1
1961 | 98,10
1962 | 99,5
1963 | 99,20
1964 | 99,13
1965 | 100,0
1966 | 100,1
1967 | 100,19
1968 | 101,7
1969 | 101,13
1970 | 101,11
1971 | 102,0
1972 | 102,7
1973 | 102,1
1974 | 103,0
1975 | 103,8
1976 | 103,5
1977 | 103,6
1978 | 104,0
1979 | 104,14
1980 | 104,24
1981 | 105,0
1982 | 105,7
1983 | 105,14
1984 | 105,11
1985 | 106,20
1986 | 107,0
1987 | 107,3
1988 | 108,7
1989 | 108,1
1990 | 109,5
1991 | 109,6
1992 | 109,15
1993 | 110,0
1994 | 110,1
1995 | 110,18
1996 | 110,9
1997 | 111,0
1998 | 111,1
1999 | 111,17
2000 | 112,0
2001 | 112,14
2002 | 113,0
2003 | 114,4
2004 | 114,11
2005 | 115,7
2006 | 115,12
2007 | 115,11
2008 | 116,7
2009 | 116,13
2010 | 117,7
2011 | 117,1
2012 | 117,12
2013 | 117,19
2014 | 117,13
2015 | 118,4
2016 | 118,8
2017 | 118,11
2018 | 118,15
2019 | 119,0
2020 | 119,4
2021 | 119,8
2022 | 119,20
2023 | 120,0
2024 | 120,5
2025 | 120,6
2026 | 121,0
2027 | 121,10
2028 | 122,5
2029 | 122,20
2030 | 123,0
2031 | 123,3
2032 | 124,4
2033 | 124,8
2034 | 124,6
2035 | 124,11
2036 | 125,0
2037 | 125,4
2038 | 125,6
2039 | 125,11
2040 | 126,0
2041 | 126,4
2042 | 126,5
2043 | 126,3
2044 | 127,4
2045 | 127,13
2046 | 127,11
2047 | 128,0
2048 | 128,4
2049 | 128,6
2050 | 129,8
2051 | 129,15
2052 | 130,0
2053 | 130,1
2054 | 131,0
2055 | 132,0
2056 | 132,14
2057 | 133,0
2058 | 133,1
2059 | 133,9
2060 | 134,0
2061 | 135,0
2062 | 135,1
2063 | 135,2
2064 | 136,27
2065 | 137,27
2066 | 138,0
2067 | 138,5
2068 | 138,20
2069 | 139,0
2070 | 139,5
2071 | 139,3
2072 | 140,0
2073 | 140,6
2074 | 140,11
2075 | 141,0
2076 | 141,6
2077 | 141,11
2078 | 142,0
2079 | 142,14
2080 | 142,18
2081 | 142,26
2082 | 143,0
2083 | 143,3
2084 | 143,23
2085 | 144,0
2086 | 144,7
2087 | 144,5
2088 | 144,3
2089 | 145,7
2090 | 146,0
2091 | 146,10
2092 | 147,0
2093 | 147,6
2094 | 147,10
2095 | 148,7
2096 | 149,7
2097 | 149,12
2098 | 149,13
2099 | 149,11
2100 | 150,0
2101 | 150,3
2102 | 150,23
2103 | 151,0
2104 | 151,23
2105 | 151,13
2106 | 151,11
2107 | 152,4
2108 | 152,8
2109 | 152,5
2110 | 153,4
2111 | 153,8
2112 | 153,11
2113 | 154,7
2114 | 155,0
2115 | 155,18
2116 | 155,9
2117 | 156,7
2118 | 157,8
2119 | 157,5
2120 | 158,0
2121 | 158,17
2122 | 159,12
2123 | 159,13
2124 | 160,0
2125 | 160,23
2126 | 160,11
2127 | 161,0
2128 | 161,6
2129 | 161,18
2130 | 162,0
2131 | 162,8
2132 | 163,0
2133 | 163,1
2134 | 163,3
2135 | 164,0
2136 | 164,18
2137 | 165,7
2138 | 166,0
2139 | 166,1
2140 | 167,4
2141 | 167,23
2142 | 168,0
2143 | 169,0
2144 | 169,1
2145 | 169,13
2146 | 170,0
2147 | 170,1
2148 | 171,0
2149 | 171,1
2150 | 172,0
2151 | 172,4
2152 | 172,8
2153 | 173,4
2154 | 173,5
2155 | 173,3
2156 | 174,0
2157 | 175,0
2158 | 175,1
2159 | 175,8
2160 | 176,0
2161 | 176,4
2162 | 176,21
2163 | 176,22
2164 | 177,0
2165 | 177,4
2166 | 177,8
2167 | 178,0
2168 | 178,5
2169 | 178,6
2170 | 178,20
2171 | 179,4
2172 | 179,6
2173 | 179,11
2174 | 180,0
2175 | 180,2
2176 | 181,0
2177 | 181,1
2178 | 181,19
2179 | 181,3
2180 | 182,0
2181 | 182,7
2182 | 183,0
2183 | 183,8
2184 | 183,11
2185 | 183,15
2186 | 184,4
2187 | 184,8
2188 | 184,13
2189 | 184,11
2190 | 185,0
2191 | 185,5
2192 | 185,6
2193 | 186,4
2194 | 186,5
2195 | 186,6
2196 | 187,4
2197 | 187,8
2198 | 187,6
2199 | 187,11
2200 | 188,4
2201 | 188,8
2202 | 188,11
2203 | 189,0
2204 | 189,14
2205 | 190,0
2206 | 190,5
2207 | 190,3
2208 | 191,0
2209 | 191,6
2210 | 191,17
2211 | 192,0
2212 | 192,4
2213 | 192,3
2214 | 193,0
2215 | 193,7
2216 | 193,10
2217 | 194,4
2218 | 194,3
2219 | 195,0
2220 | 195,4
2221 | 195,3
2222 | 196,0
2223 | 196,20
2224 | 197,8
2225 | 197,6
2226 | 197,11
2227 | 198,8
2228 | 198,15
2229 | 199,0
2230 | 199,1
2231 | 199,17
2232 | 199,10
2233 | 200,0
2234 | 200,12
2235 | 200,13
2236 | 201,0
2237 | 201,9
2238 | 201,10
2239 | 202,0
2240 | 202,9
2241 | 202,10
2242 | 203,0
2243 | 203,18
2244 | 203,26
2245 | 204,0
2246 | 204,18
2247 | 204,26
2248 | 205,0
2249 | 205,1
2250 | 205,18
2251 | 205,9
2252 | 206,0
2253 | 206,16
2254 | 207,0
2255 | 208,0
2256 | 208,14
2257 | 209,0
2258 | 210,8
2259 | 210,5
2260 | 210,20
2261 | 211,0
2262 | 211,7
2263 | 211,1
2264 | 212,8
2265 | 212,5
2266 | 212,3
2267 | 213,0
2268 | 213,1
2269 | 214,0
2270 | 214,1
2271 | 214,16
2272 | 215,7
2273 | 215,12
2274 | 215,14
2275 | 215,13
2276 | 215,11
2277 | 216,0
2278 | 216,5
2279 | 216,6
2280 | 217,0
2281 | 218,7
2282 | 218,1
2283 | 218,22
2284 | 219,0
2285 | 219,1
2286 | 219,6
2287 | 219,13
2288 | 220,0
2289 | 220,7
2290 | 220,14
2291 | 221,0
2292 | 221,7
2293 | 221,14
2294 | 222,0
2295 | 222,23
2296 | 222,11
2297 | 223,0
2298 | 223,18
2299 | 224,0
2300 | 224,14
2301 | 225,0
2302 | 226,0
2303 | 226,5
2304 | 227,0
2305 | 227,1
2306 | 228,0
2307 | 228,6
2308 | 228,10
2309 | 229,4
2310 | 229,8
2311 | 229,11
2312 | 230,0
2313 | 230,6
2314 | 230,2
2315 | 230,3
2316 | 231,0
2317 | 231,1
2318 | 232,0
2319 | 232,1
2320 | 233,0
2321 | 233,7
2322 | 233,13
2323 | 234,0
2324 | 235,8
2325 | 235,12
2326 | 235,6
2327 | 235,13
2328 | 236,0
2329 | 236,18
2330 | 237,4
2331 | 237,20
2332 | 237,3
2333 | 238,4
2334 | 238,20
2335 | 238,3
2336 | 239,0
2337 | 239,10
2338 | 239,26
2339 | 240,4
2340 | 240,8
2341 | 240,12
2342 | 241,0
2343 | 241,18
2344 | 242,0
2345 | 242,4
2346 | 242,6
2347 | 242,3
2348 | 243,0
2349 | 243,4
2350 | 243,6
2351 | 243,3
2352 | 244,0
2353 | 244,9
2354 | 245,0
2355 | 245,7
2356 | 245,1
2357 | 245,9
2358 | 246,0
2359 | 246,6
2360 | 246,3
2361 | 247,0
2362 | 247,14
2363 | 248,0
2364 | 248,1
2365 | 249,0
2366 | 249,12
2367 | 250,0
2368 | 250,1
2369 | 251,5
2370 | 251,20
2371 | 251,13
2372 | 252,0
2373 | 252,7
2374 | 253,0
2375 | 253,2
2376 | 253,18
2377 | 253,3
2378 | 254,0
2379 | 254,9
2380 | 254,10
2381 | 255,0
2382 | 255,14
2383 | 256,0
2384 | 256,5
2385 | 256,6
2386 | 257,0
2387 | 257,4
2388 | 257,9
2389 | 258,0
2390 | 259,0
2391 | 259,1
2392 | 259,19
2393 | 260,0
2394 | 260,1
2395 | 260,5
2396 | 261,0
2397 | 261,18
2398 | 262,0
2399 | 263,0
2400 | 263,7
2401 | 263,14
2402 | 264,0
2403 | 265,0
2404 | 265,1
2405 | 266,0
2406 | 266,17
2407 | 267,0
2408 | 268,0
2409 | 268,2
2410 | 268,18
2411 | 268,3
2412 | 269,0
2413 | 270,27
2414 | 271,0
2415 | 271,1
2416 | 271,9
2417 | 271,10
2418 | 272,0
2419 | 272,4
2420 | 272,6
2421 | 273,0
2422 | 274,7
2423 | 274,4
2424 | 274,3
2425 | 275,0
2426 | 275,5
2427 | 275,6
2428 | 275,3
2429 | 276,0
2430 | 276,7
2431 | 277,7
2432 | 277,12
2433 | 277,11
2434 | 278,0
2435 | 278,18
2436 | 278,9
2437 | 279,0
2438 | 279,7
2439 | 279,1
2440 | 279,2
2441 | 280,0
2442 | 280,16
2443 | 280,18
2444 | 281,1
2445 | 281,10
2446 | 282,0
2447 | 282,6
2448 | 282,2
2449 | 282,9
2450 | 283,0
2451 | 283,4
2452 | 283,1
2453 | 283,23
2454 | 284,4
2455 | 284,8
2456 | 284,11
2457 | 285,7
2458 | 285,13
2459 | 286,6
2460 | 286,3
2461 | 287,0
2462 | 287,1
2463 | 287,12
2464 | 288,5
2465 | 288,6
2466 | 288,3
2467 | 289,0
2468 | 289,23
2469 | 289,11
2470 | 290,1
2471 | 290,13
2472 | 291,0
2473 | 291,7
2474 | 292,5
2475 | 292,6
2476 | 292,3
2477 | 293,5
2478 | 293,6
2479 | 293,3
2480 | 294,0
2481 | 294,7
2482 | 294,2
2483 | 294,14
2484 | 295,0
2485 | 295,7
2486 | 296,0
2487 | 296,9
2488 | 297,7
2489 | 297,4
2490 | 297,8
2491 | 298,0
2492 | 298,1
2493 | 299,0
2494 | 299,1
2495 | 299,18
2496 | 299,9
2497 | 300,8
2498 | 300,20
2499 | 301,0
2500 | 301,1
2501 | 301,9
2502 | 302,27
2503 | 303,0
2504 | 303,20
2505 | 303,13
2506 | 304,0
2507 | 304,6
2508 | 304,10
2509 | 305,4
2510 | 305,13
2511 | 305,11
2512 | 306,0
2513 | 306,7
2514 | 307,0
2515 | 307,27
2516 | 308,7
2517 | 308,12
2518 | 308,11
2519 | 309,0
2520 | 310,7
2521 | 310,19
2522 | 311,0
2523 | 311,3
2524 | 312,7
2525 | 312,4
2526 | 312,12
2527 | 312,11
2528 | 313,0
2529 | 313,4
2530 | 313,6
2531 | 313,3
2532 | 314,0
2533 | 314,4
2534 | 314,6
2535 | 314,3
2536 | 315,0
2537 | 315,17
2538 | 316,0
2539 | 316,6
2540 | 317,0
2541 | 317,7
2542 | 317,2
2543 | 318,4
2544 | 318,8
2545 | 318,11
2546 | 319,0
2547 | 319,1
2548 | 319,9
2549 | 319,10
2550 | 319,23
2551 | 320,5
2552 | 320,6
2553 | 321,0
2554 | 321,7
2555 | 321,14
2556 | 322,27
2557 | 322,16
2558 | 322,18
2559 | 323,7
2560 | 323,4
2561 | 323,1
2562 | 324,0
2563 | 325,0
2564 | 325,1
2565 | 325,5
2566 | 326,0
2567 | 326,7
2568 | 326,4
2569 | 326,6
2570 | 326,20
2571 | 326,3
2572 | 327,7
2573 | 327,1
2574 | 328,0
2575 | 328,4
2576 | 328,8
2577 | 328,26
2578 | 329,0
2579 | 330,0
2580 | 331,0
2581 | 332,0
2582 | 332,5
2583 | 332,6
2584 | 333,0
2585 | 333,7
2586 | 333,1
2587 | 333,13
2588 | 334,5
2589 | 334,20
2590 | 335,0
2591 | 335,1
2592 | 336,0
2593 | 336,14
2594 | 337,0
2595 | 337,1
2596 | 337,10
2597 | 338,0
2598 | 338,1
2599 | 339,7
2600 | 340,0
2601 | 340,1
2602 | 340,2
2603 | 341,0
2604 | 342,0
2605 | 342,1
2606 | 342,21
2607 | 342,22
2608 | 343,0
2609 | 344,0
2610 | 344,18
2611 | 344,9
2612 | 345,0
2613 | 345,7
2614 | 345,1
2615 | 346,0
2616 | 346,9
2617 | 346,10
2618 | 347,0
2619 | 347,18
2620 | 347,9
2621 | 348,0
2622 | 349,0
2623 | 349,1
2624 | 349,16
2625 |
--------------------------------------------------------------------------------
/backend/spider/database_1000/userdict_1000.txt:
--------------------------------------------------------------------------------
1 | 肖申克的救赎 nm
2 | 霸王别姬 nm
3 | 阿甘正传 nm
4 | 泰坦尼克号 nm
5 | 这个杀手不太冷 nm
6 | 千与千寻 nm
7 | 美丽人生 nm
8 | 星际穿越 nm
9 | 盗梦空间 nm
10 | 辛德勒的名单 nm
11 | 楚门的世界 nm
12 | 忠犬八公的故事 nm
13 | 海上钢琴师 nm
14 | 三傻大闹宝莱坞 nm
15 | 放牛班的春天 nm
16 | 机器人总动员 nm
17 | 疯狂动物城 nm
18 | 无间道 nm
19 | 控方证人 nm
20 | 大话西游之大圣娶亲 nm
21 | 熔炉 nm
22 | 教父 nm
23 | 触不可及 nm
24 | 当幸福来敲门 nm
25 | 寻梦环游记 nm
26 | 末代皇帝 nm
27 | 龙猫 nm
28 | 怦然心动 nm
29 | 活着 nm
30 | 哈利·波特与魔法石 nm
31 | 蝙蝠侠:黑暗骑士 nm
32 | 指环王3:王者无敌 nm
33 | 我不是药神 nm
34 | 乱世佳人 nm
35 | 飞屋环游记 nm
36 | 素媛 nm
37 | 哈尔的移动城堡 nm
38 | 十二怒汉 nm
39 | 何以为家 nm
40 | 让子弹飞 nm
41 | 摔跤吧!爸爸 nm
42 | 猫鼠游戏 nm
43 | 天空之城 nm
44 | 鬼子来了 nm
45 | 少年派的奇幻漂流 nm
46 | 海蒂和爷爷 nm
47 | 钢琴家 nm
48 | 大话西游之月光宝盒 nm
49 | 指环王2:双塔奇兵 nm
50 | 闻香识女人 nm
51 | 死亡诗社 nm
52 | 绿皮书 nm
53 | 罗马假日 nm
54 | 大闹天宫 nm
55 | 天堂电影院 nm
56 | 指环王1:护戒使者 nm
57 | 黑客帝国 nm
58 | 教父2 nm
59 | 狮子王 nm
60 | 辩护人 nm
61 | 饮食男女 nm
62 | 搏击俱乐部 nm
63 | 本杰明·巴顿奇事 nm
64 | 美丽心灵 nm
65 | 穿条纹睡衣的男孩 nm
66 | 窃听风暴 nm
67 | 情书 nm
68 | 两杆大烟枪 nm
69 | 西西里的美丽传说 nm
70 | 看不见的客人 nm
71 | 音乐之声 nm
72 | 阿凡达 nm
73 | 哈利·波特与死亡圣器 nm
74 | 拯救大兵瑞恩 nm
75 | 飞越疯人院 nm
76 | 小鞋子 nm
77 | 沉默的羔羊 nm
78 | 布达佩斯大饭店 nm
79 | 功夫 nm
80 | 禁闭岛 nm
81 | 蝴蝶效应 nm
82 | 致命魔术 nm
83 | 哈利·波特与阿兹卡班的囚徒 nm
84 | 心灵捕手 nm
85 | 超脱 nm
86 | 低俗小说 nm
87 | 海豚湾 nm
88 | 摩登时代 nm
89 | 春光乍泄 nm
90 | 美国往事 nm
91 | 喜剧之王 nm
92 | 致命ID nm
93 | 杀人回忆 nm
94 | 七宗罪 nm
95 | 红辣椒 nm
96 | 加勒比海盗 nm
97 | 哈利·波特与密室 nm
98 | 一一 nm
99 | 狩猎 nm
100 | 唐伯虎点秋香 nm
101 | 7号房的礼物 nm
102 | 被嫌弃的松子的一生 nm
103 | 蝙蝠侠:黑暗骑士崛起 nm
104 | 请以你的名字呼唤我 nm
105 | 爱在黎明破晓前 nm
106 | 断背山 nm
107 | 剪刀手爱德华 nm
108 | 入殓师 nm
109 | 第六感 nm
110 | 重庆森林 nm
111 | 勇敢的心 nm
112 | 超能陆战队 nm
113 | 甜蜜蜜 nm
114 | 幽灵公主 nm
115 | 爱在日落黄昏时 nm
116 | 菊次郎的夏天 nm
117 | 借东西的小人阿莉埃蒂 nm
118 | 消失的爱人 nm
119 | 寄生虫 nm
120 | 阳光灿烂的日子 nm
121 | 天使爱美丽 nm
122 | 完美的世界 nm
123 | 小森林 夏秋篇 nm
124 | 倩女幽魂 nm
125 | 无人知晓 nm
126 | 时空恋旅人 nm
127 | 侧耳倾听 nm
128 | 未麻的部屋 nm
129 | 哈利·波特与火焰杯 nm
130 | 幸福终点站 nm
131 | 驯龙高手 nm
132 | 小森林 冬春篇 nm
133 | 一个叫欧维的男人决定去死 nm
134 | 教父3 nm
135 | 怪兽电力公司 nm
136 | 玩具总动员3 nm
137 | 傲慢与偏见 nm
138 | 萤火之森 nm
139 | 新世界 nm
140 | 釜山行 nm
141 | 被解救的姜戈 nm
142 | 神偷奶爸 nm
143 | 茶馆 nm
144 | 告白 nm
145 | 玛丽和马克思 nm
146 | 哪吒闹海 nm
147 | 大鱼 nm
148 | 色,戒 nm
149 | 九品芝麻官 nm
150 | 喜宴 nm
151 | 模仿游戏 nm
152 | 头号玩家 nm
153 | 射雕英雄传之东成西就 nm
154 | 花样年华 nm
155 | 我是山姆 nm
156 | 头脑特工队 nm
157 | 阳光姐妹淘 nm
158 | 七武士 nm
159 | 血战钢锯岭 nm
160 | 恐怖直播 nm
161 | 惊魂记 nm
162 | 黑客帝国3:矩阵革命 nm
163 | 你的名字。 nm
164 | 电锯惊魂 nm
165 | 三块广告牌 nm
166 | 达拉斯买家俱乐部 nm
167 | 疯狂原始人 nm
168 | 心迷宫 nm
169 | 谍影重重3 nm
170 | 英雄本色 nm
171 | 上帝之城 nm
172 | 风之谷 nm
173 | 纵横四海 nm
174 | 卢旺达饭店 nm
175 | 海街日记 nm
176 | 爱在午夜降临前 nm
177 | 绿里奇迹 nm
178 | 小丑 nm
179 | 记忆碎片 nm
180 | 疯狂的石头 nm
181 | 背靠背,脸对脸 nm
182 | 雨中曲 nm
183 | 心灵奇旅 nm
184 | 2001太空漫游 nm
185 | 岁月神偷 nm
186 | 忠犬八公物语 nm
187 | 无间道2 nm
188 | 荒蛮故事 nm
189 | 小偷家族 nm
190 | 无敌破坏王 nm
191 | 爆裂鼓手 nm
192 | 冰川时代 nm
193 | 恐怖游轮 nm
194 | 贫民窟的百万富翁 nm
195 | 牯岭街少年杀人事件 nm
196 | 东邪西毒 nm
197 | 魔女宅急便 nm
198 | 遗愿清单 nm
199 | 东京教父 nm
200 | 大佛普拉斯 nm
201 | 你看起来好像很好吃 nm
202 | 可可西里 nm
203 | 真爱至上 nm
204 | 黑天鹅 nm
205 | 城市之光 nm
206 | 源代码 nm
207 | 海边的曼彻斯特 nm
208 | 雨人 nm
209 | 波西米亚狂想曲 nm
210 | 初恋这件小事 nm
211 | 恋恋笔记本 nm
212 | 青蛇 nm
213 | 人工智能 nm
214 | 末路狂花 nm
215 | 虎口脱险 nm
216 | 终结者2:审判日 nm
217 | 疯狂的麦克斯4:狂暴之路 nm
218 | 罗生门 nm
219 | 新龙门客栈 nm
220 | 无耻混蛋 nm
221 | 千钧一发 nm
222 | 崖上的波妞 nm
223 | 芙蓉镇 nm
224 | 萤火虫之墓 nm
225 | 花束般的恋爱 nm
226 | 彗星来的那一夜 nm
227 | 爱乐之城 nm
228 | 奇迹男孩 nm
229 | 黑客帝国2:重装上阵 nm
230 | 二十二 nm
231 | 哈利·波特与死亡圣器 nm
232 | 血钻 nm
233 | 战争之王 nm
234 | 火星救援 nm
235 | 步履不停 nm
236 | 房间 nm
237 | 魂断蓝桥 nm
238 | 千年女优 nm
239 | 谍影重重2 nm
240 | 白日梦想家 nm
241 | 哈利·波特与凤凰社 nm
242 | 弱点 nm
243 | 蜘蛛侠:平行宇宙 nm
244 | 高山下的花环 nm
245 | 谍影重重 nm
246 | 阿飞正传 nm
247 | 朗读者 nm
248 | 再次出发之纽约遇见你 nm
249 | 燃情岁月 nm
250 | 大红灯笼高高挂 nm
251 | 蒂姆罗宾斯 nr
252 | TimRobbins nr
253 | 摩根弗里曼 nr
254 | MorganFreeman nr
255 | 鲍勃冈顿 nr
256 | BobGunton nr
257 | 威廉姆赛德勒 nr
258 | WilliamSadler nr
259 | 克兰西布朗 nr
260 | ClancyBrown nr
261 | 张国荣 nr
262 | LeslieCheung nr
263 | 张丰毅 nr
264 | FengyiZhang nr
265 | 巩俐 nr
266 | LiGong nr
267 | 葛优 nr
268 | YouGe nr
269 | 英达 nr
270 | DaYing nr
271 | 汤姆汉克斯 nr
272 | TomHanks nr
273 | 罗宾怀特 nr
274 | RobinWright nr
275 | 加里西尼斯 nr
276 | GarySinise nr
277 | 麦凯尔泰威廉逊 nr
278 | MykeltiWilliamson nr
279 | 莎莉菲尔德 nr
280 | SallyField nr
281 | 莱昂纳多迪卡普里奥 nr
282 | LeonardoDiCaprio nr
283 | 凯特温丝莱特 nr
284 | KateWinslet nr
285 | 比利赞恩 nr
286 | BillyZane nr
287 | 凯西贝茨 nr
288 | KathyBates nr
289 | 弗兰西丝费舍 nr
290 | FrancesFisher nr
291 | 让雷诺 nr
292 | JeanReno nr
293 | 娜塔莉波特曼 nr
294 | NataliePortman nr
295 | 加里奥德曼 nr
296 | GaryOldman nr
297 | 丹尼爱罗 nr
298 | DannyAiello nr
299 | 彼得阿佩尔 nr
300 | PeterAppel nr
301 | 柊瑠美 nr
302 | RumiHiiragi nr
303 | 入野自由 nr
304 | MiyuIrino nr
305 | 夏木真理 nr
306 | MariNatsuki nr
307 | 菅原文太 nr
308 | BuntaSugawara nr
309 | 中村彰男 nr
310 | AkioNakamura nr
311 | 罗伯托贝尼尼 nr
312 | RobertoBenigni nr
313 | 尼可莱塔布拉斯基 nr
314 | NicolettaBraschi nr
315 | 乔治坎塔里尼 nr
316 | GiorgioCantarini nr
317 | 朱斯蒂诺杜拉诺 nr
318 | GiustinoDurano nr
319 | 赛尔乔比尼布斯特里克 nr
320 | SergioBiniBustric nr
321 | 马修麦康纳 nr
322 | MatthewMcConaughey nr
323 | 安妮海瑟薇 nr
324 | AnneHathaway nr
325 | 杰西卡查斯坦 nr
326 | JessicaChastain nr
327 | 麦肯吉弗依 nr
328 | MackenzieFoy nr
329 | 卡西阿弗莱克 nr
330 | CaseyAffleck nr
331 | 莱昂纳多迪卡普里奥 nr
332 | LeonardoDiCaprio nr
333 | 约瑟夫高登-莱维特 nr
334 | JosephGordon-Levitt nr
335 | 艾利奥特佩吉 nr
336 | ElliotPage nr
337 | 汤姆哈迪 nr
338 | TomHardy nr
339 | 渡边谦 nr
340 | KenWatanabe nr
341 | 连姆尼森 nr
342 | LiamNeeson nr
343 | 本金斯利 nr
344 | BenKingsley nr
345 | 拉尔夫费因斯 nr
346 | RalphFiennes nr
347 | 卡罗琳古多尔 nr
348 | CarolineGoodall nr
349 | 乔纳森萨加尔 nr
350 | JonathanSagall nr
351 | 金凯瑞 nr
352 | JimCarrey nr
353 | 劳拉琳妮 nr
354 | LauraLinney nr
355 | 艾德哈里斯 nr
356 | EdHarris nr
357 | 诺亚艾默里奇 nr
358 | NoahEmmerich nr
359 | 娜塔莎麦克艾霍恩 nr
360 | NataschaMcElhone nr
361 | 理查基尔 nr
362 | RichardGere nr
363 | 莎拉罗默尔 nr
364 | SarahRoemer nr
365 | 琼艾伦 nr
366 | JoanAllen nr
367 | 罗比萨布莱特 nr
368 | RobbieSublett nr
369 | 艾瑞克阿瓦利 nr
370 | ErickAvari nr
371 | 蒂姆罗斯 nr
372 | TimRoth nr
373 | 普路特泰勒文斯 nr
374 | PruittTaylorVince nr
375 | 比尔努恩 nr
376 | BillNunn nr
377 | 克兰伦斯威廉姆斯三世 nr
378 | ClarenceWilliamsIII nr
379 | 梅兰尼蒂埃里 nr
380 | MélanieThierry nr
381 | 阿米尔汗 nr
382 | AamirKhan nr
383 | 卡琳娜卡普尔 nr
384 | KareenaKapoor nr
385 | 马达范 nr
386 | R.Madhavan nr
387 | 沙尔曼乔希 nr
388 | SharmanJoshi nr
389 | 奥米瓦依达 nr
390 | OmiVaidya nr
391 | 让-巴蒂斯特莫尼耶 nr
392 | Jean-BaptisteMaunier nr
393 | 热拉尔朱尼奥 nr
394 | GérardJugnot nr
395 | 弗朗索瓦贝莱昂 nr
396 | FrançoisBerléand nr
397 | 凯德麦拉德 nr
398 | KadMerad nr
399 | 让-保罗博奈雷 nr
400 | Jean-PaulBonnaire nr
401 | 本贝尔特 nr
402 | BenBurtt nr
403 | 艾丽莎奈特 nr
404 | ElissaKnight nr
405 | 杰夫格尔林 nr
406 | JeffGarlin nr
407 | 佛莱德威拉特 nr
408 | FredWillard nr
409 | 西格妮韦弗 nr
410 | SigourneyWeaver nr
411 | 金妮弗古德温 nr
412 | GinniferGoodwin nr
413 | 杰森贝特曼 nr
414 | JasonBateman nr
415 | 伊德里斯艾尔巴 nr
416 | IdrisElba nr
417 | 珍妮斯蕾特 nr
418 | JennySlate nr
419 | 刘德华 nr
420 | AndyLau nr
421 | 梁朝伟 nr
422 | TonyLeungChiuWai nr
423 | 黄秋生 nr
424 | AnthonyWongChau-Sang nr
425 | 曾志伟 nr
426 | EricTsang nr
427 | 泰隆鲍华 nr
428 | TyronePower nr
429 | 玛琳黛德丽 nr
430 | MarleneDietrich nr
431 | 查尔斯劳顿 nr
432 | CharlesLaughton nr
433 | 埃尔莎兰彻斯特 nr
434 | ElsaLanchester nr
435 | 约翰威廉姆斯 nr
436 | JohnWilliams nr
437 | 周星驰 nr
438 | StephenChow nr
439 | 吴孟达 nr
440 | ManTatNg nr
441 | 朱茵 nr
442 | AthenaChu nr
443 | 蔡少芬 nr
444 | AdaChoi nr
445 | 蓝洁瑛 nr
446 | KitYingLam nr
447 | 孔刘 nr
448 | YooGong nr
449 | 郑有美 nr
450 | Yu-miJung nr
451 | 金贤秀 nr
452 | Hyun-suKim nr
453 | 郑仁絮 nr
454 | In-seoJeong nr
455 | 白承焕 nr
456 | Seung-HwanBaek nr
457 | 马龙白兰度 nr
458 | MarlonBrando nr
459 | 阿尔帕西诺 nr
460 | AlPacino nr
461 | 詹姆斯肯恩 nr
462 | JamesCaan nr
463 | 理查德卡斯特尔诺 nr
464 | RichardS.Castellano nr
465 | 罗伯特杜瓦尔 nr
466 | RobertDuvall nr
467 | 弗朗索瓦克鲁塞 nr
468 | FrançoisCluzet nr
469 | 奥玛希 nr
470 | OmarSy nr
471 | 安娜勒尼 nr
472 | AnneLeNy nr
473 | 奥德雷弗勒罗 nr
474 | AudreyFleurot nr
475 | 威尔史密斯 nr
476 | WillSmith nr
477 | 贾登史密斯 nr
478 | JadenSmith nr
479 | 坦迪牛顿 nr
480 | ThandiweNewton nr
481 | 布莱恩豪威 nr
482 | BrianHowe nr
483 | 詹姆斯凯伦 nr
484 | JamesKaren nr
485 | 阿德里安莫利纳 nr
486 | AdrianMolina nr
487 | 安东尼冈萨雷斯 nr
488 | AnthonyGonzalez nr
489 | 盖尔加西亚贝纳尔 nr
490 | GaelGarcíaBernal nr
491 | 本杰明布拉特 nr
492 | BenjaminBratt nr
493 | 阿兰娜乌巴赫 nr
494 | AlannaUbach nr
495 | 尊龙 nr
496 | JohnLone nr
497 | 陈冲 nr
498 | JoanChen nr
499 | 邬君梅 nr
500 | VivianWu nr
501 | 彼得奥图尔 nr
502 | PeterO'Toole nr
503 | 英若诚 nr
504 | RuochengYing nr
505 | 日高范子 nr
506 | NorikoHidaka nr
507 | 坂本千夏 nr
508 | ChikaSakamoto nr
509 | 糸井重里 nr
510 | ShigesatoItoi nr
511 | 岛本须美 nr
512 | SumiShimamoto nr
513 | 北林谷荣 nr
514 | TanieKitabayashi nr
515 | 玛德琳卡罗尔 nr
516 | MadelineCarroll nr
517 | 卡兰麦克奥利菲 nr
518 | CallanMcAuliffe nr
519 | 瑞贝卡德莫妮 nr
520 | RebeccaDeMornay nr
521 | 安东尼爱德华兹 nr
522 | AnthonyEdwards nr
523 | 约翰马奥尼 nr
524 | JohnMahoney nr
525 | 葛优 nr
526 | YouGe nr
527 | 巩俐 nr
528 | LiGong nr
529 | 姜武 nr
530 | WuJiang nr
531 | 牛犇 nr
532 | BenNiu nr
533 | 郭涛 nr
534 | TaoGuo nr
535 | 丹尼尔雷德克里夫 nr
536 | DanielRadcliffe nr
537 | 艾玛沃森 nr
538 | EmmaWatson nr
539 | 鲁伯特格林特 nr
540 | RupertGrint nr
541 | 艾伦瑞克曼 nr
542 | AlanRickman nr
543 | 玛吉史密斯 nr
544 | MaggieSmith nr
545 | 克里斯蒂安贝尔 nr
546 | ChristianBale nr
547 | 希斯莱杰 nr
548 | HeathLedger nr
549 | 艾伦艾克哈特 nr
550 | AaronEckhart nr
551 | 迈克尔凯恩 nr
552 | MichaelCaine nr
553 | 玛吉吉伦哈尔 nr
554 | MaggieGyllenhaal nr
555 | 伊利亚伍德 nr
556 | ElijahWood nr
557 | 西恩奥斯汀 nr
558 | SeanAstin nr
559 | 维果莫腾森 nr
560 | ViggoMortensen nr
561 | 奥兰多布鲁姆 nr
562 | OrlandoBloom nr
563 | 伊恩麦克莱恩 nr
564 | IanMcKellen nr
565 | 徐峥 nr
566 | ZhengXu nr
567 | 王传君 nr
568 | ChuanjunWang nr
569 | 周一围 nr
570 | YiweiZhou nr
571 | 谭卓 nr
572 | ZhuoTan nr
573 | 章宇 nr
574 | YuZhang nr
575 | 费雯丽 nr
576 | VivienLeigh nr
577 | 克拉克盖博 nr
578 | ClarkGable nr
579 | 奥利维娅德哈维兰 nr
580 | OliviadeHavilland nr
581 | 托马斯米切尔 nr
582 | ThomasMitchell nr
583 | 爱德华阿斯纳 nr
584 | EdwardAsner nr
585 | 克里斯托弗普卢默 nr
586 | ChristopherPlummer nr
587 | 乔丹长井 nr
588 | JordanNagai nr
589 | 鲍勃彼德森 nr
590 | BobPeterson nr
591 | 薛景求 nr
592 | Kyung-guSul nr
593 | 严志媛 nr
594 | Ji-wonUhm nr
595 | 李来 nr
596 | ReLee nr
597 | 金海淑 nr
598 | Hae-sukKim nr
599 | 金相镐 nr
600 | Sang-hoKim nr
601 | 倍赏千惠子 nr
602 | ChiekoBaishô nr
603 | 木村拓哉 nr
604 | TakuyaKimura nr
605 | 美轮明宏 nr
606 | AkihiroMiwa nr
607 | 我修院达也 nr
608 | TatsuyaGashûin nr
609 | 神木隆之介 nr
610 | RyûnosukeKamiki nr
611 | 亨利方达 nr
612 | HenryFonda nr
613 | 马丁鲍尔萨姆 nr
614 | MartinBalsam nr
615 | 约翰菲德勒 nr
616 | JohnFiedler nr
617 | 李科布 nr
618 | LeeJ.Cobb nr
619 | E.G.马绍尔 nr
620 | E.G.Marshall nr
621 | 赞恩阿尔拉菲亚 nr
622 | Zainal-Rafeea nr
623 | 约丹诺斯希费罗 nr
624 | YordanosShiferaw nr
625 | 博鲁瓦蒂夫特雷杰班科尔 nr
626 | BoluwatifeTreasureBankole nr
627 | 卡萨尔艾尔哈达德 nr
628 | KawsarAlHaddad nr
629 | 法迪尤瑟夫 nr
630 | FadiYousef nr
631 | 姜文 nr
632 | WenJiang nr
633 | 葛优 nr
634 | YouGe nr
635 | 周润发 nr
636 | Yun-FatChow nr
637 | 刘嘉玲 nr
638 | CarinaLau nr
639 | 陈坤 nr
640 | KunChen nr
641 | 阿米尔汗 nr
642 | AamirKhan nr
643 | 法缇玛萨那纱卡 nr
644 | FatimaSanaShaikh nr
645 | 桑亚玛荷塔 nr
646 | SanyaMalhotra nr
647 | 阿帕尔夏克提库拉那 nr
648 | AparshaktiKhurana nr
649 | 沙克希坦沃 nr
650 | SakshiTanwar nr
651 | 莱昂纳多迪卡普里奥 nr
652 | LeonardoDiCaprio nr
653 | 汤姆汉克斯 nr
654 | TomHanks nr
655 | 克里斯托弗沃肯 nr
656 | ChristopherWalken nr
657 | 马丁辛 nr
658 | MartinSheen nr
659 | 艾米亚当斯 nr
660 | AmyAdams nr
661 | 田中真弓 nr
662 | MayumiTanaka nr
663 | 横泽启子 nr
664 | KeikoYokozawa nr
665 | 初井言荣 nr
666 | KotoeHatsui nr
667 | 寺田农 nr
668 | MinoriTerada nr
669 | 常田富士男 nr
670 | FujioTokita nr
671 | 姜文 nr
672 | WenJiang nr
673 | 香川照之 nr
674 | TeruyukiKagawa nr
675 | 袁丁 nr
676 | DingYuan nr
677 | 姜宏波 nr
678 | HongboJiang nr
679 | 丛志军 nr
680 | ZhijunCong nr
681 | 苏拉沙玛 nr
682 | SurajSharma nr
683 | 伊尔凡可汗 nr
684 | IrrfanKhan nr
685 | 拉菲斯波 nr
686 | RafeSpall nr
687 | 阿迪勒侯赛因 nr
688 | AdilHussain nr
689 | 塔布 nr
690 | Tabu nr
691 | 阿努克斯特芬 nr
692 | AnukSteffen nr
693 | 布鲁诺冈茨 nr
694 | BrunoGanz nr
695 | 昆林艾格匹 nr
696 | QuirinAgrippi nr
697 | 安娜申茨 nr
698 | AnnaSchinz nr
699 | 伊莎贝尔奥特曼 nr
700 | IsabelleOttmann nr
701 | 阿德里安布罗迪 nr
702 | AdrienBrody nr
703 | 托马斯克莱舒曼 nr
704 | ThomasKretschmann nr
705 | 艾米莉娅福克斯 nr
706 | EmiliaFox nr
707 | 米哈乌热布罗夫斯基 nr
708 | MichalZebrowski nr
709 | 埃德斯托帕德 nr
710 | EdStoppard nr
711 | 周星驰 nr
712 | StephenChow nr
713 | 吴孟达 nr
714 | ManTatNg nr
715 | 罗家英 nr
716 | Kar-YingLaw nr
717 | 蓝洁瑛 nr
718 | KitYingLam nr
719 | 莫文蔚 nr
720 | KarenMok nr
721 | 伊利亚伍德 nr
722 | ElijahWood nr
723 | 西恩奥斯汀 nr
724 | SeanAstin nr
725 | 多米尼克莫纳汉 nr
726 | DominicMonaghan nr
727 | 奥兰多布鲁姆 nr
728 | OrlandoBloom nr
729 | 维果莫腾森 nr
730 | ViggoMortensen nr
731 | 阿尔帕西诺 nr
732 | AlPacino nr
733 | 克里斯奥唐纳 nr
734 | ChrisO'Donnell nr
735 | 詹姆斯瑞布霍恩 nr
736 | JamesRebhorn nr
737 | 加布里埃尔安瓦尔 nr
738 | GabrielleAnwar nr
739 | 菲利普塞默霍夫曼 nr
740 | PhilipSeymourHoffman nr
741 | 罗宾威廉姆斯 nr
742 | RobinWilliams nr
743 | 罗伯特肖恩莱纳德 nr
744 | RobertSeanLeonard nr
745 | 伊桑霍克 nr
746 | EthanHawke nr
747 | 乔西查尔斯 nr
748 | JoshCharles nr
749 | 盖尔汉森 nr
750 | GaleHansen nr
751 | 维果莫腾森 nr
752 | ViggoMortensen nr
753 | 马赫沙拉阿里 nr
754 | MahershalaAli nr
755 | 琳达卡德里尼 nr
756 | LindaCardellini nr
757 | 塞巴斯蒂安马尼斯科 nr
758 | SebastianManiscalco nr
759 | 迪米特D马里诺夫 nr
760 | DimiterD.Marinov nr
761 | 奥黛丽赫本 nr
762 | AudreyHepburn nr
763 | 格利高里派克 nr
764 | GregoryPeck nr
765 | 埃迪艾伯特 nr
766 | EddieAlbert nr
767 | 哈特利鲍尔 nr
768 | HartleyPower nr
769 | 哈考特威廉姆斯 nr
770 | HarcourtWilliams nr
771 | 邱岳峰 nr
772 | YuefengQiu nr
773 | 富润生 nr
774 | RunshengFu nr
775 | 毕克 nr
776 | KeBi nr
777 | 尚华 nr
778 | HuaShang nr
779 | 于鼎 nr
780 | DingYu nr
781 | 菲利普努瓦雷 nr
782 | PhilippeNoiret nr
783 | 萨瓦特利卡西欧 nr
784 | SalvatoreCascio nr
785 | 雅克贝汉 nr
786 | JacquesPerrin nr
787 | 马克莱昂纳蒂 nr
788 | MarcoLeonardi nr
789 | 莱奥波多特里耶斯泰 nr
790 | LeopoldoTrieste nr
791 | 伊利亚伍德 nr
792 | ElijahWood nr
793 | 西恩奥斯汀 nr
794 | SeanAstin nr
795 | 伊恩麦克莱恩 nr
796 | IanMcKellen nr
797 | 维果莫腾森 nr
798 | ViggoMortensen nr
799 | 奥兰多布鲁姆 nr
800 | OrlandoBloom nr
801 | 基努里维斯 nr
802 | KeanuReeves nr
803 | 劳伦斯菲什伯恩 nr
804 | LaurenceFishburne nr
805 | 凯瑞-安莫斯 nr
806 | Carrie-AnneMoss nr
807 | 雨果维文 nr
808 | HugoWeaving nr
809 | 阿尔帕西诺 nr
810 | AlPacino nr
811 | 罗伯特杜瓦尔 nr
812 | RobertDuvall nr
813 | 黛安基顿 nr
814 | DianeKeaton nr
815 | 罗伯特德尼罗 nr
816 | RobertDeNiro nr
817 | 约翰凯泽尔 nr
818 | JohnCazale nr
819 | 乔纳森泰勒托马斯 nr
820 | JonathanTaylorThomas nr
821 | 马修布罗德里克 nr
822 | MatthewBroderick nr
823 | 杰瑞米艾恩斯 nr
824 | JeremyIrons nr
825 | 詹姆斯厄尔琼斯 nr
826 | JamesEarlJones nr
827 | 宋康昊 nr
828 | Kang-hoSong nr
829 | 金英爱 nr
830 | Yeong-aeKim nr
831 | 吴达洙 nr
832 | Dal-suOh nr
833 | 郭度沅 nr
834 | Do-WonKwak nr
835 | 任时完 nr
836 | Si-wanYim nr
837 | 郎雄 nr
838 | SihungLung nr
839 | 杨贵媚 nr
840 | Kuei-MeiYang nr
841 | 吴倩莲 nr
842 | Chien-lienWu nr
843 | 王渝文 nr
844 | Yu-WenWang nr
845 | 张艾嘉 nr
846 | SylviaChang nr
847 | 爱德华诺顿 nr
848 | EdwardNorton nr
849 | 布拉德皮特 nr
850 | BradPitt nr
851 | 海伦娜伯翰卡特 nr
852 | HelenaBonhamCarter nr
853 | 扎克格雷尼尔 nr
854 | ZachGrenier nr
855 | 米特洛夫 nr
856 | MeatLoaf nr
857 | 凯特布兰切特 nr
858 | CateBlanchett nr
859 | 布拉德皮特 nr
860 | BradPitt nr
861 | 朱莉娅奥蒙德 nr
862 | JuliaOrmond nr
863 | 芳妮A钱勃丝 nr
864 | FauneA.Chambers nr
865 | 伊莱亚斯科泰斯 nr
866 | EliasKoteas nr
867 | 罗素克劳 nr
868 | RussellCrowe nr
869 | 艾德哈里斯 nr
870 | EdHarris nr
871 | 詹妮弗康纳利 nr
872 | JenniferConnelly nr
873 | 克里斯托弗普卢默 nr
874 | ChristopherPlummer nr
875 | 保罗贝坦尼 nr
876 | PaulBettany nr
877 | 阿萨巴特菲尔德 nr
878 | AsaButterfield nr
879 | 维拉法米加 nr
880 | VeraFarmiga nr
881 | 卡拉霍根 nr
882 | CaraHorgan nr
883 | 祖萨霍尔 nr
884 | ZsuzsaHoll nr
885 | 安贝尔比蒂 nr
886 | AmberBeattie nr
887 | 乌尔里希穆埃 nr
888 | UlrichMühe nr
889 | 马蒂娜格德克 nr
890 | MartinaGedeck nr
891 | 塞巴斯蒂安科赫 nr
892 | SebastianKoch nr
893 | 乌尔里希图库尔 nr
894 | UlrichTukur nr
895 | 托马斯蒂梅 nr
896 | ThomasThieme nr
897 | 中山美穗 nr
898 | MihoNakayama nr
899 | 丰川悦司 nr
900 | EtsushiToyokawa nr
901 | 酒井美纪 nr
902 | MikiSakai nr
903 | 柏原崇 nr
904 | TakashiKashiwabara nr
905 | 范文雀 nr
906 | BunjakuHan nr
907 | 杰森弗莱明 nr
908 | JasonFlemyng nr
909 | 德克斯特弗莱彻 nr
910 | DexterFletcher nr
911 | 尼克莫兰 nr
912 | NickMoran nr
913 | 杰森斯坦森 nr
914 | JasonStatham nr
915 | 斯蒂文麦金托什 nr
916 | StevenMackintosh nr
917 | 莫妮卡贝鲁奇 nr
918 | MonicaBellucci nr
919 | 朱塞佩苏尔法罗 nr
920 | GiuseppeSulfaro nr
921 | Luciano nr
922 | Federico nr
923 | 玛蒂尔德皮亚纳 nr
924 | MatildePiana nr
925 | Pietro nr
926 | NotarianniPietroNotarianni nr
927 | 马里奥卡萨斯 nr
928 | MarioCasas nr
929 | 阿娜瓦格纳 nr
930 | AnaWagener nr
931 | 何塞科罗纳多 nr
932 | JoséCoronado nr
933 | 巴巴拉莱涅 nr
934 | BárbaraLennie nr
935 | 弗兰塞斯克奥雷利亚 nr
936 | FrancescOrella nr
937 | 朱莉安德鲁斯 nr
938 | JulieAndrews nr
939 | 克里斯托弗普卢默 nr
940 | ChristopherPlummer nr
941 | 埃琳诺帕克 nr
942 | EleanorParker nr
943 | 理查德海顿 nr
944 | RichardHaydn nr
945 | 佩吉伍德 nr
946 | PeggyWood nr
947 | 萨姆沃辛顿 nr
948 | SamWorthington nr
949 | 佐伊索尔达娜 nr
950 | ZoeSaldana nr
951 | 西格妮韦弗 nr
952 | SigourneyWeaver nr
953 | 史蒂芬朗 nr
954 | StephenLang nr
955 | 米歇尔罗德里格兹 nr
956 | MichelleRodriguez nr
957 | 丹尼尔雷德克里夫 nr
958 | DanielRadcliffe nr
959 | 艾玛沃森 nr
960 | EmmaWatson nr
961 | 鲁伯特格林特 nr
962 | RupertGrint nr
963 | 海伦娜伯翰卡特 nr
964 | HelenaBonhamCarter nr
965 | 拉尔夫费因斯 nr
966 | RalphFiennes nr
967 | 汤姆汉克斯 nr
968 | TomHanks nr
969 | 汤姆塞兹摩尔 nr
970 | TomSizemore nr
971 | 爱德华伯恩斯 nr
972 | EdwardBurns nr
973 | 巴里佩珀 nr
974 | BarryPepper nr
975 | 亚当戈德堡 nr
976 | AdamGoldberg nr
977 | 杰克尼科尔森 nr
978 | JackNicholson nr
979 | 丹尼德维托 nr
980 | DannyDeVito nr
981 | 克里斯托弗洛伊德 nr
982 | ChristopherLloyd nr
983 | 路易丝弗莱彻 nr
984 | LouiseFletcher nr
985 | 威尔萨姆森 nr
986 | WillSampson nr
987 | 默罕默德阿米尔纳吉 nr
988 | MohammadAmirNaji nr
989 | 法拉赫阿米尔哈什米安 nr
990 | AmirFarrokhHashemian nr
991 | 巴哈丽西迪奇 nr
992 | BahareSeddiqi nr
993 | 纳菲丝贾法-穆罕默迪 nr
994 | NafiseJafar-Mohammadi nr
995 | 费雷什特萨拉班迪 nr
996 | FereshteSarabandi nr
997 | 朱迪福斯特 nr
998 | JodieFoster nr
999 | 安东尼霍普金斯 nr
1000 | AnthonyHopkins nr
1001 | 斯科特格伦 nr
1002 | ScottGlenn nr
1003 | 安东尼希尔德 nr
1004 | AnthonyHeald nr
1005 | 布鲁克史密斯 nr
1006 | BrookeSmith nr
1007 | 拉尔夫费因斯 nr
1008 | RalphFiennes nr
1009 | 托尼雷沃罗利 nr
1010 | TonyRevolori nr
1011 | 阿德里安布罗迪 nr
1012 | AdrienBrody nr
1013 | 威廉达福 nr
1014 | WillemDafoe nr
1015 | 裘德洛 nr
1016 | JudeLaw nr
1017 | 周星驰 nr
1018 | StephenChow nr
1019 | 元秋 nr
1020 | QiuYuen nr
1021 | 元华 nr
1022 | WahYuen nr
1023 | 黄圣依 nr
1024 | EvaHuang nr
1025 | 梁小龙 nr
1026 | Siu-LungLeung nr
1027 | 莱昂纳多迪卡普里奥 nr
1028 | LeonardoDiCaprio nr
1029 | 马克鲁弗洛 nr
1030 | MarkRuffalo nr
1031 | 本金斯利 nr
1032 | BenKingsley nr
1033 | 马克斯冯叙多夫 nr
1034 | MaxvonSydow nr
1035 | 米歇尔威廉姆斯 nr
1036 | MichelleWilliams nr
1037 | 阿什顿库彻 nr
1038 | AshtonKutcher nr
1039 | 梅洛拉沃尔特斯 nr
1040 | MeloraWalters nr
1041 | 艾米斯马特 nr
1042 | AmySmart nr
1043 | 埃尔登汉森 nr
1044 | EldenHenson nr
1045 | 休杰克曼 nr
1046 | HughJackman nr
1047 | 克里斯蒂安贝尔 nr
1048 | ChristianBale nr
1049 | 迈克尔凯恩 nr
1050 | MichaelCaine nr
1051 | 丽贝卡豪尔 nr
1052 | RebeccaHall nr
1053 | 斯嘉丽约翰逊 nr
1054 | ScarlettJohansson nr
1055 | 丹尼尔雷德克里夫 nr
1056 | DanielRadcliffe nr
1057 | 艾玛沃森 nr
1058 | EmmaWatson nr
1059 | 鲁伯特格林特 nr
1060 | RupertGrint nr
1061 | 加里奥德曼 nr
1062 | GaryOldman nr
1063 | 朱丽沃特斯 nr
1064 | JulieWalters nr
1065 | 马特达蒙 nr
1066 | MattDamon nr
1067 | 罗宾威廉姆斯 nr
1068 | RobinWilliams nr
1069 | 本阿弗莱克 nr
1070 | BenAffleck nr
1071 | 斯特兰斯卡斯加德 nr
1072 | StellanSkarsgård nr
1073 | 明妮德里弗 nr
1074 | MinnieDriver nr
1075 | 阿德里安布罗迪 nr
1076 | AdrienBrody nr
1077 | 马西娅盖伊哈登 nr
1078 | MarciaGayHarden nr
1079 | 詹姆斯肯恩 nr
1080 | JamesCaan nr
1081 | 克里斯蒂娜亨德里克斯 nr
1082 | ChristinaHendricks nr
1083 | 刘玉玲 nr
1084 | LucyLiu nr
1085 | 约翰特拉沃尔塔 nr
1086 | JohnTravolta nr
1087 | 乌玛瑟曼 nr
1088 | UmaThurman nr
1089 | 阿曼达普拉莫 nr
1090 | AmandaPlummer nr
1091 | 蒂姆罗斯 nr
1092 | TimRoth nr
1093 | 塞缪尔杰克逊 nr
1094 | SamuelL.Jackson nr
1095 | 路易西霍尤斯 nr
1096 | LouiePsihoyos nr
1097 | 瑞克欧贝瑞 nr
1098 | RichardO'Barry nr
1099 | 哈迪琼斯 nr
1100 | HardyJones nr
1101 | 保罗沃森 nr
1102 | PaulWatson nr
1103 | 森下丈二 nr
1104 | JojiMorishita nr
1105 | 查理卓别林 nr
1106 | CharlesChaplin nr
1107 | 宝莲高黛 nr
1108 | PauletteGoddard nr
1109 | 亨利伯格曼 nr
1110 | HenryBergman nr
1111 | 蒂尼桑福德 nr
1112 | TinySandford nr
1113 | 切斯特康克林 nr
1114 | ChesterConklin nr
1115 | 张国荣 nr
1116 | LeslieCheung nr
1117 | 梁朝伟 nr
1118 | TonyLeungChiuWai nr
1119 | 张震 nr
1120 | ChenChang nr
1121 | 格利高里戴顿 nr
1122 | GregoryDayton nr
1123 | 彭绮华 nr
1124 | JackyPangYeeWah nr
1125 | 罗伯特德尼罗 nr
1126 | RobertDeNiro nr
1127 | 詹姆斯伍兹 nr
1128 | JamesWoods nr
1129 | 伊丽莎白麦戈文 nr
1130 | ElizabethMcGovern nr
1131 | 乔佩西 nr
1132 | JoePesci nr
1133 | 波特杨 nr
1134 | BurtYoung nr
1135 | 周星驰 nr
1136 | StephenChow nr
1137 | 张柏芝 nr
1138 | CeciliaCheung nr
1139 | 莫文蔚 nr
1140 | KarenMok nr
1141 | 吴孟达 nr
1142 | ManTatNg nr
1143 | 约翰库萨克 nr
1144 | JohnCusack nr
1145 | 雷利奥塔 nr
1146 | RayLiotta nr
1147 | 阿曼达皮特 nr
1148 | AmandaPeet nr
1149 | 约翰浩克斯 nr
1150 | JohnHawkes nr
1151 | 阿尔弗雷德莫里纳 nr
1152 | AlfredMolina nr
1153 | 宋康昊 nr
1154 | Kang-hoSong nr
1155 | 金相庆 nr
1156 | Sang-kyungKim nr
1157 | 金雷夏 nr
1158 | Roe-haKim nr
1159 | 宋在浩 nr
1160 | Jae-hoSong nr
1161 | 边希峰 nr
1162 | Hie-bongByeon nr
1163 | 摩根弗里曼 nr
1164 | MorganFreeman nr
1165 | 布拉德皮特 nr
1166 | BradPitt nr
1167 | 凯文史派西 nr
1168 | KevinSpacey nr
1169 | 格温妮斯帕特洛 nr
1170 | GwynethPaltrow nr
1171 | 安德鲁凯文沃克 nr
1172 | AndrewKevinWalker nr
1173 | 林原惠美 nr
1174 | MegumiHayashibara nr
1175 | 江守彻 nr
1176 | ToruEmori nr
1177 | 堀胜之祐 nr
1178 | KatsunosukeHori nr
1179 | 古谷彻 nr
1180 | TôruFuruya nr
1181 | 大塚明夫 nr
1182 | AkioÔtsuka nr
1183 | 约翰尼德普 nr
1184 | JohnnyDepp nr
1185 | 杰弗里拉什 nr
1186 | GeoffreyRush nr
1187 | 奥兰多布鲁姆 nr
1188 | OrlandoBloom nr
1189 | 凯拉奈特莉 nr
1190 | KeiraKnightley nr
1191 | 杰克达文波特 nr
1192 | JackDavenport nr
1193 | 丹尼尔雷德克里夫 nr
1194 | DanielRadcliffe nr
1195 | 艾玛沃森 nr
1196 | EmmaWatson nr
1197 | 鲁伯特格林特 nr
1198 | RupertGrint nr
1199 | 汤姆费尔顿 nr
1200 | TomFelton nr
1201 | 理查德格雷弗斯 nr
1202 | RichardGriffiths nr
1203 | 李凯莉 nr
1204 | KellyLee nr
1205 | 金燕玲 nr
1206 | ElaineJin nr
1207 | 张洋洋 nr
1208 | JonathanChang nr
1209 | 萧淑慎 nr
1210 | Shu-shenHsiao nr
1211 | 尾形一成 nr
1212 | IsseiOgata nr
1213 | 麦斯米科尔森 nr
1214 | MadsMikkelsen nr
1215 | 托玛斯博拉森 nr
1216 | ThomasBoLarsen nr
1217 | 安妮卡韦德科普 nr
1218 | AnnikaWedderkopp nr
1219 | 拉丝弗格斯托姆 nr
1220 | LasseFogelstrøm nr
1221 | 苏西沃德 nr
1222 | SusseWold nr
1223 | 周星驰 nr
1224 | StephenChow nr
1225 | 巩俐 nr
1226 | LiGong nr
1227 | 陈百祥 nr
1228 | Pak-cheungChan nr
1229 | 郑佩佩 nr
1230 | Pei-peiCheng nr
1231 | 朱咪咪 nr
1232 | MimiChu nr
1233 | 柳承龙 nr
1234 | Seung-ryongRyu nr
1235 | 朴信惠 nr
1236 | Shin-hyePark nr
1237 | 郑镇荣 nr
1238 | Jin-yeongJeong nr
1239 | 金正泰 nr
1240 | Jeong-taeKim nr
1241 | 吴达洙 nr
1242 | Dal-suOh nr
1243 | 中谷美纪 nr
1244 | MikiNakatani nr
1245 | 永山瑛太 nr
1246 | Eita nr
1247 | 香川照之 nr
1248 | TeruyukiKagawa nr
1249 | 市川实日子 nr
1250 | MikakoIchikawa nr
1251 | 伊势谷友介 nr
1252 | YûsukeIseya nr
1253 | 克里斯蒂安贝尔 nr
1254 | ChristianBale nr
1255 | 汤姆哈迪 nr
1256 | TomHardy nr
1257 | 安妮海瑟薇 nr
1258 | AnneHathaway nr
1259 | 约瑟夫高登-莱维特 nr
1260 | JosephGordon-Levitt nr
1261 | 玛丽昂歌迪亚 nr
1262 | MarionCotillard nr
1263 | 艾米汉莫 nr
1264 | ArmieHammer nr
1265 | 提莫西查拉梅 nr
1266 | TimothéeChalamet nr
1267 | 迈克尔斯图巴 nr
1268 | MichaelStuhlbarg nr
1269 | 阿蜜拉卡萨 nr
1270 | AmiraCasar nr
1271 | 艾斯特加瑞尔 nr
1272 | EstherGarrel nr
1273 | 伊桑霍克 nr
1274 | EthanHawke nr
1275 | 朱莉德尔佩 nr
1276 | JulieDelpy nr
1277 | 安德莉亚埃克特 nr
1278 | AndreaEckert nr
1279 | 汉诺波西尔 nr
1280 | HannoPöschl nr
1281 | 卡尔布拉克施魏格尔 nr
1282 | KarlBruckschwaiger nr
1283 | 希斯莱杰 nr
1284 | HeathLedger nr
1285 | 杰克吉伦哈尔 nr
1286 | JakeGyllenhaal nr
1287 | 米歇尔威廉姆斯 nr
1288 | MichelleWilliams nr
1289 | 安妮海瑟薇 nr
1290 | AnneHathaway nr
1291 | 凯特玛拉 nr
1292 | KateMara nr
1293 | 约翰尼德普 nr
1294 | JohnnyDepp nr
1295 | 薇诺娜瑞德 nr
1296 | WinonaRyder nr
1297 | 黛安韦斯特 nr
1298 | DianneWiest nr
1299 | 安东尼迈克尔豪尔 nr
1300 | AnthonyMichaelHall nr
1301 | 凯西贝克 nr
1302 | KathyBaker nr
1303 | 本木雅弘 nr
1304 | MasahiroMotoki nr
1305 | 广末凉子 nr
1306 | RyokoHirosue nr
1307 | 山崎努 nr
1308 | TsutomuYamazaki nr
1309 | 吉行和子 nr
1310 | KazukoYoshiyuki nr
1311 | 笹野高史 nr
1312 | TakashiSasano nr
1313 | 布鲁斯威利斯 nr
1314 | BruceWillis nr
1315 | 海利乔奥斯蒙 nr
1316 | HaleyJoelOsment nr
1317 | 托妮科莱特 nr
1318 | ToniCollette nr
1319 | 奥莉维亚威廉姆斯 nr
1320 | OliviaWilliams nr
1321 | 唐尼沃尔伯格 nr
1322 | DonnieWahlberg nr
1323 | 林青霞 nr
1324 | BrigitteLin nr
1325 | 金城武 nr
1326 | TakeshiKaneshiro nr
1327 | 梁朝伟 nr
1328 | TonyLeungChiuWai nr
1329 | 王菲 nr
1330 | FayeWong nr
1331 | 周嘉玲 nr
1332 | ValerieChow nr
1333 | 梅尔吉布森 nr
1334 | MelGibson nr
1335 | 苏菲玛索 nr
1336 | SophieMarceau nr
1337 | 布莱恩考克斯 nr
1338 | BrianCox nr
1339 | 詹姆斯科兹莫 nr
1340 | JamesCosmo nr
1341 | 辛劳洛 nr
1342 | SeanLawlor nr
1343 | 斯科特安第斯 nr
1344 | ScottAdsit nr
1345 | 瑞恩波特 nr
1346 | RyanPotter nr
1347 | 丹尼尔海尼 nr
1348 | DanielHenney nr
1349 | TJ米勒 nr
1350 | T.J.Miller nr
1351 | 黎明 nr
1352 | LeonLai nr
1353 | 张曼玉 nr
1354 | MaggieCheung nr
1355 | 杨恭如 nr
1356 | KristyYang nr
1357 | 曾志伟 nr
1358 | EricTsang nr
1359 | 杜可风 nr
1360 | ChristopherDoyle nr
1361 | 松田洋治 nr
1362 | YôjiMatsuda nr
1363 | 石田百合子 nr
1364 | YurikoIshida nr
1365 | 田中裕子 nr
1366 | YûkoTanaka nr
1367 | 小林薰 nr
1368 | KaoruKobayashi nr
1369 | 西村雅彦 nr
1370 | MasahikoNishimura nr
1371 | 伊桑霍克 nr
1372 | EthanHawke nr
1373 | 朱莉德尔佩 nr
1374 | JulieDelpy nr
1375 | 弗农多布切夫 nr
1376 | VernonDobtcheff nr
1377 | 路易丝勒莫瓦纳托雷斯 nr
1378 | LouiseLemoineTorrès nr
1379 | 罗多尔保利 nr
1380 | RodolphePauly nr
1381 | 北野武 nr
1382 | TakeshiKitano nr
1383 | 关口雄介 nr
1384 | YusukeSekiguchi nr
1385 | 岸本加世子 nr
1386 | KayokoKishimoto nr
1387 | 吉行和子 nr
1388 | KazukoYoshiyuki nr
1389 | 细川典江 nr
1390 | FumieHosokawa nr
1391 | 志田未来 nr
1392 | MiraiShida nr
1393 | 神木隆之介 nr
1394 | RyûnosukeKamiki nr
1395 | 树木希林 nr
1396 | KirinKiki nr
1397 | 三浦友和 nr
1398 | TomokazuMiura nr
1399 | 大竹忍 nr
1400 | ShinobuÔtake nr
1401 | 本阿弗莱克 nr
1402 | BenAffleck nr
1403 | 裴淳华 nr
1404 | RosamundPike nr
1405 | 尼尔帕特里克哈里斯 nr
1406 | NeilPatrickHarris nr
1407 | 凯莉库恩 nr
1408 | CarrieCoon nr
1409 | 泰勒派瑞 nr
1410 | TylerPerry nr
1411 | 宋康昊 nr
1412 | Kang-hoSong nr
1413 | 李善均 nr
1414 | Seon-gyunLee nr
1415 | 曹汝贞 nr
1416 | Yeo-JeongJo nr
1417 | 崔宇植 nr
1418 | ChoiWoo-shik nr
1419 | 朴素丹 nr
1420 | So-damPark nr
1421 | 夏雨 nr
1422 | YuXia nr
1423 | 宁静 nr
1424 | JingNing nr
1425 | 陶虹 nr
1426 | HongTao nr
1427 | 耿乐 nr
1428 | LeGeng nr
1429 | 斯琴高娃 nr
1430 | GaowaSiqin nr
1431 | 奥黛丽塔图 nr
1432 | AudreyTautou nr
1433 | 马修卡索维茨 nr
1434 | MathieuKassovitz nr
1435 | 吕菲斯 nr
1436 | Rufus nr
1437 | 洛莱拉克拉沃塔 nr
1438 | LorellaCravotta nr
1439 | 塞尔梅林 nr
1440 | SergeMerlin nr
1441 | 凯文科斯特纳 nr
1442 | KevinCostner nr
1443 | 劳拉邓恩 nr
1444 | LauraDern nr
1445 | 克林特伊斯特伍德 nr
1446 | ClintEastwood nr
1447 | TJ劳瑟 nr
1448 | T.J.Lowther nr
1449 | 基斯斯扎拉巴基克 nr
1450 | KeithSzarabajka nr
1451 | 桥本爱 nr
1452 | AiHashimoto nr
1453 | 三浦贵大 nr
1454 | TakahiroMiura nr
1455 | 松冈茉优 nr
1456 | MayuMatsuoka nr
1457 | 温水洋一 nr
1458 | YôichiNukumizu nr
1459 | 桐岛加恋 nr
1460 | KarenKirishima nr
1461 | 张国荣 nr
1462 | LeslieCheung nr
1463 | 王祖贤 nr
1464 | JoeyWong nr
1465 | 午马 nr
1466 | WuMa nr
1467 | 刘兆铭 nr
1468 | LauSiuMing nr
1469 | 林威 nr
1470 | WaiLam nr
1471 | 柳乐优弥 nr
1472 | YûyaYagira nr
1473 | 北浦爱 nr
1474 | AyuKitaura nr
1475 | 木村飞影 nr
1476 | HieiKimura nr
1477 | 清水萌萌子 nr
1478 | MomokoShimizu nr
1479 | 韩英惠 nr
1480 | HanaeKan nr
1481 | 多姆纳尔格里森 nr
1482 | DomhnallGleeson nr
1483 | 瑞秋麦克亚当斯 nr
1484 | RachelMcAdams nr
1485 | 比尔奈伊 nr
1486 | BillNighy nr
1487 | 莉迪亚威尔逊 nr
1488 | LydiaWilson nr
1489 | 琳赛邓肯 nr
1490 | LindsayDuncan nr
1491 | 本名阳子 nr
1492 | YoukoHonna nr
1493 | 小林桂树 nr
1494 | KeijuKobayashi nr
1495 | 高山南 nr
1496 | MinamiTakayama nr
1497 | 高桥一生 nr
1498 | IsseyTakahashi nr
1499 | 山下容莉枝 nr
1500 | YorieYamashita nr
1501 | 岩男润子 nr
1502 | JunkoIwao nr
1503 | 松本梨香 nr
1504 | RicaMatsumoto nr
1505 | 辻亲八 nr
1506 | ShinpachiTsuji nr
1507 | 大仓正章 nr
1508 | OokuraMasaaki nr
1509 | 秋元羊介 nr
1510 | YôsukeAkimoto nr
1511 | 丹尼尔雷德克里夫 nr
1512 | DanielRadcliffe nr
1513 | 艾玛沃森 nr
1514 | EmmaWatson nr
1515 | 鲁伯特格林特 nr
1516 | RupertGrint nr
1517 | 迈克尔刚本 nr
1518 | MichaelGambon nr
1519 | 玛吉史密斯 nr
1520 | MaggieSmith nr
1521 | 汤姆汉克斯 nr
1522 | TomHanks nr
1523 | 凯瑟琳泽塔-琼斯 nr
1524 | CatherineZeta-Jones nr
1525 | 斯坦利图齐 nr
1526 | StanleyTucci nr
1527 | 齐麦克布赖德 nr
1528 | ChiMcBride nr
1529 | 迭戈卢纳 nr
1530 | DiegoLuna nr
1531 | 杰伊巴鲁切尔 nr
1532 | JayBaruchel nr
1533 | 杰拉德巴特勒 nr
1534 | GerardButler nr
1535 | 克雷格费格森 nr
1536 | CraigFerguson nr
1537 | 亚美莉卡费雷拉 nr
1538 | AmericaFerrera nr
1539 | 桥本爱 nr
1540 | AiHashimoto nr
1541 | 三浦贵大 nr
1542 | TakahiroMiura nr
1543 | 松冈茉优 nr
1544 | MayuMatsuoka nr
1545 | 温水洋一 nr
1546 | YôichiNukumizu nr
1547 | 桐岛加恋 nr
1548 | KarenKirishima nr
1549 | 罗夫拉斯加德 nr
1550 | RolfLassgård nr
1551 | 巴哈帕斯 nr
1552 | BaharPars nr
1553 | 托比亚斯阿姆博瑞 nr
1554 | TobiasAlmborg nr
1555 | 菲利普伯格 nr
1556 | FilipBerg nr
1557 | 安娜-莱娜布伦丁 nr
1558 | Anna-LenaBrundin nr
1559 | 阿尔帕西诺 nr
1560 | AlPacino nr
1561 | 黛安基顿 nr
1562 | DianeKeaton nr
1563 | 塔莉娅夏尔 nr
1564 | TaliaShire nr
1565 | 安迪加西亚 nr
1566 | AndyGarcia nr
1567 | 埃里瓦拉赫 nr
1568 | EliWallach nr
1569 | 大卫西尔弗曼 nr
1570 | DavidSilverman nr
1571 | 约翰古德曼 nr
1572 | JohnGoodman nr
1573 | 比利克里斯托 nr
1574 | BillyCrystal nr
1575 | 玛丽吉布斯 nr
1576 | MaryGibbs nr
1577 | 史蒂夫布西密 nr
1578 | SteveBuscemi nr
1579 | 汤姆汉克斯 nr
1580 | TomHanks nr
1581 | 蒂姆艾伦 nr
1582 | TimAllen nr
1583 | 琼库萨克 nr
1584 | JoanCusack nr
1585 | 尼德巴蒂 nr
1586 | NedBeatty nr
1587 | 唐里克斯 nr
1588 | DonRickles nr
1589 | 凯拉奈特莉 nr
1590 | KeiraKnightley nr
1591 | 马修麦克费登 nr
1592 | MatthewMacfadyen nr
1593 | 唐纳德萨瑟兰 nr
1594 | DonaldSutherland nr
1595 | 布兰达布莱斯 nr
1596 | BrendaBlethyn nr
1597 | 凯瑞穆里根 nr
1598 | CareyMulligan nr
1599 | 佐仓绫音 nr
1600 | AyaneSakura nr
1601 | 内山昂辉 nr
1602 | KokiUchiyama nr
1603 | 辻亲八 nr
1604 | ShinpachiTsuji nr
1605 | 山本兼平 nr
1606 | KanehiraYamamoto nr
1607 | 后藤弘树 nr
1608 | HirokiGotô nr
1609 | 李政宰 nr
1610 | Jung-jaeLee nr
1611 | 崔岷植 nr
1612 | Min-sikChoi nr
1613 | 黄政民 nr
1614 | Jeong-minHwang nr
1615 | 宋智孝 nr
1616 | Ji-hyoSong nr
1617 | 朴成雄 nr
1618 | ParkSung-woong nr
1619 | 孔刘 nr
1620 | YooGong nr
1621 | 郑有美 nr
1622 | Yu-miJung nr
1623 | 马东锡 nr
1624 | MaDong-seok nr
1625 | 金秀安 nr
1626 | Soo-anKim nr
1627 | 金义城 nr
1628 | Eui-sungKim nr
1629 | 杰米福克斯 nr
1630 | JamieFoxx nr
1631 | 莱昂纳多迪卡普里奥 nr
1632 | LeonardoDiCaprio nr
1633 | 克里斯托弗瓦尔兹 nr
1634 | ChristophWaltz nr
1635 | 塞缪尔杰克逊 nr
1636 | SamuelL.Jackson nr
1637 | 凯丽华盛顿 nr
1638 | KerryWashington nr
1639 | 史蒂夫卡瑞尔 nr
1640 | SteveCarell nr
1641 | 杰森席格尔 nr
1642 | JasonSegel nr
1643 | 拉塞尔布兰德 nr
1644 | RussellBrand nr
1645 | 朱莉安德鲁斯 nr
1646 | JulieAndrews nr
1647 | 焦菊隐 nr
1648 | JuyinJiao nr
1649 | 于是之 nr
1650 | ShizhiYu nr
1651 | 郑榕 nr
1652 | RongZhen nr
1653 | 蓝天野 nr
1654 | TianyeLan nr
1655 | 英若诚 nr
1656 | RuochengYing nr
1657 | 松隆子 nr
1658 | TakakoMatsu nr
1659 | 冈田将生 nr
1660 | MasakiOkada nr
1661 | 木村佳乃 nr
1662 | YoshinoKimura nr
1663 | 西井幸人 nr
1664 | YukitoNishii nr
1665 | 桥本爱 nr
1666 | AiHashimoto nr
1667 | 托妮科莱特 nr
1668 | ToniCollette nr
1669 | 菲利普塞默霍夫曼 nr
1670 | PhilipSeymourHoffman nr
1671 | 巴瑞哈姆弗莱斯 nr
1672 | BarryHumphries nr
1673 | 艾瑞克巴纳 nr
1674 | EricBana nr
1675 | 贝塔尼维特莫尔 nr
1676 | BethanyWhitmore nr
1677 | 梁正晖 nr
1678 | ZhenghuiLiang nr
1679 | 邱岳峰 nr
1680 | YuefengQiu nr
1681 | 毕克 nr
1682 | KeBi nr
1683 | 富润生 nr
1684 | RunshengFu nr
1685 | 伊万麦克格雷格 nr
1686 | EwanMcGregor nr
1687 | 阿尔伯特芬尼 nr
1688 | AlbertFinney nr
1689 | 比利克鲁德普 nr
1690 | BillyCrudup nr
1691 | 杰西卡兰格 nr
1692 | JessicaLange nr
1693 | 海伦娜伯翰卡特 nr
1694 | HelenaBonhamCarter nr
1695 | 梁朝伟 nr
1696 | TonyLeungChiuWai nr
1697 | 汤唯 nr
1698 | WeiTang nr
1699 | 陈冲 nr
1700 | JoanChen nr
1701 | 王力宏 nr
1702 | Lee-HomWang nr
1703 | 庹宗华 nr
1704 | Chung-HuaTou nr
1705 | 周星驰 nr
1706 | StephenChow nr
1707 | 吴孟达 nr
1708 | ManTatNg nr
1709 | 张敏 nr
1710 | SharlaCheung nr
1711 | 徐锦江 nr
1712 | ElvisTsui nr
1713 | 钟丽缇 nr
1714 | ChristyChung nr
1715 | 赵文瑄 nr
1716 | WinstonChao nr
1717 | 归亚蕾 nr
1718 | Ya-leiKuei nr
1719 | 郎雄 nr
1720 | SihungLung nr
1721 | 金素梅 nr
1722 | MayChin nr
1723 | 米切尔利希藤斯坦 nr
1724 | MitchellLichtenstein nr
1725 | 本尼迪克特康伯巴奇 nr
1726 | BenedictCumberbatch nr
1727 | 凯拉奈特莉 nr
1728 | KeiraKnightley nr
1729 | 马修古迪 nr
1730 | MatthewGoode nr
1731 | 罗里金尼尔 nr
1732 | RoryKinnear nr
1733 | 艾伦里奇 nr
1734 | AllenLeech nr
1735 | 泰伊谢里丹 nr
1736 | TyeSheridan nr
1737 | 奥利维亚库克 nr
1738 | OliviaCooke nr
1739 | 本门德尔森 nr
1740 | BenMendelsohn nr
1741 | 马克里朗斯 nr
1742 | MarkRylance nr
1743 | 丽娜维特 nr
1744 | LenaWaithe nr
1745 | 梁朝伟 nr
1746 | TonyLeungChiuWai nr
1747 | 林青霞 nr
1748 | BrigitteLin nr
1749 | 张国荣 nr
1750 | LeslieCheung nr
1751 | 叶玉卿 nr
1752 | VeronicaYip nr
1753 | 张学友 nr
1754 | JackyCheung nr
1755 | 梁朝伟 nr
1756 | TonyLeungChiuWai nr
1757 | 张曼玉 nr
1758 | MaggieCheung nr
1759 | 潘迪华 nr
1760 | RebeccaPan nr
1761 | 萧炳林 nr
1762 | PingLamSiu nr
1763 | 张耀扬 nr
1764 | RoyCheung nr
1765 | 西恩潘 nr
1766 | SeanPenn nr
1767 | 达科塔范宁 nr
1768 | DakotaFanning nr
1769 | 米歇尔菲佛 nr
1770 | MichellePfeiffer nr
1771 | 黛安韦斯特 nr
1772 | DianneWiest nr
1773 | 洛雷塔迪瓦恩 nr
1774 | LorettaDevine nr
1775 | 艾米波勒 nr
1776 | AmyPoehler nr
1777 | 菲利丝史密斯 nr
1778 | PhyllisSmith nr
1779 | 理查德坎德 nr
1780 | RichardKind nr
1781 | 比尔哈德尔 nr
1782 | BillHader nr
1783 | 沈恩敬 nr
1784 | Eun-kyungShim nr
1785 | 闵孝琳 nr
1786 | Hyo-rinMin nr
1787 | 姜素拉 nr
1788 | So-RaKang nr
1789 | 南宝拉 nr
1790 | Bo-raNam nr
1791 | 陈熙琼 nr
1792 | Hee-kyungJin nr
1793 | 三船敏郎 nr
1794 | ToshirôMifune nr
1795 | 志村乔 nr
1796 | TakashiShimura nr
1797 | 津岛惠子 nr
1798 | KeikoTsushima nr
1799 | 岛崎雪子 nr
1800 | YukikoShimazaki nr
1801 | 藤原釜足 nr
1802 | KamatariFujiwara nr
1803 | 安德鲁加菲尔德 nr
1804 | AndrewGarfield nr
1805 | 萨姆沃辛顿 nr
1806 | SamWorthington nr
1807 | 文斯沃恩 nr
1808 | VinceVaughn nr
1809 | 雨果维文 nr
1810 | HugoWeaving nr
1811 | 卢克布雷西 nr
1812 | LukeBracey nr
1813 | 河正宇 nr
1814 | Jung-wooHa nr
1815 | 李璟荣 nr
1816 | Kyeong-yeongLee nr
1817 | 全慧珍 nr
1818 | Hye-jinJeon nr
1819 | 李大卫 nr
1820 | DavidLee nr
1821 | 金弘波 nr
1822 | Hong-FaKim nr
1823 | 安东尼博金斯 nr
1824 | AnthonyPerkins nr
1825 | 维拉迈尔斯 nr
1826 | VeraMiles nr
1827 | 约翰加文 nr
1828 | JohnGavin nr
1829 | 珍妮特利 nr
1830 | JanetLeigh nr
1831 | 马丁鲍尔萨姆 nr
1832 | MartinBalsam nr
1833 | 基努里维斯 nr
1834 | KeanuReeves nr
1835 | 劳伦斯菲什伯恩 nr
1836 | LaurenceFishburne nr
1837 | 凯瑞-安莫斯 nr
1838 | Carrie-AnneMoss nr
1839 | 雨果维文 nr
1840 | HugoWeaving nr
1841 | 神木隆之介 nr
1842 | RyûnosukeKamiki nr
1843 | 上白石萌音 nr
1844 | MoneKamishiraishi nr
1845 | 长泽雅美 nr
1846 | MasamiNagasawa nr
1847 | 市原悦子 nr
1848 | EtsukoIchihara nr
1849 | 成田凌 nr
1850 | RyoNarita nr
1851 | 雷沃纳尔 nr
1852 | LeighWhannell nr
1853 | 加利艾尔维斯 nr
1854 | CaryElwes nr
1855 | 丹尼格洛弗 nr
1856 | DannyGlover nr
1857 | 梁振邦 nr
1858 | KenLeung nr
1859 | 迪娜迈耶 nr
1860 | DinaMeyer nr
1861 | 弗兰西斯麦克多蒙德 nr
1862 | FrancesMcDormand nr
1863 | 伍迪哈里森 nr
1864 | WoodyHarrelson nr
1865 | 山姆洛克威尔 nr
1866 | SamRockwell nr
1867 | 艾比考尼什 nr
1868 | AbbieCornish nr
1869 | 卢卡斯赫奇斯 nr
1870 | LucasHedges nr
1871 | 马修麦康纳 nr
1872 | MatthewMcConaughey nr
1873 | 詹妮弗加纳 nr
1874 | JenniferGarner nr
1875 | 杰瑞德莱托 nr
1876 | JaredLeto nr
1877 | 斯蒂夫扎恩 nr
1878 | SteveZahn nr
1879 | 达拉斯罗伯特斯 nr
1880 | DallasRoberts nr
1881 | 尼古拉斯凯奇 nr
1882 | NicolasCage nr
1883 | 艾玛斯通 nr
1884 | EmmaStone nr
1885 | 瑞安雷诺兹 nr
1886 | RyanReynolds nr
1887 | 凯瑟琳基纳 nr
1888 | CatherineKeener nr
1889 | 霍卫民 nr
1890 | WeiminHuo nr
1891 | 王笑天 nr
1892 | XiaotianWang nr
1893 | 罗芸 nr
1894 | YunLuo nr
1895 | 杨瑜珍 nr
1896 | YuzhenYang nr
1897 | 孙黎 nr
1898 | LiSun nr
1899 | 马特达蒙 nr
1900 | MattDamon nr
1901 | 朱丽娅斯蒂尔斯 nr
1902 | JuliaStiles nr
1903 | 大卫斯特雷泽恩 nr
1904 | DavidStrathairn nr
1905 | 斯科特格伦 nr
1906 | ScottGlenn nr
1907 | 帕迪康斯戴恩 nr
1908 | PaddyConsidine nr
1909 | 周润发 nr
1910 | Yun-FatChow nr
1911 | 狄龙 nr
1912 | LungTi nr
1913 | 张国荣 nr
1914 | LeslieCheung nr
1915 | 朱宝意 nr
1916 | EmilyChu nr
1917 | 李子雄 nr
1918 | WaiseLee nr
1919 | 卡迪亚兰德 nr
1920 | KátiaLund nr
1921 | 亚历桑德雷罗德里格斯 nr
1922 | AlexandreRodrigues nr
1923 | 莱安德鲁菲尔米诺 nr
1924 | LeandroFirmino nr
1925 | 菲利佩哈根森 nr
1926 | PhellipeHaagensen nr
1927 | 道格拉斯席尔瓦 nr
1928 | DouglasSilva nr
1929 | 岛本须美 nr
1930 | SumiShimamoto nr
1931 | 松田洋治 nr
1932 | YôjiMatsuda nr
1933 | 榊原良子 nr
1934 | YoshikoSakakibara nr
1935 | 辻村真人 nr
1936 | MahitoTsujimura nr
1937 | 京田尚子 nr
1938 | HisakoKyôda nr
1939 | 周润发 nr
1940 | Yun-FatChow nr
1941 | 张国荣 nr
1942 | LeslieCheung nr
1943 | 钟楚红 nr
1944 | CherieChung nr
1945 | 朱江 nr
1946 | KongChu nr
1947 | 曾江 nr
1948 | KennethTsang nr
1949 | 唐钱德尔 nr
1950 | DonCheadle nr
1951 | 苏菲奥康内多 nr
1952 | SophieOkonedo nr
1953 | 华金菲尼克斯 nr
1954 | JoaquinPhoenix nr
1955 | 尼克诺特 nr
1956 | NickNolte nr
1957 | 哈基姆凯-卡西姆 nr
1958 | HakeemKae-Kazim nr
1959 | 绫濑遥 nr
1960 | HarukaAyase nr
1961 | 长泽雅美 nr
1962 | MasamiNagasawa nr
1963 | 夏帆 nr
1964 | Kaho nr
1965 | 广濑铃 nr
1966 | SuzuHirose nr
1967 | 大竹忍 nr
1968 | ShinobuÔtake nr
1969 | 伊桑霍克 nr
1970 | EthanHawke nr
1971 | 朱莉德尔佩 nr
1972 | JulieDelpy nr
1973 | 肖姆斯戴维-菲茨帕特里克 nr
1974 | SeamusDavey-Fitzpatrick nr
1975 | 詹妮弗普里尔 nr
1976 | JenniferPrior nr
1977 | 夏洛特普里尔 nr
1978 | CharlottePrior nr
1979 | 汤姆汉克斯 nr
1980 | TomHanks nr
1981 | 大卫摩斯 nr
1982 | DavidMorse nr
1983 | 迈克克拉克邓肯 nr
1984 | MichaelClarkeDuncan nr
1985 | 邦尼亨特 nr
1986 | BonnieHunt nr
1987 | 詹姆斯克伦威尔 nr
1988 | JamesCromwell nr
1989 | 华金菲尼克斯 nr
1990 | JoaquinPhoenix nr
1991 | 罗伯特德尼罗 nr
1992 | RobertDeNiro nr
1993 | 马克马龙 nr
1994 | MarcMaron nr
1995 | 莎姬贝兹 nr
1996 | ZazieBeetz nr
1997 | 谢伊惠格姆 nr
1998 | SheaWhigham nr
1999 | 盖皮尔斯 nr
2000 | GuyPearce nr
2001 | 凯瑞-安莫斯 nr
2002 | Carrie-AnneMoss nr
2003 | 乔潘托里亚诺 nr
2004 | JoePantoliano nr
2005 | 小马克布恩 nr
2006 | MarkBooneJunior nr
2007 | 拉什费加 nr
2008 | RussFega nr
2009 | 郭涛 nr
2010 | TaoGuo nr
2011 | 刘桦 nr
2012 | HuaLiu nr
2013 | 连晋 nr
2014 | TeddyLin nr
2015 | 黄渤 nr
2016 | BoHuang nr
2017 | 徐峥 nr
2018 | ZhengXu nr
2019 | 牛振华 nr
2020 | ZhenhuaNiu nr
2021 | 雷恪生 nr
2022 | KeshengLei nr
2023 | 李强 nr
2024 | QiangLi nr
2025 | 句号 nr
2026 | HaoJu nr
2027 | 吉恩凯利 nr
2028 | GeneKelly nr
2029 | 唐纳德奥康纳 nr
2030 | DonaldO'Connor nr
2031 | 黛比雷诺斯 nr
2032 | DebbieReynolds nr
2033 | 简哈根 nr
2034 | JeanHagen nr
2035 | 凯普鲍尔斯 nr
2036 | KempPowers nr
2037 | 杰米福克斯 nr
2038 | JamieFoxx nr
2039 | 蒂娜菲 nr
2040 | TinaFey nr
2041 | 菲利西亚拉斯海德 nr
2042 | PhyliciaRashad nr
2043 | 阿米尔-卡利布汤普森 nr
2044 | Ahmir-KhalibThompson nr
2045 | 凯尔杜拉 nr
2046 | KeirDullea nr
2047 | 加里洛克伍德 nr
2048 | GaryLockwood nr
2049 | 威廉姆西尔维斯特 nr
2050 | WilliamSylvester nr
2051 | 丹尼尔里希特 nr
2052 | DanielRichter nr
2053 | 雷纳德洛塞特 nr
2054 | LeonardRossiter nr
2055 | 吴君如 nr
2056 | SandraNg nr
2057 | 任达华 nr
2058 | SimonYam nr
2059 | 钟绍图 nr
2060 | BuzzChung nr
2061 | 李治廷 nr
2062 | AarifLee nr
2063 | 蔡颖恩 nr
2064 | EvelynChoi nr
2065 | 仲代达矢 nr
2066 | TatsuyaNakadai nr
2067 | 八千草薰 nr
2068 | KaoruYachigusa nr
2069 | 柳叶敏郎 nr
2070 | ToshirôYanagiba nr
2071 | 尾美利德 nr
2072 | ToshinoriOmi nr
2073 | 石野真子 nr
2074 | MakoIshino nr
2075 | 陈冠希 nr
2076 | EdisonChen nr
2077 | 余文乐 nr
2078 | ShawnYue nr
2079 | 曾志伟 nr
2080 | EricTsang nr
2081 | 黄秋生 nr
2082 | AnthonyWongChau-Sang nr
2083 | 达里奥格兰迪内蒂 nr
2084 | DaríoGrandinetti nr
2085 | 玛丽娅玛努尔 nr
2086 | MaríaMarull nr
2087 | 莫妮卡比利亚 nr
2088 | MónicaVilla nr
2089 | 丽塔科尔泰塞 nr
2090 | RitaCortese nr
2091 | 胡丽叶塔泽尔贝伯格 nr
2092 | JulietaZylberberg nr
2093 | 中川雅也 nr
2094 | LilyFranky nr
2095 | 安藤樱 nr
2096 | SakuraAndô nr
2097 | 松冈茉优 nr
2098 | MayuMatsuoka nr
2099 | 城桧吏 nr
2100 | JyoKairi nr
2101 | 佐佐木美结 nr
2102 | MiyuSasaki nr
2103 | 约翰C赖利 nr
2104 | JohnC.Reilly nr
2105 | 萨拉西尔弗曼 nr
2106 | SarahSilverman nr
2107 | 杰克麦克布瑞尔 nr
2108 | JackMcBrayer nr
2109 | 简林奇 nr
2110 | JaneLynch nr
2111 | 艾伦图代克 nr
2112 | AlanTudyk nr
2113 | 迈尔斯特勒 nr
2114 | MilesTeller nr
2115 | JK西蒙斯 nr
2116 | J.K.Simmons nr
2117 | 保罗雷瑟 nr
2118 | PaulReiser nr
2119 | 梅莉莎班诺伊 nr
2120 | MelissaBenoist nr
2121 | 奥斯汀斯托维尔 nr
2122 | AustinStowell nr
2123 | 雷罗马诺 nr
2124 | RayRomano nr
2125 | 约翰雷吉扎莫 nr
2126 | JohnLeguizamo nr
2127 | 丹尼斯利瑞 nr
2128 | DenisLeary nr
2129 | 杰克布莱克 nr
2130 | JackBlack nr
2131 | 梅利莎乔治 nr
2132 | MelissaGeorge nr
2133 | 利亚姆海姆斯沃斯 nr
2134 | LiamHemsworth nr
2135 | 迈克尔多曼 nr
2136 | MichaelDorman nr
2137 | 瑞秋卡帕尼 nr
2138 | RachaelCarpani nr
2139 | 艾玛朗 nr
2140 | EmmaLung nr
2141 | 洛芙琳坦丹 nr
2142 | LoveleenTandan nr
2143 | 戴夫帕特尔 nr
2144 | DevPatel nr
2145 | 沙鲁巴舒克拉 nr
2146 | SaurabhShukla nr
2147 | 亚尼卡普 nr
2148 | AnilKapoor nr
2149 | 拉詹德拉纳斯祖特施 nr
2150 | RajendranathZutshi nr
2151 | 张震 nr
2152 | ChenChang nr
2153 | 杨静怡 nr
2154 | LisaYang nr
2155 | 张国柱 nr
2156 | Kuo-ChuChang nr
2157 | 王启赞 nr
2158 | Chi-tsanWang nr
2159 | 林鸿铭 nr
2160 | HongmingLin nr
2161 | 张国荣 nr
2162 | LeslieCheung nr
2163 | 林青霞 nr
2164 | BrigitteLin nr
2165 | 梁朝伟 nr
2166 | TonyLeungChiuWai nr
2167 | 张学友 nr
2168 | JackyCheung nr
2169 | 张曼玉 nr
2170 | MaggieCheung nr
2171 | 高山南 nr
2172 | MinamiTakayama nr
2173 | 佐久间玲 nr
2174 | ReiSakuma nr
2175 | 户田惠子 nr
2176 | KeikoToda nr
2177 | 山口胜平 nr
2178 | KappeiYamaguchi nr
2179 | 信泽三惠子 nr
2180 | MiekoNobusawa nr
2181 | 杰克尼科尔森 nr
2182 | JackNicholson nr
2183 | 摩根弗里曼 nr
2184 | MorganFreeman nr
2185 | 西恩海耶斯 nr
2186 | SeanHayes nr
2187 | 贝弗利陶德 nr
2188 | BeverlyTodd nr
2189 | 罗伯莫洛 nr
2190 | RobMorrow nr
2191 | 古屋胜悟 nr
2192 | FuruyaShougo nr
2193 | 江守彻 nr
2194 | ToruEmori nr
2195 | 梅垣义明 nr
2196 | YoshiakiUmegaki nr
2197 | 冈本绫 nr
2198 | AyaOkamoto nr
2199 | 饭塚昭三 nr
2200 | ShôzôÎzuka nr
2201 | 庄益增 nr
2202 | CresChuang nr
2203 | 陈竹升 nr
2204 | Chu-shengChen nr
2205 | 戴立忍 nr
2206 | LeonDai nr
2207 | 张少怀 nr
2208 | Shao-HuaiChang nr
2209 | 陈以文 nr
2210 | YiwenChen nr
2211 | 山口胜平 nr
2212 | KappeiYamaguchi nr
2213 | 爱河里花子 nr
2214 | RikakoAikawa nr
2215 | 加藤清史郎 nr
2216 | SeishirôKatô nr
2217 | 原田知世 nr
2218 | TomoyoHarada nr
2219 | 川岛得爱 nr
2220 | TokuyoshiKawashima nr
2221 | 多布杰 nr
2222 | Duobujie nr
2223 | 张垒 nr
2224 | LeiZhang nr
2225 | 奇道 nr
2226 | DaoQi nr
2227 | 赵雪莹 nr
2228 | XueyingZhao nr
2229 | 马占林 nr
2230 | ZhanlinMa nr
2231 | 休格兰特 nr
2232 | HughGrant nr
2233 | 连姆尼森 nr
2234 | LiamNeeson nr
2235 | 科林费尔斯 nr
2236 | ColinFirth nr
2237 | 劳拉琳妮 nr
2238 | LauraLinney nr
2239 | 艾玛汤普森 nr
2240 | EmmaThompson nr
2241 | 娜塔莉波特曼 nr
2242 | NataliePortman nr
2243 | 米拉库尼斯 nr
2244 | MilaKunis nr
2245 | 文森特卡塞尔 nr
2246 | VincentCassel nr
2247 | 芭芭拉赫希 nr
2248 | BarbaraHershey nr
2249 | 薇诺娜瑞德 nr
2250 | WinonaRyder nr
2251 | 查理卓别林 nr
2252 | CharlesChaplin nr
2253 | 弗吉尼亚切瑞尔 nr
2254 | VirginiaCherrill nr
2255 | 佛罗伦斯李 nr
2256 | FlorenceLee nr
2257 | 亨利伯格曼 nr
2258 | HenryBergman nr
2259 | 珍哈露 nr
2260 | JeanHarlow nr
2261 | 杰克吉伦哈尔 nr
2262 | JakeGyllenhaal nr
2263 | 维拉法米加 nr
2264 | VeraFarmiga nr
2265 | 米歇尔莫纳汉 nr
2266 | MichelleMonaghan nr
2267 | 杰弗里怀特 nr
2268 | JeffreyWright nr
2269 | 拉塞尔皮特斯 nr
2270 | RussellPeters nr
2271 | 卡西阿弗莱克 nr
2272 | CaseyAffleck nr
2273 | 卢卡斯赫奇斯 nr
2274 | LucasHedges nr
2275 | 米歇尔威廉姆斯 nr
2276 | MichelleWilliams nr
2277 | CJ威尔逊 nr
2278 | C.J.Wilson nr
2279 | 凯尔钱德勒 nr
2280 | KyleChandler nr
2281 | 达斯汀霍夫曼 nr
2282 | DustinHoffman nr
2283 | 汤姆克鲁斯 nr
2284 | TomCruise nr
2285 | 瓦莱丽亚戈利诺 nr
2286 | ValeriaGolino nr
2287 | 邦尼亨特 nr
2288 | BonnieHunt nr
2289 | 贝丝格兰特 nr
2290 | BethGrant nr
2291 | 拉米马雷克 nr
2292 | RamiMalek nr
2293 | 本哈迪 nr
2294 | BenHardy nr
2295 | 约瑟夫梅泽罗 nr
2296 | JosephMazzello nr
2297 | 格威利姆李 nr
2298 | GwilymLee nr
2299 | 艾伦里奇 nr
2300 | AllenLeech nr
2301 | 平采娜乐维瑟派布恩 nr
2302 | PimchanokLeuwisetpaibul nr
2303 | 马里奥毛瑞尔 nr
2304 | MarioMaurer nr
2305 | 苏达拉布查蓬 nr
2306 | SudaratButrprom nr
2307 | 雅尼卡桑普蕾舞 nr
2308 | YanikaThongprayoon nr
2309 | 瑞恩高斯林 nr
2310 | RyanGosling nr
2311 | 瑞秋麦克亚当斯 nr
2312 | RachelMcAdams nr
2313 | 吉娜罗兰兹 nr
2314 | GenaRowlands nr
2315 | 詹姆斯加纳 nr
2316 | JamesGarner nr
2317 | 斯塔尔勒塔杜波利斯 nr
2318 | StarlettaDuPois nr
2319 | 张曼玉 nr
2320 | MaggieCheung nr
2321 | 王祖贤 nr
2322 | JoeyWong nr
2323 | 赵文卓 nr
2324 | ManCheukChiu nr
2325 | 吴兴国 nr
2326 | Hsing-kuoWu nr
2327 | 马精武 nr
2328 | JingwuMa nr
2329 | 海利乔奥斯蒙 nr
2330 | HaleyJoelOsment nr
2331 | 弗兰西丝奥康纳 nr
2332 | FrancesO'Connor nr
2333 | 山姆洛巴兹 nr
2334 | SamRobards nr
2335 | 杰克托马斯 nr
2336 | JakeThomas nr
2337 | 裘德洛 nr
2338 | JudeLaw nr
2339 | 吉娜戴维斯 nr
2340 | GeenaDavis nr
2341 | 苏珊萨兰登 nr
2342 | SusanSarandon nr
2343 | 哈威凯特尔 nr
2344 | HarveyKeitel nr
2345 | 迈克尔马德森 nr
2346 | MichaelMadsen nr
2347 | 布拉德皮特 nr
2348 | BradPitt nr
2349 | 路易德菲奈斯 nr
2350 | LouisdeFunès nr
2351 | 布尔维尔 nr
2352 | Bourvil nr
2353 | 克劳迪奥布鲁克 nr
2354 | ClaudioBrook nr
2355 | 安德丽帕里西 nr
2356 | AndréaParisy nr
2357 | 科莱特布罗塞 nr
2358 | ColetteBrosset nr
2359 | 阿诺施瓦辛格 nr
2360 | ArnoldSchwarzenegger nr
2361 | 琳达汉密尔顿 nr
2362 | LindaHamilton nr
2363 | 爱德华福隆 nr
2364 | EdwardFurlong nr
2365 | 罗伯特帕特里克 nr
2366 | RobertPatrick nr
2367 | 阿尔伯恩 nr
2368 | EarlBoen nr
2369 | 汤姆哈迪 nr
2370 | TomHardy nr
2371 | 查理兹塞隆 nr
2372 | CharlizeTheron nr
2373 | 尼古拉斯霍尔特 nr
2374 | NicholasHoult nr
2375 | 休基斯-拜恩 nr
2376 | HughKeays-Byrne nr
2377 | 乔什赫尔曼 nr
2378 | JoshHelman nr
2379 | 三船敏郎 nr
2380 | ToshirôMifune nr
2381 | 京町子 nr
2382 | MachikoKyô nr
2383 | 森雅之 nr
2384 | MasayukiMori nr
2385 | 志村乔 nr
2386 | TakashiShimura nr
2387 | 千秋实 nr
2388 | MinoruChiaki nr
2389 | 张曼玉 nr
2390 | MaggieCheung nr
2391 | 林青霞 nr
2392 | BrigitteLin nr
2393 | 梁家辉 nr
2394 | TonyLeung nr
2395 | 甄子丹 nr
2396 | DonnieYen nr
2397 | 熊欣欣 nr
2398 | XinxinXiong nr
2399 | 布拉德皮特 nr
2400 | BradPitt nr
2401 | 梅拉尼罗兰 nr
2402 | MélanieLaurent nr
2403 | 克里斯托弗瓦尔兹 nr
2404 | ChristophWaltz nr
2405 | 伊莱罗斯 nr
2406 | EliRoth nr
2407 | 迈克尔法斯宾德 nr
2408 | MichaelFassbender nr
2409 | 伊桑霍克 nr
2410 | EthanHawke nr
2411 | 乌玛瑟曼 nr
2412 | UmaThurman nr
2413 | 裘德洛 nr
2414 | JudeLaw nr
2415 | 艾伦阿金 nr
2416 | AlanArkin nr
2417 | 戈尔维达尔 nr
2418 | GoreVidal nr
2419 | 神月柚莉爱 nr
2420 | YuriaKozuki nr
2421 | 土井洋辉 nr
2422 | HirokiDoi nr
2423 | 山口智子 nr
2424 | TomokoYamaguchi nr
2425 | 长岛一茂 nr
2426 | KazushigeNagashima nr
2427 | 天海祐希 nr
2428 | YukiAmami nr
2429 | 刘晓庆 nr
2430 | XiaoqingLiu nr
2431 | 姜文 nr
2432 | WenJiang nr
2433 | 郑在石 nr
2434 | ZaishiZheng nr
2435 | 张光北 nr
2436 | GuangbeiZhang nr
2437 | 徐松子 nr
2438 | SongziXu nr
2439 | 山口朱美 nr
2440 | YamaguchiAkemi nr
2441 | 志乃原良子 nr
2442 | nan nr
2443 | 白石绫乃 nr
2444 | AyanoSHIRAISHI nr
2445 | 辰巳努 nr
2446 | TsutomuTatsumi nr
2447 | 野坂昭如 nr
2448 | AkiyukiNosaka nr
2449 | 菅田将晖 nr
2450 | MasakiSuda nr
2451 | 有村架纯 nr
2452 | KasumiArimura nr
2453 | 细田佳央太 nr
2454 | KanataHosoda nr
2455 | 清原果耶 nr
2456 | KayaKiyohara nr
2457 | 小田切让 nr
2458 | JôOdagiri nr
2459 | 艾米丽芭尔多尼 nr
2460 | EmilyBaldoni nr
2461 | 莫瑞史特林 nr
2462 | MaurySterling nr
2463 | 尼古拉斯布兰登 nr
2464 | NicholasBrendon nr
2465 | 劳伦斯卡法莉娅 nr
2466 | LoreneScafaria nr
2467 | 伊丽莎白格瑞斯 nr
2468 | ElizabethGracen nr
2469 | 瑞恩高斯林 nr
2470 | RyanGosling nr
2471 | 艾玛斯通 nr
2472 | EmmaStone nr
2473 | 约翰传奇 nr
2474 | JohnLegend nr
2475 | 罗丝玛丽德薇特 nr
2476 | RosemarieDeWitt nr
2477 | 芬维特洛克 nr
2478 | FinnWittrock nr
2479 | 雅各布特伦布莱 nr
2480 | JacobTremblay nr
2481 | 朱莉娅罗伯茨 nr
2482 | JuliaRoberts nr
2483 | 伊扎贝拉维多维奇 nr
2484 | IzabelaVidovic nr
2485 | 欧文威尔逊 nr
2486 | OwenWilson nr
2487 | 诺亚尤佩 nr
2488 | NoahJupe nr
2489 | 基努里维斯 nr
2490 | KeanuReeves nr
2491 | 劳伦斯菲什伯恩 nr
2492 | LaurenceFishburne nr
2493 | 凯瑞-安莫斯 nr
2494 | Carrie-AnneMoss nr
2495 | 雨果维文 nr
2496 | HugoWeaving nr
2497 | 韦绍兰 nr
2498 | ShaolanWei nr
2499 | 罗善学 nr
2500 | ShanxueLuo nr
2501 | 毛银梅 nr
2502 | YinmeiMao nr
2503 | 李美金 nr
2504 | MeijinLi nr
2505 | 李爱连 nr
2506 | AilianLi nr
2507 | 丹尼尔雷德克里夫 nr
2508 | DanielRadcliffe nr
2509 | 艾玛沃森 nr
2510 | EmmaWatson nr
2511 | 鲁伯特格林特 nr
2512 | RupertGrint nr
2513 | 海伦娜伯翰卡特 nr
2514 | HelenaBonhamCarter nr
2515 | 拉尔夫费因斯 nr
2516 | RalphFiennes nr
2517 | 莱昂纳多迪卡普里奥 nr
2518 | LeonardoDiCaprio nr
2519 | 杰曼翰苏 nr
2520 | DjimonHounsou nr
2521 | 詹妮弗康纳利 nr
2522 | JenniferConnelly nr
2523 | 阿诺德沃斯洛 nr
2524 | ArnoldVosloo nr
2525 | 大卫哈雷伍德 nr
2526 | DavidHarewood nr
2527 | 尼古拉斯凯奇 nr
2528 | NicolasCage nr
2529 | 布里吉特莫伊纳汉 nr
2530 | BridgetMoynahan nr
2531 | 杰瑞德莱托 nr
2532 | JaredLeto nr
2533 | 伊安霍姆 nr
2534 | IanHolm nr
2535 | 伊桑霍克 nr
2536 | EthanHawke nr
2537 | 马特达蒙 nr
2538 | MattDamon nr
2539 | 杰西卡查斯坦 nr
2540 | JessicaChastain nr
2541 | 克里斯汀韦格 nr
2542 | KristenWiig nr
2543 | 杰夫丹尼尔斯 nr
2544 | JeffDaniels nr
2545 | 迈克尔佩纳 nr
2546 | MichaelPeña nr
2547 | 阿部宽 nr
2548 | HiroshiAbe nr
2549 | 夏川结衣 nr
2550 | YuiNatsukawa nr
2551 | 江原由希子 nr
2552 | YOU nr
2553 | 高桥和也 nr
2554 | KazuyaTakahashi nr
2555 | 田中祥平 nr
2556 | ShoheiTanaka nr
2557 | 布丽拉尔森 nr
2558 | BrieLarson nr
2559 | 雅各布特伦布莱 nr
2560 | JacobTremblay nr
2561 | 肖恩布里吉格斯 nr
2562 | SeanBridgers nr
2563 | 温迪古逊 nr
2564 | WendyCrewson nr
2565 | 阿曼达布鲁盖尔 nr
2566 | AmandaBrugel nr
2567 | 伍经纬 nr
2568 | JingweiWu nr
2569 | 费雯丽 nr
2570 | VivienLeigh nr
2571 | 罗伯特泰勒 nr
2572 | RobertTaylor nr
2573 | 露塞尔沃特森 nr
2574 | LucileWatson nr
2575 | 弗吉尼亚菲尔德 nr
2576 | VirginiaField nr
2577 | 庄司美代子 nr
2578 | MiyokoShôji nr
2579 | 小山茉美 nr
2580 | MamiKoyama nr
2581 | 折笠富美子 nr
2582 | FumikoOrikasa nr
2583 | 饭塚昭三 nr
2584 | ShôzôÎzuka nr
2585 | 小野坂昌也 nr
2586 | MasayaOnosaka nr
2587 | 马特达蒙 nr
2588 | MattDamon nr
2589 | 布莱恩考克斯 nr
2590 | BrianCox nr
2591 | 琼艾伦 nr
2592 | JoanAllen nr
2593 | 卡尔厄本 nr
2594 | KarlUrban nr
2595 | 弗朗卡波滕特 nr
2596 | FrankaPotente nr
2597 | 本斯蒂勒 nr
2598 | BenStiller nr
2599 | 克里斯汀韦格 nr
2600 | KristenWiig nr
2601 | 亚当斯科特 nr
2602 | AdamScott nr
2603 | 西恩潘 nr
2604 | SeanPenn nr
2605 | 凯瑟琳哈恩 nr
2606 | KathrynHahn nr
2607 | 丹尼尔雷德克里夫 nr
2608 | DanielRadcliffe nr
2609 | 艾玛沃森 nr
2610 | EmmaWatson nr
2611 | 鲁伯特格林特 nr
2612 | RupertGrint nr
2613 | 加里奥德曼 nr
2614 | GaryOldman nr
2615 | 拉尔夫费因斯 nr
2616 | RalphFiennes nr
2617 | 桑德拉布洛克 nr
2618 | SandraBullock nr
2619 | 蒂姆麦格罗 nr
2620 | TimMcGraw nr
2621 | 昆东亚伦 nr
2622 | QuintonAaron nr
2623 | 杰海德 nr
2624 | JaeHead nr
2625 | 莉莉柯林斯 nr
2626 | LilyCollins nr
2627 | 沙梅克摩尔 nr
2628 | ShameikMoore nr
2629 | 杰克约翰逊 nr
2630 | JakeJohnson nr
2631 | 海莉斯坦菲尔德 nr
2632 | HaileeSteinfeld nr
2633 | 马赫沙拉阿里 nr
2634 | MahershalaAli nr
2635 | 吕晓禾 nr
2636 | XiaoheLü nr
2637 | 唐国强 nr
2638 | GuoqiangTang nr
2639 | 何伟 nr
2640 | WeiHe nr
2641 | 童超 nr
2642 | ChaoTong nr
2643 | 盖克 nr
2644 | KeGe nr
2645 | 马特达蒙 nr
2646 | MattDamon nr
2647 | 弗朗卡波滕特 nr
2648 | FrankaPotente nr
2649 | 克里斯库珀 nr
2650 | ChrisCooper nr
2651 | 克里夫欧文 nr
2652 | CliveOwen nr
2653 | 朱丽娅斯蒂尔斯 nr
2654 | JuliaStiles nr
2655 | 张国荣 nr
2656 | LeslieCheung nr
2657 | 张曼玉 nr
2658 | MaggieCheung nr
2659 | 刘嘉玲 nr
2660 | CarinaLau nr
2661 | 刘德华 nr
2662 | AndyLau nr
2663 | 张学友 nr
2664 | JackyCheung nr
2665 | 凯特温丝莱特 nr
2666 | KateWinslet nr
2667 | 大卫克劳斯 nr
2668 | DavidKross nr
2669 | 拉尔夫费因斯 nr
2670 | RalphFiennes nr
2671 | 詹妮特海因 nr
2672 | JeanetteHain nr
2673 | 苏珊娜洛塔尔 nr
2674 | SusanneLothar nr
2675 | 凯拉奈特莉 nr
2676 | KeiraKnightley nr
2677 | 马克鲁弗洛 nr
2678 | MarkRuffalo nr
2679 | 亚当莱文 nr
2680 | AdamLevine nr
2681 | 詹姆斯柯登 nr
2682 | JamesCorden nr
2683 | 海莉斯坦菲尔德 nr
2684 | HaileeSteinfeld nr
2685 | 布拉德皮特 nr
2686 | BradPitt nr
2687 | 安东尼霍普金斯 nr
2688 | AnthonyHopkins nr
2689 | 艾丹奎因 nr
2690 | AidanQuinn nr
2691 | 朱莉娅奥蒙德 nr
2692 | JuliaOrmond nr
2693 | 亨利托马斯 nr
2694 | HenryThomas nr
2695 | 巩俐 nr
2696 | LiGong nr
2697 | 马精武 nr
2698 | JingwuMa nr
2699 | 何赛飞 nr
2700 | SaifeiHe nr
2701 | 曹翠芬 nr
2702 | CuifenCao nr
2703 | 周琦 nr
2704 | QiZhou nr
2705 | 剧情 ng
2706 | 犯罪 ng
2707 | 爱情 ng
2708 | 同性 ng
2709 | 灾难 ng
2710 | 动作 ng
2711 | 动画 ng
2712 | 奇幻 ng
2713 | 喜剧 ng
2714 | 战争 ng
2715 | 科幻 ng
2716 | 冒险 ng
2717 | 悬疑 ng
2718 | 历史 ng
2719 | 音乐 ng
2720 | 歌舞 ng
2721 | 惊悚 ng
2722 | 古装 ng
2723 | 家庭 ng
2724 | 传记 ng
2725 | 西部 ng
2726 | 运动 ng
2727 | 情色 ng
2728 | 儿童 ng
2729 | 纪录片 ng
2730 | 武侠 ng
2731 | 恐怖 ng
2732 |
--------------------------------------------------------------------------------
/backend/spider/database_250/actor_movie.csv:
--------------------------------------------------------------------------------
1 | actor_id,movie_id
2 | 0,0
3 | 1,0
4 | 2,0
5 | 3,0
6 | 4,0
7 | 5,1
8 | 6,1
9 | 7,1
10 | 8,1
11 | 9,1
12 | 10,2
13 | 11,2
14 | 12,2
15 | 13,2
16 | 14,2
17 | 15,3
18 | 16,3
19 | 17,3
20 | 18,3
21 | 19,3
22 | 20,4
23 | 21,4
24 | 22,4
25 | 23,4
26 | 24,4
27 | 25,5
28 | 26,5
29 | 27,5
30 | 28,5
31 | 29,5
32 | 30,6
33 | 31,6
34 | 32,6
35 | 33,6
36 | 34,6
37 | 35,7
38 | 36,7
39 | 37,7
40 | 38,7
41 | 39,7
42 | 40,8
43 | 41,8
44 | 42,8
45 | 43,8
46 | 44,8
47 | 45,9
48 | 46,9
49 | 47,9
50 | 48,9
51 | 49,9
52 | 50,10
53 | 51,10
54 | 52,10
55 | 53,10
56 | 54,10
57 | 55,11
58 | 56,11
59 | 57,11
60 | 58,11
61 | 59,11
62 | 60,12
63 | 61,12
64 | 62,12
65 | 63,12
66 | 64,12
67 | 65,13
68 | 66,13
69 | 67,13
70 | 68,13
71 | 69,13
72 | 70,14
73 | 71,14
74 | 72,14
75 | 73,14
76 | 74,14
77 | 75,15
78 | 76,15
79 | 77,15
80 | 78,15
81 | 79,15
82 | 80,16
83 | 81,16
84 | 82,16
85 | 83,16
86 | 84,17
87 | 85,17
88 | 86,17
89 | 87,17
90 | 88,18
91 | 89,18
92 | 90,18
93 | 91,18
94 | 92,18
95 | 93,19
96 | 94,19
97 | 95,19
98 | 96,19
99 | 97,19
100 | 98,20
101 | 99,20
102 | 100,20
103 | 101,20
104 | 102,20
105 | 103,21
106 | 104,21
107 | 105,21
108 | 106,21
109 | 107,21
110 | 108,22
111 | 109,22
112 | 110,22
113 | 111,22
114 | 112,23
115 | 113,23
116 | 114,23
117 | 115,23
118 | 116,23
119 | 117,24
120 | 118,24
121 | 119,24
122 | 120,24
123 | 121,24
124 | 122,25
125 | 123,25
126 | 124,25
127 | 125,25
128 | 126,25
129 | 127,26
130 | 128,26
131 | 129,26
132 | 130,26
133 | 131,26
134 | 132,27
135 | 133,27
136 | 134,27
137 | 135,27
138 | 136,27
139 | 137,28
140 | 138,28
141 | 139,28
142 | 140,28
143 | 141,28
144 | 142,29
145 | 143,29
146 | 144,29
147 | 145,29
148 | 146,29
149 | 147,30
150 | 148,30
151 | 149,30
152 | 150,30
153 | 151,30
154 | 152,31
155 | 153,31
156 | 154,31
157 | 155,31
158 | 156,31
159 | 157,32
160 | 158,32
161 | 159,32
162 | 160,32
163 | 161,32
164 | 162,33
165 | 163,33
166 | 164,33
167 | 165,33
168 | 166,34
169 | 167,34
170 | 168,34
171 | 169,34
172 | 170,35
173 | 171,35
174 | 172,35
175 | 173,35
176 | 174,35
177 | 175,36
178 | 176,36
179 | 177,36
180 | 178,36
181 | 179,36
182 | 180,37
183 | 181,37
184 | 182,37
185 | 183,37
186 | 184,37
187 | 185,38
188 | 186,38
189 | 187,38
190 | 188,38
191 | 189,38
192 | 190,39
193 | 191,39
194 | 192,39
195 | 193,39
196 | 194,39
197 | 195,40
198 | 196,40
199 | 197,40
200 | 198,40
201 | 199,40
202 | 200,41
203 | 201,41
204 | 202,41
205 | 203,41
206 | 204,41
207 | 205,42
208 | 206,42
209 | 207,42
210 | 208,42
211 | 209,42
212 | 210,43
213 | 211,43
214 | 212,43
215 | 213,43
216 | 214,43
217 | 215,44
218 | 216,44
219 | 217,44
220 | 218,44
221 | 219,44
222 | 220,45
223 | 221,45
224 | 222,45
225 | 223,45
226 | 224,45
227 | 225,46
228 | 226,46
229 | 227,46
230 | 228,46
231 | 229,46
232 | 230,47
233 | 231,47
234 | 232,47
235 | 233,47
236 | 234,47
237 | 235,48
238 | 236,48
239 | 237,48
240 | 238,48
241 | 239,48
242 | 240,49
243 | 241,49
244 | 242,49
245 | 243,49
246 | 244,49
247 | 245,50
248 | 246,50
249 | 247,50
250 | 248,50
251 | 249,50
252 | 250,51
253 | 251,51
254 | 252,51
255 | 253,51
256 | 254,51
257 | 255,52
258 | 256,52
259 | 257,52
260 | 258,52
261 | 259,52
262 | 260,53
263 | 261,53
264 | 262,53
265 | 263,53
266 | 264,53
267 | 265,54
268 | 266,54
269 | 267,54
270 | 268,54
271 | 269,54
272 | 270,55
273 | 271,55
274 | 272,55
275 | 273,55
276 | 274,55
277 | 275,56
278 | 276,56
279 | 277,56
280 | 278,56
281 | 279,57
282 | 280,57
283 | 281,57
284 | 282,57
285 | 283,57
286 | 284,58
287 | 285,58
288 | 286,58
289 | 287,58
290 | 288,59
291 | 289,59
292 | 290,59
293 | 291,59
294 | 292,59
295 | 293,60
296 | 294,60
297 | 295,60
298 | 296,60
299 | 297,60
300 | 298,61
301 | 299,61
302 | 300,61
303 | 301,61
304 | 302,61
305 | 303,62
306 | 304,62
307 | 305,62
308 | 306,62
309 | 307,62
310 | 308,63
311 | 309,63
312 | 310,63
313 | 311,63
314 | 312,63
315 | 313,64
316 | 314,64
317 | 315,64
318 | 316,64
319 | 317,64
320 | 318,65
321 | 319,65
322 | 320,65
323 | 321,65
324 | 322,65
325 | 323,66
326 | 324,66
327 | 325,66
328 | 326,66
329 | 327,66
330 | 328,67
331 | 329,67
332 | 330,67
333 | 331,67
334 | 332,67
335 | 333,68
336 | 334,68
337 | 335,68
338 | 336,68
339 | 337,68
340 | 338,69
341 | 339,69
342 | 340,69
343 | 341,69
344 | 342,69
345 | 343,70
346 | 344,70
347 | 345,70
348 | 346,70
349 | 347,70
350 | 348,71
351 | 349,71
352 | 350,71
353 | 351,71
354 | 352,71
355 | 353,72
356 | 354,72
357 | 355,72
358 | 356,72
359 | 357,72
360 | 358,73
361 | 359,73
362 | 360,73
363 | 361,73
364 | 362,73
365 | 363,74
366 | 364,74
367 | 365,74
368 | 366,74
369 | 367,74
370 | 368,75
371 | 369,75
372 | 370,75
373 | 371,75
374 | 372,75
375 | 373,76
376 | 374,76
377 | 375,76
378 | 376,76
379 | 377,76
380 | 378,77
381 | 379,77
382 | 380,77
383 | 381,77
384 | 382,77
385 | 383,78
386 | 384,78
387 | 385,78
388 | 386,78
389 | 387,78
390 | 388,79
391 | 389,79
392 | 390,79
393 | 391,79
394 | 392,79
395 | 393,80
396 | 394,80
397 | 395,80
398 | 396,80
399 | 397,81
400 | 398,81
401 | 399,81
402 | 400,81
403 | 401,81
404 | 402,82
405 | 403,82
406 | 404,82
407 | 405,82
408 | 406,82
409 | 407,83
410 | 408,83
411 | 409,83
412 | 410,83
413 | 411,83
414 | 412,84
415 | 413,84
416 | 414,84
417 | 415,84
418 | 416,84
419 | 417,85
420 | 418,85
421 | 419,85
422 | 420,85
423 | 421,85
424 | 422,86
425 | 423,86
426 | 424,86
427 | 425,86
428 | 426,86
429 | 427,87
430 | 428,87
431 | 429,87
432 | 430,87
433 | 431,87
434 | 432,88
435 | 433,88
436 | 434,88
437 | 435,88
438 | 436,88
439 | 437,89
440 | 438,89
441 | 439,89
442 | 440,89
443 | 441,89
444 | 442,90
445 | 443,90
446 | 444,90
447 | 445,90
448 | 446,91
449 | 447,91
450 | 448,91
451 | 449,91
452 | 450,91
453 | 451,92
454 | 452,92
455 | 453,92
456 | 454,92
457 | 455,92
458 | 456,93
459 | 457,93
460 | 458,93
461 | 459,93
462 | 460,93
463 | 461,94
464 | 462,94
465 | 463,94
466 | 464,94
467 | 465,94
468 | 466,95
469 | 467,95
470 | 468,95
471 | 469,95
472 | 470,95
473 | 471,96
474 | 472,96
475 | 473,96
476 | 474,96
477 | 475,96
478 | 476,97
479 | 477,97
480 | 478,97
481 | 479,97
482 | 480,97
483 | 481,98
484 | 482,98
485 | 483,98
486 | 484,98
487 | 485,98
488 | 486,99
489 | 487,99
490 | 488,99
491 | 489,99
492 | 490,99
493 | 491,100
494 | 492,100
495 | 493,100
496 | 494,100
497 | 495,100
498 | 496,101
499 | 497,101
500 | 498,101
501 | 499,101
502 | 500,101
503 | 501,102
504 | 502,102
505 | 503,102
506 | 504,102
507 | 505,102
508 | 506,103
509 | 507,103
510 | 508,103
511 | 509,103
512 | 510,103
513 | 511,104
514 | 512,104
515 | 513,104
516 | 514,104
517 | 515,104
518 | 516,105
519 | 517,105
520 | 518,105
521 | 519,105
522 | 520,105
523 | 521,106
524 | 522,106
525 | 523,106
526 | 524,106
527 | 525,106
528 | 526,107
529 | 527,107
530 | 528,107
531 | 529,107
532 | 530,107
533 | 531,108
534 | 532,108
535 | 533,108
536 | 534,108
537 | 535,108
538 | 536,109
539 | 537,109
540 | 538,109
541 | 539,109
542 | 540,109
543 | 541,110
544 | 542,110
545 | 543,110
546 | 544,110
547 | 545,110
548 | 546,111
549 | 547,111
550 | 548,111
551 | 549,111
552 | 550,112
553 | 551,112
554 | 552,112
555 | 553,112
556 | 554,112
557 | 555,113
558 | 556,113
559 | 557,113
560 | 558,113
561 | 559,113
562 | 560,114
563 | 561,114
564 | 562,114
565 | 563,114
566 | 564,114
567 | 565,115
568 | 566,115
569 | 567,115
570 | 568,115
571 | 569,115
572 | 570,116
573 | 571,116
574 | 572,116
575 | 573,116
576 | 574,116
577 | 575,117
578 | 576,117
579 | 577,117
580 | 578,117
581 | 579,117
582 | 580,118
583 | 581,118
584 | 582,118
585 | 583,118
586 | 584,118
587 | 585,119
588 | 586,119
589 | 587,119
590 | 588,119
591 | 589,119
592 | 590,120
593 | 591,120
594 | 592,120
595 | 593,120
596 | 594,120
597 | 595,121
598 | 596,121
599 | 597,121
600 | 598,121
601 | 599,121
602 | 600,122
603 | 601,122
604 | 602,122
605 | 603,122
606 | 604,122
607 | 605,123
608 | 606,123
609 | 607,123
610 | 608,123
611 | 609,123
612 | 610,124
613 | 611,124
614 | 612,124
615 | 613,124
616 | 614,124
617 | 615,125
618 | 616,125
619 | 617,125
620 | 618,125
621 | 619,125
622 | 620,126
623 | 621,126
624 | 622,126
625 | 623,126
626 | 624,126
627 | 625,127
628 | 626,127
629 | 627,127
630 | 628,127
631 | 629,127
632 | 630,128
633 | 631,128
634 | 632,128
635 | 633,128
636 | 634,128
637 | 635,129
638 | 636,129
639 | 637,129
640 | 638,129
641 | 639,129
642 | 640,130
643 | 641,130
644 | 642,130
645 | 643,130
646 | 644,131
647 | 645,131
648 | 646,131
649 | 647,131
650 | 648,131
651 | 649,132
652 | 650,132
653 | 651,132
654 | 652,132
655 | 653,132
656 | 654,133
657 | 655,133
658 | 656,133
659 | 657,133
660 | 658,133
661 | 659,134
662 | 660,134
663 | 661,134
664 | 662,134
665 | 663,134
666 | 664,135
667 | 665,135
668 | 666,135
669 | 667,135
670 | 668,135
671 | 669,136
672 | 670,136
673 | 671,136
674 | 672,136
675 | 673,136
676 | 674,137
677 | 675,137
678 | 676,137
679 | 677,137
680 | 678,137
681 | 679,138
682 | 680,138
683 | 681,138
684 | 682,138
685 | 683,138
686 | 684,139
687 | 685,139
688 | 686,139
689 | 687,139
690 | 688,139
691 | 689,140
692 | 690,140
693 | 691,140
694 | 692,140
695 | 693,140
696 | 694,141
697 | 695,141
698 | 696,141
699 | 697,141
700 | 698,142
701 | 699,142
702 | 700,142
703 | 701,142
704 | 702,142
705 | 703,143
706 | 704,143
707 | 705,143
708 | 706,143
709 | 707,143
710 | 708,144
711 | 709,144
712 | 710,144
713 | 711,144
714 | 712,144
715 | 713,145
716 | 714,145
717 | 715,145
718 | 716,145
719 | 717,146
720 | 718,146
721 | 719,146
722 | 720,146
723 | 721,146
724 | 722,147
725 | 723,147
726 | 724,147
727 | 725,147
728 | 726,147
729 | 727,148
730 | 728,148
731 | 729,148
732 | 730,148
733 | 731,148
734 | 732,149
735 | 733,149
736 | 734,149
737 | 735,149
738 | 736,149
739 | 737,150
740 | 738,150
741 | 739,150
742 | 740,150
743 | 741,150
744 | 742,151
745 | 743,151
746 | 744,151
747 | 745,151
748 | 746,151
749 | 747,152
750 | 748,152
751 | 749,152
752 | 750,152
753 | 751,152
754 | 752,153
755 | 753,153
756 | 754,153
757 | 755,153
758 | 756,153
759 | 757,154
760 | 758,154
761 | 759,154
762 | 760,154
763 | 761,154
764 | 762,155
765 | 763,155
766 | 764,155
767 | 765,155
768 | 766,156
769 | 767,156
770 | 768,156
771 | 769,156
772 | 770,156
773 | 771,157
774 | 772,157
775 | 773,157
776 | 774,157
777 | 775,157
778 | 776,158
779 | 777,158
780 | 778,158
781 | 779,158
782 | 780,158
783 | 781,159
784 | 782,159
785 | 783,159
786 | 784,159
787 | 785,159
788 | 786,160
789 | 787,160
790 | 788,160
791 | 789,160
792 | 790,160
793 | 791,161
794 | 792,161
795 | 793,161
796 | 794,161
797 | 795,162
798 | 796,162
799 | 797,162
800 | 798,162
801 | 799,162
802 | 800,163
803 | 801,163
804 | 802,163
805 | 803,163
806 | 804,163
807 | 805,164
808 | 806,164
809 | 807,164
810 | 808,164
811 | 809,164
812 | 810,165
813 | 811,165
814 | 812,165
815 | 813,165
816 | 814,165
817 | 815,166
818 | 816,166
819 | 817,166
820 | 818,166
821 | 819,167
822 | 820,167
823 | 821,167
824 | 822,167
825 | 823,167
826 | 824,168
827 | 825,168
828 | 826,168
829 | 827,168
830 | 828,168
831 | 829,169
832 | 830,169
833 | 831,169
834 | 832,169
835 | 833,169
836 | 834,170
837 | 835,170
838 | 836,170
839 | 837,170
840 | 838,170
841 | 839,171
842 | 840,171
843 | 841,171
844 | 842,171
845 | 843,171
846 | 844,172
847 | 845,172
848 | 846,172
849 | 847,172
850 | 848,172
851 | 849,173
852 | 850,173
853 | 851,173
854 | 852,173
855 | 853,173
856 | 854,174
857 | 855,174
858 | 856,174
859 | 857,174
860 | 858,174
861 | 859,175
862 | 860,175
863 | 861,175
864 | 862,175
865 | 863,175
866 | 864,176
867 | 865,176
868 | 866,176
869 | 867,176
870 | 868,176
871 | 869,177
872 | 870,177
873 | 871,177
874 | 872,177
875 | 873,177
876 | 874,178
877 | 875,178
878 | 876,178
879 | 877,178
880 | 878,178
881 | 879,179
882 | 880,179
883 | 881,179
884 | 882,179
885 | 883,179
886 | 884,180
887 | 885,180
888 | 886,180
889 | 887,180
890 | 888,181
891 | 889,181
892 | 890,181
893 | 891,181
894 | 892,182
895 | 893,182
896 | 894,182
897 | 895,182
898 | 896,182
899 | 897,183
900 | 898,183
901 | 899,183
902 | 900,183
903 | 901,183
904 | 902,184
905 | 903,184
906 | 904,184
907 | 905,184
908 | 906,184
909 | 907,185
910 | 908,185
911 | 909,185
912 | 910,185
913 | 911,185
914 | 912,186
915 | 913,186
916 | 914,186
917 | 915,186
918 | 916,187
919 | 917,187
920 | 918,187
921 | 919,187
922 | 920,187
923 | 921,188
924 | 922,188
925 | 923,188
926 | 924,188
927 | 925,188
928 | 926,189
929 | 927,189
930 | 928,189
931 | 929,189
932 | 930,189
933 | 931,190
934 | 932,190
935 | 933,190
936 | 934,190
937 | 935,190
938 | 936,191
939 | 937,191
940 | 938,191
941 | 939,191
942 | 940,192
943 | 941,192
944 | 942,192
945 | 943,192
946 | 944,192
947 | 945,193
948 | 946,193
949 | 947,193
950 | 948,193
951 | 949,193
952 | 950,194
953 | 951,194
954 | 952,194
955 | 953,194
956 | 954,194
957 | 955,195
958 | 956,195
959 | 957,195
960 | 958,195
961 | 959,195
962 | 960,196
963 | 961,196
964 | 962,196
965 | 963,196
966 | 964,196
967 | 965,197
968 | 966,197
969 | 967,197
970 | 968,197
971 | 969,197
972 | 970,198
973 | 971,198
974 | 972,198
975 | 973,198
976 | 974,198
977 | 975,199
978 | 976,199
979 | 977,199
980 | 978,199
981 | 979,199
982 | 980,200
983 | 981,200
984 | 982,200
985 | 983,200
986 | 984,200
987 | 985,201
988 | 986,201
989 | 987,201
990 | 988,201
991 | 989,201
992 | 990,202
993 | 991,202
994 | 992,202
995 | 993,202
996 | 994,202
997 | 995,203
998 | 996,203
999 | 997,203
1000 | 998,203
1001 | 999,203
1002 | 1000,204
1003 | 1001,204
1004 | 1002,204
1005 | 1003,204
1006 | 1004,204
1007 | 1005,205
1008 | 1006,205
1009 | 1007,205
1010 | 1008,205
1011 | 1009,205
1012 | 1010,206
1013 | 1011,206
1014 | 1012,206
1015 | 1013,206
1016 | 1014,206
1017 | 1015,207
1018 | 1016,207
1019 | 1017,207
1020 | 1018,207
1021 | 1019,207
1022 | 1020,208
1023 | 1021,208
1024 | 1022,208
1025 | 1023,208
1026 | 1024,208
1027 | 1025,209
1028 | 1026,209
1029 | 1027,209
1030 | 1028,209
1031 | 1029,210
1032 | 1030,210
1033 | 1031,210
1034 | 1032,210
1035 | 1033,210
1036 | 1034,211
1037 | 1035,211
1038 | 1036,211
1039 | 1037,211
1040 | 1038,211
1041 | 1039,212
1042 | 1040,212
1043 | 1041,212
1044 | 1042,212
1045 | 1043,212
1046 | 1044,213
1047 | 1045,213
1048 | 1046,213
1049 | 1047,213
1050 | 1048,213
1051 | 1049,214
1052 | 1050,214
1053 | 1051,214
1054 | 1052,214
1055 | 1053,214
1056 | 1054,215
1057 | 1055,215
1058 | 1056,215
1059 | 1057,215
1060 | 1058,215
1061 | 1059,216
1062 | 1060,216
1063 | 1061,216
1064 | 1062,216
1065 | 1063,216
1066 | 1064,217
1067 | 1065,217
1068 | 1066,217
1069 | 1067,217
1070 | 1068,217
1071 | 1069,218
1072 | 1070,218
1073 | 1071,218
1074 | 1072,218
1075 | 1073,218
1076 | 1074,219
1077 | 1075,219
1078 | 1076,219
1079 | 1077,219
1080 | 1078,219
1081 | 1079,220
1082 | 1080,220
1083 | 1081,220
1084 | 1082,220
1085 | 1083,220
1086 | 1084,221
1087 | 1085,221
1088 | 1086,221
1089 | 1087,221
1090 | 1088,221
1091 | 1089,222
1092 | 1090,222
1093 | 1091,222
1094 | 1092,222
1095 | 1093,222
1096 | 1094,223
1097 | 1095,223
1098 | 1096,223
1099 | 1097,223
1100 | 1098,223
1101 | 1099,224
1102 | 1100,224
1103 | 1101,224
1104 | 1102,224
1105 | 1103,224
1106 | 1104,225
1107 | 1105,225
1108 | 1106,225
1109 | 1107,225
1110 | 1108,225
1111 | 1109,226
1112 | 1110,226
1113 | 1111,226
1114 | 1112,226
1115 | 1113,226
1116 | 1114,227
1117 | 1115,227
1118 | 1116,227
1119 | 1117,227
1120 | 1118,227
1121 | 1119,228
1122 | 1120,228
1123 | 1121,228
1124 | 1122,228
1125 | 1123,229
1126 | 1124,229
1127 | 1125,229
1128 | 1126,229
1129 | 1127,229
1130 | 1128,230
1131 | 1129,230
1132 | 1130,230
1133 | 1131,230
1134 | 1132,230
1135 | 1133,231
1136 | 1134,231
1137 | 1135,231
1138 | 1136,231
1139 | 1137,231
1140 | 1138,232
1141 | 1139,232
1142 | 1140,232
1143 | 1141,232
1144 | 1142,232
1145 | 1143,233
1146 | 1144,233
1147 | 1145,233
1148 | 1146,233
1149 | 1147,233
1150 | 1148,234
1151 | 1149,234
1152 | 1150,234
1153 | 1151,234
1154 | 1152,234
1155 | 1153,235
1156 | 1154,235
1157 | 1155,235
1158 | 1156,235
1159 | 1157,235
1160 | 1158,236
1161 | 1159,236
1162 | 1160,236
1163 | 1161,236
1164 | 1162,236
1165 | 1163,237
1166 | 1164,237
1167 | 1165,237
1168 | 1166,237
1169 | 1167,237
1170 | 1168,238
1171 | 1169,238
1172 | 1170,238
1173 | 1171,238
1174 | 1172,238
1175 | 1173,239
1176 | 1174,239
1177 | 1175,239
1178 | 1176,239
1179 | 1177,239
1180 | 1178,240
1181 | 1179,240
1182 | 1180,240
1183 | 1181,240
1184 | 1182,240
1185 | 1183,241
1186 | 1184,241
1187 | 1185,241
1188 | 1186,241
1189 | 1187,241
1190 | 1188,242
1191 | 1189,242
1192 | 1190,242
1193 | 1191,242
1194 | 1192,243
1195 | 1193,243
1196 | 1194,243
1197 | 1195,243
1198 | 1196,243
1199 | 1197,244
1200 | 1198,244
1201 | 1199,244
1202 | 1200,244
1203 | 1201,244
1204 | 1202,245
1205 | 1203,245
1206 | 1204,245
1207 | 1205,245
1208 | 1206,245
1209 | 1207,246
1210 | 1208,246
1211 | 1209,246
1212 | 1210,246
1213 | 1211,246
1214 | 1212,247
1215 | 1213,247
1216 | 1214,247
1217 | 1215,247
1218 | 1216,247
1219 | 1217,248
1220 | 1218,248
1221 | 1219,248
1222 | 1220,248
1223 | 1221,248
1224 | 1222,249
1225 | 1223,249
1226 | 1224,249
1227 | 1225,249
1228 | 1226,249
1229 |
--------------------------------------------------------------------------------
/backend/spider/database_250/genre.csv:
--------------------------------------------------------------------------------
1 | id,name
2 | 0,剧情
3 | 1,犯罪
4 | 2,爱情
5 | 3,同性
6 | 4,灾难
7 | 5,动作
8 | 6,动画
9 | 7,奇幻
10 | 8,喜剧
11 | 9,战争
12 | 10,科幻
13 | 11,冒险
14 | 12,悬疑
15 | 13,历史
16 | 14,音乐
17 | 15,歌舞
18 | 16,惊悚
19 | 17,古装
20 | 18,家庭
21 | 19,传记
22 | 20,西部
23 | 21,运动
24 | 22,情色
25 | 23,儿童
26 | 24,纪录片
27 | 25,武侠
28 | 26,恐怖
29 |
--------------------------------------------------------------------------------
/backend/spider/database_250/movie_genre.csv:
--------------------------------------------------------------------------------
1 | movie_id,genre_id
2 | 0,0
3 | 0,1
4 | 1,0
5 | 1,2
6 | 1,3
7 | 2,0
8 | 2,2
9 | 3,0
10 | 3,2
11 | 3,4
12 | 4,0
13 | 4,5
14 | 4,1
15 | 5,0
16 | 5,6
17 | 5,7
18 | 6,0
19 | 6,8
20 | 6,2
21 | 6,9
22 | 7,0
23 | 7,10
24 | 7,11
25 | 8,0
26 | 8,10
27 | 8,12
28 | 8,11
29 | 9,0
30 | 9,13
31 | 9,9
32 | 10,0
33 | 10,10
34 | 11,0
35 | 12,0
36 | 12,14
37 | 13,0
38 | 13,8
39 | 13,2
40 | 13,15
41 | 14,0
42 | 14,14
43 | 15,10
44 | 15,6
45 | 15,11
46 | 16,8
47 | 16,6
48 | 16,11
49 | 17,0
50 | 17,16
51 | 17,1
52 | 18,0
53 | 18,12
54 | 18,1
55 | 19,8
56 | 19,2
57 | 19,7
58 | 19,17
59 | 20,0
60 | 21,0
61 | 21,1
62 | 22,0
63 | 22,8
64 | 23,0
65 | 23,18
66 | 23,19
67 | 24,8
68 | 24,6
69 | 24,14
70 | 24,7
71 | 25,0
72 | 25,19
73 | 25,13
74 | 26,6
75 | 26,7
76 | 26,11
77 | 27,0
78 | 27,8
79 | 27,2
80 | 28,0
81 | 28,18
82 | 28,13
83 | 29,7
84 | 29,11
85 | 30,0
86 | 30,5
87 | 30,10
88 | 30,16
89 | 30,1
90 | 31,0
91 | 31,5
92 | 31,7
93 | 31,11
94 | 32,0
95 | 32,8
96 | 33,0
97 | 33,2
98 | 33,13
99 | 33,9
100 | 34,0
101 | 34,8
102 | 34,6
103 | 34,11
104 | 35,0
105 | 36,6
106 | 36,7
107 | 36,11
108 | 37,0
109 | 38,0
110 | 39,0
111 | 39,8
112 | 39,5
113 | 39,20
114 | 40,0
115 | 40,18
116 | 40,19
117 | 40,21
118 | 41,0
119 | 41,19
120 | 41,1
121 | 42,6
122 | 42,7
123 | 42,11
124 | 43,0
125 | 43,8
126 | 44,0
127 | 44,7
128 | 44,11
129 | 45,0
130 | 45,18
131 | 45,11
132 | 46,0
133 | 46,14
134 | 46,19
135 | 46,9
136 | 47,8
137 | 47,2
138 | 47,7
139 | 47,17
140 | 48,0
141 | 48,5
142 | 48,7
143 | 48,11
144 | 49,0
145 | 50,0
146 | 51,0
147 | 51,8
148 | 51,14
149 | 51,19
150 | 52,0
151 | 52,8
152 | 52,2
153 | 53,0
154 | 53,6
155 | 53,7
156 | 53,17
157 | 54,0
158 | 54,2
159 | 55,0
160 | 55,5
161 | 55,7
162 | 55,11
163 | 56,5
164 | 56,10
165 | 57,0
166 | 57,1
167 | 58,6
168 | 58,15
169 | 58,11
170 | 59,0
171 | 60,0
172 | 60,18
173 | 61,0
174 | 61,5
175 | 61,12
176 | 61,16
177 | 62,0
178 | 62,2
179 | 62,7
180 | 63,0
181 | 63,19
182 | 64,0
183 | 64,9
184 | 65,0
185 | 65,12
186 | 66,0
187 | 66,2
188 | 67,0
189 | 67,8
190 | 67,1
191 | 68,0
192 | 68,22
193 | 68,9
194 | 69,0
195 | 69,12
196 | 69,16
197 | 69,1
198 | 70,0
199 | 70,2
200 | 70,15
201 | 70,19
202 | 71,5
203 | 71,10
204 | 71,11
205 | 72,7
206 | 72,11
207 | 73,0
208 | 73,9
209 | 74,0
210 | 75,0
211 | 75,18
212 | 75,23
213 | 76,0
214 | 76,16
215 | 76,1
216 | 77,0
217 | 77,8
218 | 77,11
219 | 78,8
220 | 78,5
221 | 78,1
222 | 78,7
223 | 79,0
224 | 79,12
225 | 79,16
226 | 80,0
227 | 80,10
228 | 80,12
229 | 80,16
230 | 81,0
231 | 81,12
232 | 81,16
233 | 82,7
234 | 82,11
235 | 83,0
236 | 84,0
237 | 85,0
238 | 85,8
239 | 85,1
240 | 86,24
241 | 87,0
242 | 87,8
243 | 87,2
244 | 88,0
245 | 88,2
246 | 88,3
247 | 89,0
248 | 89,1
249 | 90,0
250 | 90,8
251 | 90,2
252 | 91,0
253 | 91,12
254 | 91,16
255 | 92,0
256 | 92,5
257 | 92,12
258 | 92,16
259 | 92,1
260 | 93,0
261 | 93,12
262 | 93,16
263 | 93,1
264 | 94,10
265 | 94,6
266 | 94,12
267 | 94,16
268 | 95,5
269 | 95,7
270 | 95,11
271 | 96,7
272 | 96,11
273 | 97,0
274 | 97,2
275 | 97,18
276 | 98,0
277 | 99,8
278 | 99,2
279 | 99,17
280 | 100,0
281 | 100,8
282 | 100,18
283 | 101,0
284 | 101,15
285 | 102,0
286 | 102,5
287 | 102,10
288 | 102,16
289 | 102,1
290 | 103,0
291 | 103,2
292 | 103,3
293 | 104,0
294 | 104,2
295 | 105,0
296 | 105,2
297 | 105,3
298 | 105,18
299 | 106,0
300 | 106,2
301 | 106,7
302 | 107,0
303 | 108,0
304 | 108,12
305 | 108,16
306 | 109,0
307 | 109,2
308 | 110,0
309 | 110,5
310 | 110,19
311 | 110,13
312 | 110,9
313 | 111,8
314 | 111,5
315 | 111,10
316 | 111,6
317 | 111,11
318 | 112,0
319 | 112,2
320 | 113,6
321 | 113,7
322 | 113,11
323 | 114,0
324 | 114,2
325 | 115,0
326 | 115,8
327 | 116,6
328 | 116,7
329 | 116,11
330 | 117,0
331 | 117,12
332 | 117,16
333 | 117,1
334 | 118,0
335 | 119,0
336 | 119,2
337 | 120,0
338 | 120,8
339 | 120,2
340 | 121,0
341 | 121,1
342 | 122,0
343 | 123,2
344 | 123,7
345 | 123,25
346 | 123,17
347 | 124,0
348 | 125,8
349 | 125,2
350 | 125,7
351 | 126,0
352 | 126,2
353 | 126,6
354 | 127,6
355 | 127,16
356 | 127,7
357 | 128,12
358 | 128,7
359 | 128,11
360 | 129,0
361 | 129,8
362 | 129,2
363 | 130,6
364 | 130,7
365 | 130,11
366 | 131,0
367 | 132,0
368 | 133,0
369 | 133,1
370 | 134,8
371 | 134,6
372 | 134,23
373 | 134,7
374 | 134,11
375 | 135,8
376 | 135,6
377 | 135,7
378 | 135,11
379 | 136,0
380 | 136,2
381 | 137,0
382 | 137,2
383 | 137,6
384 | 137,7
385 | 138,0
386 | 138,1
387 | 139,5
388 | 139,16
389 | 139,4
390 | 140,0
391 | 140,5
392 | 140,20
393 | 140,11
394 | 141,8
395 | 141,6
396 | 141,11
397 | 142,0
398 | 142,13
399 | 143,0
400 | 143,12
401 | 144,0
402 | 144,8
403 | 144,6
404 | 145,6
405 | 145,7
406 | 145,11
407 | 146,0
408 | 146,18
409 | 146,7
410 | 146,11
411 | 147,0
412 | 147,2
413 | 147,22
414 | 148,0
415 | 148,8
416 | 148,17
417 | 149,0
418 | 149,8
419 | 149,2
420 | 149,3
421 | 149,18
422 | 150,0
423 | 150,3
424 | 150,19
425 | 150,9
426 | 151,5
427 | 151,10
428 | 151,11
429 | 152,8
430 | 152,7
431 | 152,25
432 | 152,17
433 | 153,0
434 | 153,2
435 | 154,0
436 | 154,18
437 | 155,8
438 | 155,6
439 | 155,11
440 | 156,0
441 | 156,8
442 | 157,0
443 | 157,5
444 | 157,11
445 | 158,0
446 | 158,19
447 | 158,13
448 | 158,9
449 | 159,0
450 | 159,12
451 | 159,1
452 | 160,12
453 | 160,16
454 | 160,26
455 | 161,5
456 | 161,10
457 | 162,0
458 | 162,2
459 | 162,6
460 | 163,12
461 | 163,16
462 | 163,26
463 | 164,0
464 | 164,1
465 | 165,0
466 | 165,3
467 | 165,19
468 | 166,8
469 | 166,6
470 | 166,11
471 | 167,0
472 | 167,12
473 | 167,1
474 | 168,5
475 | 168,12
476 | 168,16
477 | 169,0
478 | 169,5
479 | 169,1
480 | 170,0
481 | 170,1
482 | 171,6
483 | 171,7
484 | 171,11
485 | 172,0
486 | 172,8
487 | 172,5
488 | 172,1
489 | 173,0
490 | 173,19
491 | 173,13
492 | 173,9
493 | 174,0
494 | 174,18
495 | 175,0
496 | 175,2
497 | 176,0
498 | 176,12
499 | 176,1
500 | 176,7
501 | 177,0
502 | 177,16
503 | 177,1
504 | 178,0
505 | 178,12
506 | 178,16
507 | 178,1
508 | 179,8
509 | 179,1
510 | 180,0
511 | 181,8
512 | 181,2
513 | 181,15
514 | 182,6
515 | 182,14
516 | 182,7
517 | 183,10
518 | 183,16
519 | 183,11
520 | 184,0
521 | 184,18
522 | 185,0
523 | 186,0
524 | 186,16
525 | 186,1
526 | 187,0
527 | 187,8
528 | 187,1
529 | 188,0
530 | 188,18
531 | 188,1
532 | 189,8
533 | 189,6
534 | 189,7
535 | 189,11
536 | 190,0
537 | 190,14
538 | 191,8
539 | 191,6
540 | 191,11
541 | 192,0
542 | 192,12
543 | 192,16
544 | 193,0
545 | 193,2
546 | 194,0
547 | 194,1
548 | 195,0
549 | 195,5
550 | 195,2
551 | 195,25
552 | 195,17
553 | 196,6
554 | 196,7
555 | 196,11
556 | 197,0
557 | 197,8
558 | 197,11
559 | 198,0
560 | 198,8
561 | 198,6
562 | 199,0
563 | 199,8
564 | 200,0
565 | 200,6
566 | 200,23
567 | 201,0
568 | 201,1
569 | 202,0
570 | 202,8
571 | 202,2
572 | 203,0
573 | 203,16
574 | 204,0
575 | 204,8
576 | 204,2
577 | 205,10
578 | 205,12
579 | 205,16
580 | 206,0
581 | 206,18
582 | 207,0
583 | 208,0
584 | 208,3
585 | 208,14
586 | 208,19
587 | 209,0
588 | 209,8
589 | 209,2
590 | 210,0
591 | 210,2
592 | 211,0
593 | 211,2
594 | 211,7
595 | 211,17
596 | 212,0
597 | 212,10
598 | 213,0
599 | 213,16
600 | 213,1
601 | 214,8
602 | 214,9
603 | 215,5
604 | 215,10
605 | 216,5
606 | 216,10
607 | 216,11
608 | 217,0
609 | 217,12
610 | 217,1
611 | 218,5
612 | 218,2
613 | 218,25
614 | 218,17
615 | 219,0
616 | 219,1
617 | 220,0
618 | 220,10
619 | 220,16
620 | 221,6
621 | 221,7
622 | 221,11
623 | 222,0
624 | 222,2
625 | 223,0
626 | 223,6
627 | 223,9
628 | 224,0
629 | 224,2
630 | 225,10
631 | 225,12
632 | 225,16
633 | 226,0
634 | 226,2
635 | 226,15
636 | 227,0
637 | 227,18
638 | 227,23
639 | 228,5
640 | 228,10
641 | 229,24
642 | 230,7
643 | 230,11
644 | 231,0
645 | 231,16
646 | 231,11
647 | 232,0
648 | 232,1
649 | 233,0
650 | 233,10
651 | 233,11
652 | 234,0
653 | 234,18
654 | 235,0
655 | 235,18
656 | 236,0
657 | 236,2
658 | 236,9
659 | 237,0
660 | 237,2
661 | 237,6
662 | 238,5
663 | 238,12
664 | 238,16
665 | 239,0
666 | 239,8
667 | 239,11
668 | 240,7
669 | 240,11
670 | 241,0
671 | 241,18
672 | 241,19
673 | 241,21
674 | 242,5
675 | 242,10
676 | 242,6
677 | 242,11
678 | 243,0
679 | 243,9
680 | 244,5
681 | 244,12
682 | 244,16
683 | 245,0
684 | 245,2
685 | 245,1
686 | 246,0
687 | 246,2
688 | 247,8
689 | 247,2
690 | 247,14
691 | 248,0
692 | 248,2
693 | 248,9
694 | 248,20
695 | 249,0
696 |
--------------------------------------------------------------------------------
/backend/spider/generate_userdict.py:
--------------------------------------------------------------------------------
1 | import os.path
2 |
3 | import pandas as pd
4 |
5 | movie = pd.read_csv('database_1000/movie.csv')[['name']]
6 | actor = pd.read_csv('database_1000/actor.csv')[['name', 'english_name']]
7 | actor['name'] = actor['name'].str.strip()
8 | actor['english_name'] = actor['english_name'].str.strip()
9 | genre = pd.read_csv('database_250/genre.csv')[['name']]
10 |
11 | # print(len(movie), movie.iloc[1]['name'])
12 | # print(len(actor), actor.iloc[1]['name'], actor.iloc[1]['english_name'])
13 | # print(len(genre), genre.iloc[1]['name'])
14 |
15 | output_folder = './database_1000'
16 |
17 | with open(f'{output_folder}/userdict_1000.txt', mode='w', encoding='utf-8') as f:
18 | for i in range(len(movie)):
19 | f.write(f'{movie.iloc[i]["name"]} nm\n')
20 | for i in range(len(actor)):
21 | f.write(f'{actor.iloc[i]["name"].replace("·", "")} nr\n')
22 | if type(actor.iloc[i]["english_name"]) == str:
23 | f.write(f'{actor.iloc[i]["english_name"].replace(" ", "")} nr\n')
24 | else:
25 | f.write(f'{str(actor.iloc[i]["english_name"]).replace(" ", "")} nr\n')
26 | for i in range(len(genre)):
27 | f.write(f'{genre.iloc[i]["name"]} ng\n')
28 |
29 |
--------------------------------------------------------------------------------
/backend/spider/import_data_cql.txt:
--------------------------------------------------------------------------------
1 | //从CSV加载数据,然后存入数据库
2 | LOAD CSV WITH HEADERS FROM "file:///genre.csv" AS line
3 | MERGE (g:Genre{id:toInteger(line.id),name:line.name})
4 |
5 | LOAD CSV WITH HEADERS FROM 'file:///actor.csv' AS line
6 | MERGE (a:Actor { id:toInteger(line.id), birthday:COALESCE(line.birthday, "None"), image:COALESCE(line.image, "None"),
7 | deathday:COALESCE(line.deathday, "None"), name:line.name, english_name:COALESCE(line.english_name, "None"),
8 | biography:COALESCE(line.biography, "None"),birthplace:COALESCE(line.birthplace, "None")})
9 |
10 | LOAD CSV WITH HEADERS FROM "file:///movie.csv" AS line
11 | MERGE (m:Movie{id:toInteger(line.id), name:line.name, introduction:line.introduction, rating:toFloat(line.rating),
12 | release_date:line.release_date, image:line.image})
13 |
14 | LOAD CSV WITH HEADERS FROM "file:////actor_movie.csv" AS line
15 | match (from:Actor{id:toInteger(line.actor_id)}),(to:Movie{id:toInteger(line.movie_id)})
16 | merge (from)-[r:STARS_IN{id:toInteger(line.actor_id),id:toInteger(line.movie_id)}]->(to)
17 |
18 | LOAD CSV WITH HEADERS FROM "file:///movie_genre.csv" AS line
19 | match (from:Movie{id:toInteger(line.movie_id)}),(to:Genre{id:toInteger(line.genre_id)})
20 | merge (from)-[r:BELONGS_TO{id:toInteger(line.movie_id),id:toInteger(line.genre_id)}]->(to)
--------------------------------------------------------------------------------
/backend/spider/main_1000.py:
--------------------------------------------------------------------------------
1 | import csv
2 | import re
3 |
4 | import requests
5 | from bs4 import BeautifulSoup
6 |
7 |
8 | class Movie:
9 | """
10 | Movie Object
11 | """
12 | total_movies = 0
13 |
14 | def __init__(self):
15 | self.id = Movie.total_movies
16 | Movie.total_movies += 1
17 |
18 | self.imgUrl = None
19 | self.name = None
20 | self.rating = None
21 | self.introduction = None
22 | self.releaseDate = []
23 |
24 | self.genre = []
25 | self.director = None
26 | self.actor = []
27 |
28 | def to_csv(self):
29 | return [self.id, self.name, self.rating, self.releaseDate, self.genre, self.director, self.imgUrl, self.introduction]
30 |
31 |
32 | class Actor:
33 | """
34 | 演员
35 | """
36 | total_actors = 0
37 |
38 | def __init__(self):
39 | self.id = Actor.total_actors
40 | Actor.total_actors += 1
41 |
42 | self.imgUrl = None
43 | self.name = None
44 | self.gender = None
45 | self.birth = None
46 | self.birthplace = None
47 | self.death = None
48 | self.biography = None
49 |
50 | def to_csv(self, movie_id):
51 | return [self.id, self.name, self.gender, self.birth, self.death, self.birthplace, self.imgUrl, self.biography, movie_id]
52 |
53 |
54 | target_url = 'https://movie.douban.com/top250'
55 |
56 | headers = {
57 | 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.0.0 Safari/537.36 Edg/119.0.0.0',
58 | 'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7'
59 | }
60 |
61 |
62 | # response = requests.get(url=target_url, headers=headers)
63 | # html = response.text
64 | #
65 | # # 将文本内容保存到本地文件
66 | # with open('douban-top250.htmlhtml', 'w', encoding='utf-8') as file:
67 | # file.write(html)
68 |
69 | # status_code = response.status_code
70 | # status_code = 200
71 |
72 |
73 | def analysisDoubanTop1000part25(html: requests.Response.text):
74 | """
75 | 一页电影列表 25部
76 | :param html:
77 | :return: 一页电影中的所有电影详情url
78 | """
79 | soup = BeautifulSoup(html, 'html.parser')
80 |
81 | movies_info = soup.find(class_='article')
82 | movies_list = movies_info.findAll('div', class_='doulist-item')
83 | movies_url = []
84 | for movie in movies_list:
85 | a = movie.findNext(class_='post').find_next('a')
86 | movie_url = a['href']
87 | movies_url.append(movie_url)
88 |
89 | return movies_url
90 |
91 |
92 | def analysisActor(html: requests.Response.text, movie: Movie):
93 | """
94 | 单个演员
95 | :param html:
96 | :param movie: 演员信息 追加到这里面
97 | """
98 | # self.id = None
99 | # self.name = None
100 | # self.gender = None
101 | # self.birth = None
102 | # self.death = None
103 | # self.biography = None
104 | actor = Actor()
105 |
106 | soup = BeautifulSoup(html, 'html.parser')
107 | content = soup.find('div', id='content')
108 |
109 | # 追加img
110 | imgUrl = content.find('div', class_='pic').find('img')['src']
111 | actor.imgUrl = imgUrl
112 |
113 | name = content.find_next('h1').text.strip()
114 | actor.name = name
115 |
116 | li_list = content.find('div', class_='info').find_all('li')
117 | for li in li_list:
118 | # gender
119 | if li.find_next('span').text.strip() == '性别':
120 | gender = li.text.split(':')[1].replace('\n', '').strip()
121 | actor.gender = gender
122 | if li.find_next('span').text.strip() == '出生日期':
123 | birth = li.text.split(':')[1].replace('\n', '').strip()
124 | actor.birth = birth
125 |
126 | if li.find_next('span').text.strip() == '生卒日期':
127 | date = li.text.split(':')[1].replace('\n', '').replace(' ', '').split('至')
128 | birth = date[0]
129 | death = date[1]
130 | actor.birth = birth
131 | actor.death = death
132 |
133 | if li.find_next('span').text.strip() == '出生地':
134 | birthplace = li.text.split(':')[1].replace('\n', '').strip()
135 | actor.birthplace = birthplace
136 |
137 | biographyEl = content.find('span', class_='short')
138 |
139 | bi = content.find('div', id='intro', class_='mod').find('div', class_='bd').find('span', class_='all hidden')
140 | if bi is not None:
141 | bi = bi.text.replace('
', '').replace("\n", '').strip()
142 | if biographyEl is not None:
143 | biography = replace_multiple_spaces(biographyEl.text.replace('
', '').replace("\n", '').strip())
144 | else:
145 | biography = replace_multiple_spaces(content.find('div', id='intro', class_='mod')
146 | .find('div', class_='bd').text
147 | .replace('
', '').replace("\n", '').strip())
148 |
149 | if bi is not None:
150 | actor.biography = bi
151 | else:
152 | actor.biography = biography
153 |
154 | movie.actor.append(actor)
155 | # 打印对象的属性信息
156 | # for key, value in actor.__dict__.items():
157 | # print(f"{key}: {value}")
158 |
159 |
160 | def replace_multiple_spaces(string):
161 | # 使用正则表达式将多个连续空格替换为一个空格
162 | pattern = re.compile(r'\s+')
163 | replaced_string = re.sub(pattern, ' ', string)
164 | return replaced_string
165 |
166 |
167 | def analysisMovie(html: requests.Response.text, movie: Movie):
168 | """
169 | 单部电影
170 | :param html:
171 | :param movie:
172 | """
173 | soup = BeautifulSoup(html, 'html.parser')
174 | # 23-12-10 追加imgUrl
175 | imgUrl = soup.find('div', {'id': 'content'}).find('div', {'id': 'mainpic'}).find('img')['src'].strip()
176 | movie.imgUrl = imgUrl
177 | # movie name
178 | title = soup.find('head').find('title').text.strip().split("(")[0]
179 | movie.name = title
180 | # movie rating
181 | rating = soup.find(class_='ll rating_num').text
182 | movie.rating = rating
183 | # movie introduction
184 | spanBox = soup.find(class_='related-info').find(class_='indent').find_all('span')
185 | introduction = None
186 | for span in spanBox:
187 | if span.get('property') == 'v:summary':
188 | introduction = replace_multiple_spaces(span.text.replace('
', '').replace('\n', '').strip())
189 |
190 | intro = soup.find(class_='related-info').find(class_='indent').find(class_='all hidden')
191 | if intro:
192 | intro = replace_multiple_spaces(intro.text.replace('
', '').replace('\n', '').strip())
193 | movie.introduction = intro
194 | else:
195 | movie.introduction = introduction
196 |
197 | movie_subject = soup.find('div', class_='subject clearfix')
198 | spanBox = movie_subject.find_all('span')
199 | for span in spanBox:
200 | # movie releaseDate
201 | if span.get('property') == 'v:initialReleaseDate':
202 | movie.releaseDate.append(span.text)
203 | # movie genre
204 | if span.get('property') == 'v:genre':
205 | movie.genre.append(span.text)
206 |
207 | li_list = soup.find('ul', class_='celebrities-list from-subject __oneline').find_all('li')
208 | for li in li_list:
209 | try:
210 | personName = li.find_all('span')[0].find('a').text.strip()
211 | roleName = li.find_all('span')[1].text.strip()
212 | except IndexError:
213 | return
214 | # 导演
215 | if roleName == '导演':
216 | movie.director = personName
217 | continue
218 | # 演员
219 | a_url = li.find_next('a').get('href')
220 | response = requests.get(url=a_url, headers=headers)
221 | if response.status_code == 200:
222 | print(f'抓取演员页面成功')
223 | actor_html = response.text
224 |
225 | # 将文本内容保存到本地文件
226 | # with open('actor.html', 'r', encoding='utf-8') as file:
227 | # file.read()
228 | # file.write(actor_html)
229 |
230 | analysisActor(actor_html, movie)
231 | else:
232 | print(f'status_code is {response.status_code}')
233 |
234 | # 打印对象的属性信息
235 | # for key, value in movie.__dict__.items():
236 | # print(f"{key}: {value}")
237 |
238 |
239 | def printMovieInfo(_movie: Movie):
240 | """
241 | 打印对象的属性信息
242 | """
243 | for key, value in _movie.__dict__.items():
244 | if key == 'actor':
245 | print('[ ')
246 | for actor in value:
247 | for key1, value1 in actor.__dict__.items():
248 | print(f"{key1}: {value1}")
249 | print(' ]')
250 | continue
251 | print(f"{key}: {value}")
252 |
253 |
254 | # 将电影信息写入CSV文件
255 | def write_movies_to_csv(movies, movie_file_name, actor_file_name):
256 | # return [self.id, self.name, self.rating, self.releaseDate, self.genre, self.director, self.introduction]
257 | with open(movie_file_name, 'a', newline='', encoding="utf-8") as csvfile:
258 | writer = csv.writer(csvfile)
259 | # writer.writerow(['id', 'name', 'rating', 'releaseDate', 'genre', 'director', 'introduction'])
260 | for movie in movies:
261 | writer.writerow(movie.to_csv())
262 | for actor in movie.actor:
263 | write_actors_to_csv(actor, movie.id, actor_file_name)
264 |
265 |
266 | def write_actors_to_csv(actor, movie_id, filename):
267 | # [self.id, self.name, self.gender, self.birth, self.death, self.biography, movie_id]
268 | with open(filename, 'a', newline='', encoding="utf-8") as csvfile:
269 | writer = csv.writer(csvfile)
270 | # writer.writerow(['Name', 'Age', 'Gender'])
271 | writer.writerow(actor.to_csv(movie_id))
272 |
273 |
274 | if __name__ == '__main__':
275 | # https://movie.douban.com/top250?start=75&filter=
276 | # 遍历Top1000的所有页面
277 | for idx in range(40):
278 | target_url = f'https://www.douban.com/doulist/109986428/?start={25 * idx}&sort=seq&playable=0&sub_type='
279 | response = requests.get(url=target_url, headers=headers)
280 | html = response.text
281 | if response.status_code == 200:
282 | print(f'抓取part25页面成功')
283 | # with open("douban-top250.html", "r", encoding="utf-8") as file:
284 | # html = file.read()
285 | # 解析Top250网页的一页 => 每个具体电影的url链接
286 | movies_url = analysisDoubanTop1000part25(html)
287 |
288 | movies_list = []
289 | for movie_url in movies_url:
290 | movie = Movie()
291 | res = requests.get(url=movie_url, headers=headers)
292 | if res.status_code == 200:
293 | print(f'抓取电影页面成功')
294 | movie_html = res.text
295 | # with open('movie.html', 'r', encoding='utf-8') as file:
296 | # # file.write(movie_detail.text)
297 | # movie_html = file.read()
298 | #
299 | analysisMovie(movie_html, movie)
300 |
301 | movies_list.append(movie)
302 | # break
303 | else:
304 | print(f'status_code {res.status_code}')
305 |
306 | movie_file_name = 'movie_file.csv'
307 | actor_file_name = 'actor_file.csv'
308 | write_movies_to_csv(movies_list, movie_file_name, actor_file_name)
309 |
310 | print(f'解析第{idx + 1}页结束')
311 | # break
312 |
313 | # with open('actor.html', 'r', encoding='utf-8') as file:
314 | # actor_html = file.read()
315 | # # file.write(actor_html)
316 | #
317 | # analysisActor(actor_html, movie)
318 |
319 | else:
320 | print('response is not 200')
321 |
--------------------------------------------------------------------------------
/backend/spider/main_250.py:
--------------------------------------------------------------------------------
1 | import csv
2 | import re
3 |
4 | import requests
5 | from bs4 import BeautifulSoup
6 |
7 |
8 | class Movie:
9 | """
10 | Movie Object
11 | """
12 | total_movies = 0
13 |
14 | def __init__(self):
15 | self.id = Movie.total_movies
16 | Movie.total_movies += 1
17 |
18 | self.imgUrl = None
19 | self.name = None
20 | self.rating = None
21 | self.introduction = None
22 | self.releaseDate = []
23 |
24 | self.genre = []
25 | self.director = None
26 | self.actor = []
27 |
28 | def to_csv(self):
29 | return [self.id, self.name, self.rating, self.releaseDate, self.genre, self.director, self.imgUrl, self.introduction]
30 |
31 |
32 | class Actor:
33 | """
34 | 演员
35 | """
36 | total_actors = 0
37 |
38 | def __init__(self):
39 | self.id = Actor.total_actors
40 | Actor.total_actors += 1
41 |
42 | self.imgUrl = None
43 | self.name = None
44 | self.gender = None
45 | self.birth = None
46 | self.birthplace = None
47 | self.death = None
48 | self.biography = None
49 |
50 | def to_csv(self, movie_id):
51 | return [self.id, self.name, self.gender, self.birth, self.death, self.birthplace, self.imgUrl, self.biography, movie_id]
52 |
53 |
54 | target_url = 'https://movie.douban.com/top250'
55 |
56 | headers = {
57 | 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.0.0 Safari/537.36 Edg/119.0.0.0',
58 | 'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7'
59 | }
60 |
61 |
62 | # response = requests.get(url=target_url, headers=headers)
63 | # html = response.text
64 | #
65 | # # 将文本内容保存到本地文件
66 | # with open('douban-top250.htmlhtml', 'w', encoding='utf-8') as file:
67 | # file.write(html)
68 |
69 | # status_code = response.status_code
70 | # status_code = 200
71 |
72 |
73 | def analysisDoubanTop250part25(html: requests.Response.text):
74 | """
75 | 一页电影列表 25部
76 | :param html:
77 | :return: 一页电影中的所有电影详情url
78 | """
79 | soup = BeautifulSoup(html, 'html.parser')
80 |
81 | movies_info = soup.find('ol', class_='grid_view')
82 | image_list = movies_info.findAll(class_='pic')
83 | movies_url = []
84 | for image in image_list:
85 | a = image.findNext('a')
86 | movie_url = a['href']
87 | movies_url.append(movie_url)
88 |
89 | return movies_url
90 |
91 |
92 | def analysisActor(html: requests.Response.text, movie: Movie):
93 | """
94 | 单个演员
95 | :param html:
96 | :param movie: 演员信息 追加到这里面
97 | """
98 | # self.id = None
99 | # self.name = None
100 | # self.gender = None
101 | # self.birth = None
102 | # self.death = None
103 | # self.biography = None
104 | actor = Actor()
105 |
106 | soup = BeautifulSoup(html, 'html.parser')
107 | content = soup.find('div', id='content')
108 |
109 | # 追加img
110 | imgUrl = content.find('div', class_='pic').find('img')['src']
111 | actor.imgUrl = imgUrl
112 |
113 | name = content.find_next('h1').text.strip()
114 | actor.name = name
115 |
116 | li_list = content.find('div', class_='info').find_all('li')
117 | for li in li_list:
118 | # gender
119 | if li.find_next('span').text.strip() == '性别':
120 | gender = li.text.split(':')[1].replace('\n', '').strip()
121 | actor.gender = gender
122 | if li.find_next('span').text.strip() == '出生日期':
123 | birth = li.text.split(':')[1].replace('\n', '').strip()
124 | actor.birth = birth
125 |
126 | if li.find_next('span').text.strip() == '生卒日期':
127 | date = li.text.split(':')[1].replace('\n', '').replace(' ', '').split('至')
128 | birth = date[0]
129 | death = date[1]
130 | actor.birth = birth
131 | actor.death = death
132 |
133 | if li.find_next('span').text.strip() == '出生地':
134 | birthplace = li.text.split(':')[1].replace('\n', '').strip()
135 | actor.birthplace = birthplace
136 |
137 | biographyEl = content.find('span', class_='short')
138 |
139 | bi = content.find('div', id='intro', class_='mod').find('div', class_='bd').find('span', class_='all hidden')
140 | if bi is not None:
141 | bi = bi.text.replace('
', '').replace("\n", '').strip()
142 | if biographyEl is not None:
143 | biography = replace_multiple_spaces(biographyEl.text.replace('
', '').replace("\n", '').strip())
144 | else:
145 | biography = replace_multiple_spaces(content.find('div', id='intro', class_='mod')
146 | .find('div', class_='bd').text
147 | .replace('
', '').replace("\n", '').strip())
148 |
149 | if bi is not None:
150 | actor.biography = bi
151 | else:
152 | actor.biography = biography
153 |
154 | movie.actor.append(actor)
155 | # 打印对象的属性信息
156 | # for key, value in actor.__dict__.items():
157 | # print(f"{key}: {value}")
158 |
159 |
160 | def replace_multiple_spaces(string):
161 | # 使用正则表达式将多个连续空格替换为一个空格
162 | pattern = re.compile(r'\s+')
163 | replaced_string = re.sub(pattern, ' ', string)
164 | return replaced_string
165 |
166 |
167 | def analysisMovie(html: requests.Response.text, movie: Movie):
168 | """
169 | 单部电影
170 | :param html:
171 | :param movie:
172 | """
173 | soup = BeautifulSoup(html, 'html.parser')
174 | # 23-12-10 追加imgUrl
175 | imgUrl = soup.find('div', {'id': 'content'}).find('div', {'id': 'mainpic'}).find('img')['src'].strip()
176 | movie.imgUrl = imgUrl
177 | # movie name
178 | title = soup.find('head').find('title').text.strip().split("(")[0]
179 | movie.name = title
180 | # movie rating
181 | rating = soup.find(class_='ll rating_num').text
182 | movie.rating = rating
183 | # movie introduction
184 | spanBox = soup.find(class_='related-info').find(class_='indent').find_all('span')
185 | introduction = None
186 | for span in spanBox:
187 | if span.get('property') == 'v:summary':
188 | introduction = replace_multiple_spaces(span.text.replace('
', '').replace('\n', '').strip())
189 |
190 | intro = soup.find(class_='related-info').find(class_='indent').find(class_='all hidden')
191 | if intro:
192 | intro = replace_multiple_spaces(intro.text.replace('
', '').replace('\n', '').strip())
193 | movie.introduction = intro
194 | else:
195 | movie.introduction = introduction
196 |
197 | movie_subject = soup.find('div', class_='subject clearfix')
198 | spanBox = movie_subject.find_all('span')
199 | for span in spanBox:
200 | # movie releaseDate
201 | if span.get('property') == 'v:initialReleaseDate':
202 | movie.releaseDate.append(span.text)
203 | # movie genre
204 | if span.get('property') == 'v:genre':
205 | movie.genre.append(span.text)
206 |
207 | li_list = soup.find('ul', class_='celebrities-list from-subject __oneline').find_all('li')
208 | for li in li_list:
209 | personName = li.find_all('span')[0].find('a').text.strip()
210 | roleName = li.find_all('span')[1].text.strip()
211 | # 导演
212 | if roleName == '导演':
213 | movie.director = personName
214 | continue
215 | # 演员
216 | a_url = li.find_next('a').get('href')
217 | response = requests.get(url=a_url, headers=headers)
218 | if response.status_code == 200:
219 | print(f'抓取演员页面成功')
220 | actor_html = response.text
221 |
222 | # 将文本内容保存到本地文件
223 | # with open('actor.html', 'r', encoding='utf-8') as file:
224 | # file.read()
225 | # file.write(actor_html)
226 |
227 | analysisActor(actor_html, movie)
228 | else:
229 | print(f'status_code is {response.status_code}')
230 |
231 | # 打印对象的属性信息
232 | # for key, value in movie.__dict__.items():
233 | # print(f"{key}: {value}")
234 |
235 |
236 | def printMovieInfo(_movie: Movie):
237 | """
238 | 打印对象的属性信息
239 | """
240 | for key, value in _movie.__dict__.items():
241 | if key == 'actor':
242 | print('[ ')
243 | for actor in value:
244 | for key1, value1 in actor.__dict__.items():
245 | print(f"{key1}: {value1}")
246 | print(' ]')
247 | continue
248 | print(f"{key}: {value}")
249 |
250 |
251 | # 将电影信息写入CSV文件
252 | def write_movies_to_csv(movies, movie_file_name, actor_file_name):
253 | # return [self.id, self.name, self.rating, self.releaseDate, self.genre, self.director, self.introduction]
254 | with open(movie_file_name, 'a', newline='', encoding="utf-8") as csvfile:
255 | writer = csv.writer(csvfile)
256 | # writer.writerow(['id', 'name', 'rating', 'releaseDate', 'genre', 'director', 'introduction'])
257 | for movie in movies:
258 | writer.writerow(movie.to_csv())
259 | for actor in movie.actor:
260 | write_actors_to_csv(actor, movie.id, actor_file_name)
261 |
262 |
263 | def write_actors_to_csv(actor, movie_id, filename):
264 | # [self.id, self.name, self.gender, self.birth, self.death, self.biography, movie_id]
265 | with open(filename, 'a', newline='', encoding="utf-8") as csvfile:
266 | writer = csv.writer(csvfile)
267 | # writer.writerow(['Name', 'Age', 'Gender'])
268 | writer.writerow(actor.to_csv(movie_id))
269 |
270 |
271 | if __name__ == '__main__':
272 | # https://movie.douban.com/top250?start=75&filter=
273 | # 遍历Top250的所有页面
274 | for idx in range(10):
275 | if idx == 0:
276 | target_url = 'https://movie.douban.com/top250'
277 | else:
278 | target_url = f'https://movie.douban.com/top250?start={25 * idx}&filter='
279 | response = requests.get(url=target_url, headers=headers)
280 | html = response.text
281 | if response.status_code == 200:
282 | print(f'抓取part25页面成功')
283 | # with open("douban-top250.html", "r", encoding="utf-8") as file:
284 | # html = file.read()
285 | # 解析Top250网页的一页 => 每个具体电影的url链接
286 | movies_url = analysisDoubanTop250part25(html)
287 |
288 | movies_list = []
289 | for movie_url in movies_url:
290 | movie = Movie()
291 | res = requests.get(url=movie_url, headers=headers)
292 | if res.status_code == 200:
293 | print(f'抓取电影页面成功')
294 | movie_html = res.text
295 | # with open('movie.html', 'r', encoding='utf-8') as file:
296 | # # file.write(movie_detail.text)
297 | # movie_html = file.read()
298 | #
299 | analysisMovie(movie_html, movie)
300 |
301 | movies_list.append(movie)
302 | # break
303 | else:
304 | print(f'status_code {res.status_code}')
305 |
306 | movie_file_name = 'movie_file_1000.csv'
307 | actor_file_name = 'actor_file_1000.csv'
308 | write_movies_to_csv(movies_list, movie_file_name, actor_file_name)
309 |
310 | print(f'解析第{idx + 1}页结束')
311 | # break
312 |
313 | # with open('actor.html', 'r', encoding='utf-8') as file:
314 | # actor_html = file.read()
315 | # # file.write(actor_html)
316 | #
317 | # analysisActor(actor_html, movie)
318 |
319 | else:
320 | print('response is not 200')
321 |
--------------------------------------------------------------------------------
/backend/spider/process_data.py:
--------------------------------------------------------------------------------
1 | import pandas as pd
2 |
3 | data_folder = './origin_data'
4 | output_folder = './database_1000'
5 |
6 |
7 | # ================= movie
8 | def gen_movie():
9 | movie_column = ['id', 'name', 'rating', 'release_date', 'genre', 'director', 'image', 'introduction']
10 | movie = pd.read_csv(f'{data_folder}/movie_file.csv', header=None)
11 | movie.columns = movie_column
12 | movie['name'] = movie['name'].str.strip()
13 |
14 | # movie_column = ['id', 'name', 'introduction', 'rating', 'release_date', 'image']
15 | movie_final = movie[['id', 'name', 'introduction', 'rating', 'release_date', 'image']]
16 | movie_final.to_csv(f'{output_folder}/movie.csv', encoding='utf-8', index=False)
17 |
18 |
19 | # ================= actor
20 | def gen_actor():
21 | actor_column = ['id', 'name', 'gender', 'birthday', 'deathday', 'birthplace', 'image', 'biography', 'movie_id']
22 | actor = pd.read_csv(f'{data_folder}/actor_file.csv', header=None)
23 | actor.columns = actor_column
24 |
25 | actor[['name', 'english_name']] = actor['name'].str.split(n=1, expand=True)
26 | actor['name'] = actor['name'].str.strip()
27 | actor['english_name'] = actor['english_name'].str.strip()
28 |
29 | actor_column = ['id', 'name', 'english_name', 'birthplace', 'biography', 'birthday', 'deathday', 'image']
30 | actor_final = actor[actor_column]
31 | actor_final.loc[actor_final['deathday'].isna(), 'deathday'] = '\\N'
32 |
33 | actor_final.loc[:, 'name'] = actor_final['name'].str.replace("、", '')
34 | actor_final.loc[:, 'name'] = actor_final['name'].str.replace("·", '')
35 | actor_final.loc[:, 'birthplace'] = actor_final['birthplace'].str.strip('\'"')
36 | actor_final.loc[:, 'birthplace'] = actor_final['birthplace'].str.replace('[“”‘’\"]', '', regex=True)
37 | actor_final.loc[:, 'birthplace'] = actor_final['birthplace'].str.strip('"')
38 | actor_final.loc[:, 'birthday'] = actor_final['birthday'].str.strip('\'"')
39 | actor_final.loc[:, 'birthday'] = actor_final['birthday'].str.replace('"', '')
40 | actor_final = actor_final.drop_duplicates(subset=['name'])
41 | actor_final.to_csv(f'{output_folder}/actor.csv', index=False, encoding='utf-8')
42 |
43 |
44 | # ================= genre genre_column = ['id', 'name']
45 | def gen_genre():
46 | movie_column = ['id', 'name', 'rating', 'release_date', 'genre', 'director', 'image', 'introduction']
47 | movie = pd.read_csv(f'{data_folder}/movie_file.csv', header=None)
48 | movie.columns = movie_column
49 | movie['name'] = movie['name'].str.strip()
50 | movie = movie[['id', 'genre']]
51 | # print(movie.head())
52 | # 将包含列表的字符串转换为实际的列表
53 | movie['genre'] = movie['genre'].apply(eval)
54 | # 使用 explode() 方法将列表中的元素展开成新行
55 | df_exploded = movie.explode('genre')
56 | # 使用 unique() 方法统计不重复的项
57 | unique_genres = df_exploded['genre'].unique()
58 | # print(unique_genres)
59 | data = {'id': [i for i in range(len(unique_genres))],
60 | 'name': unique_genres}
61 | genre_column = pd.DataFrame(data)
62 | genre_column.to_csv(f'{output_folder}/genre.csv', index=False)
63 |
64 |
65 | # movie_genre_column = ['movie_id', 'genre_id']
66 | # ================= movie -> genre
67 | def gen_movie_genre():
68 | movie_column = ['id', 'name', 'rating', 'release_date', 'genre', 'director', 'image', 'introduction']
69 | movie = pd.read_csv(f'{data_folder}/movie_file.csv', header=None)
70 | movie.columns = movie_column
71 | movie['genre'] = movie['genre'].apply(eval)
72 | movie_exploded = movie.explode('genre')
73 | movie_exploded = movie_exploded[['id', 'genre']]
74 |
75 | genre = pd.read_csv(f'{output_folder}/genre.csv')
76 |
77 | final_data = pd.merge(movie_exploded, genre, left_on='genre', right_on='name', how='left', suffixes=('_movie', '_genre'))
78 | movie_genre_column = final_data[['id_movie', 'id_genre']]
79 |
80 | # print(movie_genre_column.head())
81 | movie_genre_column.columns = ['movie_id', 'genre_id']
82 | movie_genre_column.to_csv(f'{output_folder}/movie_genre.csv', index=False)
83 |
84 |
85 | # actor_movie_column = ['actor_id', 'movie_id']
86 | # ===================== actor_movie_column
87 | def gen_actor_movie():
88 | actor_column = ['id', 'name', 'gender', 'birthday', 'deathday', 'birthplace', 'image', 'biography', 'movie_id']
89 | actor = pd.read_csv(f'{data_folder}/actor_file.csv', header=None)
90 | actor.columns = actor_column
91 | actor = actor[['id', 'movie_id']]
92 | actor.columns = ['actor_id', 'movie_id']
93 | actor.to_csv(f'{output_folder}/actor_movie.csv', index=False)
94 |
95 |
96 | if __name__ == '__main__':
97 | # gen_movie()
98 | gen_actor()
99 | # gen_genre()
100 | # gen_movie_genre()
101 | # gen_actor_movie()
102 |
--------------------------------------------------------------------------------
/frontend/README.md:
--------------------------------------------------------------------------------
1 | # 小程序前端代码注意事项
2 |
3 | ## 使用流程
4 |
5 | 1. 下载 [微信开发者工具](https://developers.weixin.qq.com/miniprogram/dev/devtools/download.html)
6 |
7 | 2. 导入frontend项目
8 | 3. 修改 pages\chat\chat.js
9 |
10 | ```js
11 | const params = {
12 | // 腾讯云调用语音API的密钥
13 | secretkey: '',
14 | secretid: '',
15 | appid: 0,
16 | ...
17 | }
18 | ```
19 |
20 | 4. 打包预览
--------------------------------------------------------------------------------
/frontend/app.js:
--------------------------------------------------------------------------------
1 | //app.js
2 | App({
3 |
4 | getUserInfo:function(cb){
5 | var that = this
6 | if(this.globalData.userInfo){
7 | typeof cb == "function" && cb(this.globalData.userInfo)
8 | }else{
9 | //调用登录接口
10 | wx.login({
11 | success: function () {
12 | wx.getUserInfo({
13 | success: function (res) {
14 | that.globalData.userInfo = res.userInfo
15 | typeof cb == "function" && cb(that.globalData.userInfo)
16 | }
17 | })
18 | }
19 | })
20 | }
21 | },
22 | globalData:{
23 | userInfo:null
24 | }
25 |
26 |
27 | })
--------------------------------------------------------------------------------
/frontend/app.json:
--------------------------------------------------------------------------------
1 |
2 | {
3 | "lazyCodeLoading": "requiredComponents",
4 | "pages":[
5 | "pages/index/index",
6 | "pages/chat/chat"
7 | ],
8 | "window":{
9 | "backgroundTextStyle":"light",
10 | "navigationBarBackgroundColor": "#fff",
11 | "navigationBarTitleText": "电影知识问答系统",
12 | "navigationBarTextStyle":"black"
13 | }
14 |
15 | }
16 |
--------------------------------------------------------------------------------
/frontend/img/bot.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SwimmingLiu/MovieKGQA/ba77aed8c4e1d71d54ffa37185ebc9da32f54a3e/frontend/img/bot.png
--------------------------------------------------------------------------------
/frontend/img/chatbot.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/frontend/img/graphdatabase.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/frontend/img/knowledge_graph.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/frontend/img/send.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/frontend/img/stop.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/frontend/img/user.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SwimmingLiu/MovieKGQA/ba77aed8c4e1d71d54ffa37185ebc9da32f54a3e/frontend/img/user.png
--------------------------------------------------------------------------------
/frontend/img/voice.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SwimmingLiu/MovieKGQA/ba77aed8c4e1d71d54ffa37185ebc9da32f54a3e/frontend/img/voice.png
--------------------------------------------------------------------------------
/frontend/package-lock.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "weichatapp-master",
3 | "lockfileVersion": 2,
4 | "requires": true,
5 | "packages": {
6 | "": {
7 | "dependencies": {
8 | "@miniprogram-component-plus/select-text": "^1.0.1"
9 | }
10 | },
11 | "node_modules/@miniprogram-component-plus/select-text": {
12 | "version": "1.0.1",
13 | "resolved": "https://registry.npmmirror.com/@miniprogram-component-plus/select-text/-/select-text-1.0.1.tgz",
14 | "integrity": "sha512-aJaDeqy3eSbi1Rc/EDU+2PomFf3PuCsQviXaoJqo7ms7GUlFBpBg4BeL+TmtaLkieNVB/v29CjEPaMGKAEW17g=="
15 | }
16 | },
17 | "dependencies": {
18 | "@miniprogram-component-plus/select-text": {
19 | "version": "1.0.1",
20 | "resolved": "https://registry.npmmirror.com/@miniprogram-component-plus/select-text/-/select-text-1.0.1.tgz",
21 | "integrity": "sha512-aJaDeqy3eSbi1Rc/EDU+2PomFf3PuCsQviXaoJqo7ms7GUlFBpBg4BeL+TmtaLkieNVB/v29CjEPaMGKAEW17g=="
22 | }
23 | }
24 | }
25 |
--------------------------------------------------------------------------------
/frontend/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "dependencies": {
3 | "@miniprogram-component-plus/select-text": "^1.0.1"
4 | }
5 | }
6 |
--------------------------------------------------------------------------------
/frontend/pages/chat/chat.js:
--------------------------------------------------------------------------------
1 | // pages/contact/contact.js
2 | const app = getApp();
3 | var inputVal = '';
4 | var msgList = [];
5 | var showReminder = true;
6 | var imageUrl = '/img/voice.png'
7 |
8 | // 假设 asr.js 存放在 utils 目录下
9 | const asr = require('../../utils/asr.min.js');
10 | /** asr.js **/
11 | // 获取应用实例
12 | // 和使用插件调用方式有所区别:
13 | let speechRecognizerManager;
14 | // 引入asr.js实例时:
15 | speechRecognizerManager = asr.getRecorderSpeechRecognizer; // isLog 非必填参数,类型为boolean,当值 为true时可打印日志调试。
16 |
17 | // 若不需要录音,只调用识别功能的话,按如下方式调用,识别结果回调和使用 录音 + 识别回调一致:
18 | let speechRecognizer = new asr.SpeechRecognizer(); // isLog 非必填参数,类型为boolean
19 | let resultText = '';
20 | var windowWidth = wx.getSystemInfoSync().windowWidth;
21 | var windowHeight = wx.getSystemInfoSync().windowHeight;
22 | var keyHeight = 0;
23 |
24 | var kgqa_url = "https://fish-sincere-yearly.ngrok-free.app/q/";
25 | //var key='4df93a740973db51a50ff9dea1304f80.XwsWdfe2xyxYnvRy'; //存放API秘钥1
26 | var key='6e30fbcc202f5013028d92d7098fef3b.i22ixkhUroSuO6Yv'; //我的API秘钥
27 | var model="chatglm_lite"; //选择模型 轻量级
28 | // var _url= 'http://47.96.133.86:5000/'; //我的服务器接口
29 | // var _url= 'http://47.115.23.82:5000/'; //服务器接口
30 | var _url= 'https://ai.stdiet.top';
31 | //var _url='https://open.bigmodel.cn/api/paas/v3/model-api/chatglm_lite/sse_invoke';
32 |
33 |
34 | /**
35 | * 初始化数据
36 | */
37 | function initData(that) {
38 | inputVal = '';
39 |
40 | msgList = [
41 | // {
42 | // speaker: 'server',
43 | // contentType: 'text',
44 | // content: '您好,我是您的电影知识问答助手。您可以随意问我与电影相关的问题,例如“成龙是谁?”'
45 | // },
46 | // {
47 | // speaker: 'customer',
48 | // contentType: 'text',
49 | // content: '好的好的好的好的好的好的好的好的好的好的好的好的好的好的好的好的好的好的好的好的好的好的好的好的好的好的好的好的好的好的好的好的好的好的好的好的好的好的好的好的好的好的好的好的好的好的好的好的好的好的好的好的好的好的好的好的好的好的好的好的好的好的好的好的好的好的好的好的好的好的好的好的好的好的好的好的好的好的好的好的好的好的好的好的好的好的好的好的好的好的好的好的好的好的好的好的好的好的好的好的好的好的好的好的好的好的好的好的好的好的好的好的好的好的好的好的好的好的好的好的好的好的好的好的好的好的好的好的好的好的好的好的好的好的好的好的好的好的好的好的好的好的好的好的好的好的好的好的好的好的好的好的好的好的好的好的好的好的好的好的好的好的好的好的好的好的好的好的好的好的好的好的好的好的好的好的好的好的好的好的好的好的好的好的好的好的好的好的好的好的好的好的好的好的好的好的好的好的好的好的好的好的好的好的好的好的好的好的好的好的好的好的好的好的好的好的好的好的好的好的好的好的好的好的好的好的好的好的好的好的好的好的好的好的好的好的好的好的好的好的好的好的好的好的好的好的好的好的好的好的好的好的好的好的好的好的好的好的好的好的好的好的'
50 | // }
51 | ]
52 | showReminder = true;
53 | that.setData({
54 | msgList,
55 | inputVal,
56 | showReminder,
57 | imageUrl,
58 | socket: null,
59 | speechRecognizerManager: null,
60 | isCanSendData: false,
61 | result: '',
62 | res:'',
63 | recording: false,
64 | disabled: false,
65 | isRecognizeStop: false,
66 | recognizeResult: ''
67 | })
68 |
69 | }
70 |
71 | /**
72 | * 计算msg总高度
73 | */
74 | // function calScrollHeight(that, keyHeight) {
75 | // var query = wx.createSelectorQuery();
76 | // query.select('.scrollMsg').boundingClientRect(function(rect) {
77 | // }).exec();
78 | // }
79 |
80 | Page({
81 |
82 | /**
83 | * 页面的初始数据
84 | */
85 | data: {
86 | scrollHeight: '100vh',
87 | inputBottom: 0,
88 | zhanweiHeight:'100px',
89 | scrollTop: 10000,
90 | reminderList: [
91 | {
92 | reminderText:'Stephen Chow是谁?'
93 | },
94 | {
95 | reminderText:'张国荣演了多少电影?'
96 | },
97 | {
98 | reminderText:'霸王别姬上映时间?'
99 | },
100 | {
101 | reminderText:'梁朝伟的作品有哪些?'
102 | },
103 | {
104 | reminderText:'周星驰演了哪些风格的电影?'
105 | },
106 | {
107 | reminderText:'肖申克的救赎讲了什么?'
108 | },
109 | {
110 | reminderText:'黄渤的家乡?'
111 | },
112 | {
113 | reminderText:'周润发演过哪些喜剧类电影?'
114 | },
115 | {
116 | reminderText:'阿甘正传的风格是什么?'
117 | }
118 | ]
119 | },
120 |
121 | /**
122 | * 生命周期函数--监听页面加载
123 | */
124 | onLoad: function (options) {
125 | initData(this);
126 | this.setData({
127 | //cusHeadIcon: app.globalData.userInfo.avatarUrl,
128 | });
129 | wx.showShareMenu({
130 | withShareTicket:true,
131 | menus:['shareAppMessage','shareTimeline']
132 | })
133 |
134 | this.speechRecognizerManager = speechRecognizerManager();
135 |
136 | // 开始识别
137 | this.speechRecognizerManager.OnRecognitionStart = (res) => {
138 | console.log('开始识别', res);
139 | this.isCanSendData = true;
140 | this.setData({
141 | recording: true,
142 | disabled: true,
143 | result: '',
144 | });
145 | };
146 |
147 | // 一句话开始
148 | this.speechRecognizerManager.OnSentenceBegin = (res) => {
149 | console.log('一句话开始', res);
150 | };
151 | // 识别变化时
152 | this.speechRecognizerManager.OnRecognitionResultChange = (res) => {
153 | console.log('识别变化时', res);
154 | this.setData({
155 | result: `${resultText || ''}${res.result.voice_text_str}`
156 | });
157 | };
158 | // 一句话结束
159 | this.speechRecognizerManager.OnSentenceEnd = (res) => {
160 | console.log('一句话结束', res);
161 | resultText += res.result.voice_text_str;
162 | this.setData({
163 | result: resultText
164 | });
165 | };
166 | // 识别结束
167 | this.speechRecognizerManager.OnRecognitionComplete = (res) => {
168 | console.log('识别结束', res);
169 | this.isRecognizeStop = true;
170 | this.setData({
171 | recording: false,
172 | disabled: false
173 | });
174 | };
175 | // 识别错误
176 | this.speechRecognizerManager.OnError = (res) => {
177 | console.log(res);
178 | this.isCanSendData = false;
179 | this.setData({
180 | recording: false,
181 | disabled: false
182 | });
183 | };
184 | },
185 | startLy: async function(e){
186 | const self = this;
187 | wx.getSetting({
188 | success(res) {
189 | if (!res.authSetting['scope.record']) {
190 | wx.authorize({
191 | scope: 'scope.record',
192 | success() {
193 | // 用户已经同意小程序使用录音功能,后续调用 record 接口不会弹窗询问
194 | self.startAsr();
195 | }, fail() {
196 | wx.showToast({ title: '未获取录音权限', icon: 'none' });
197 | // console.log("fail auth")
198 | }
199 | });
200 | } else {
201 | self.startAsr();
202 | // console.log("record has been authed")
203 | }
204 | },
205 | fail(res) {
206 | // console.log("fail",res)
207 | }
208 | });
209 | },
210 | startAsr: function() {
211 | // wx.showToast({
212 | // title: '建立连接中',
213 | // icon: 'none'
214 | // });
215 | resultText = '';
216 | const params = {
217 | // 用户参数
218 | secretkey: '',
219 | secretid: '',
220 | appid: 0,
221 | // 录音参数
222 | // duration: 100000,
223 | // frameSize: 1.28, //单位:k
224 |
225 | // 实时识别接口参数
226 | engine_model_type : '16k_zh',
227 | // 以下为非必填参数,可跟据业务自行修改
228 | // hotword_id : '08003a00000000000000000000000000',
229 | needvad: 1,
230 | filter_dirty: 1,
231 | filter_modal: 1,
232 | filter_punc: 1,
233 | // convert_num_mode : 1,
234 | word_info: 2,
235 | vad_silence_time: 200
236 | };
237 |
238 | this.speechRecognizerManager.start(params);
239 | wx.vibrateShort();
240 | },
241 | endLy: function(e){
242 | this.setData({
243 | recording: false,
244 | disabled: false
245 | });
246 | this.speechRecognizerManager.stop();
247 | },
248 |
249 | /**
250 | * 生命周期函数--监听页面显示
251 | */
252 | onShow: function() {
253 | this.setData({
254 | scrollTop: 10000
255 | })
256 | },
257 |
258 | /**
259 | * 页面相关事件处理函数--监听用户下拉动作
260 | */
261 | onPullDownRefresh: function() {
262 |
263 | },
264 |
265 | /**
266 | * 页面上拉触底事件的处理函数
267 | */
268 | onReachBottom: function() {
269 |
270 | },
271 | /**
272 | * 获取聚焦
273 | */
274 | focus: function(e) {
275 |
276 | keyHeight = e.detail.height;
277 | this.setData({
278 | zhanweiHeight:keyHeight + 100 + 'px',
279 | scrollHeight: (windowHeight - keyHeight - 100) + 'px'
280 | });
281 | this.setData({
282 | toView: 'msg-' + (msgList.length - 1),
283 | inputBottom: keyHeight + 'px',
284 | showReminder : false
285 | })
286 | //计算msg高度
287 | // calScrollHeight(this, keyHeight);
288 | this.pageScrollToBottom();
289 | },
290 |
291 | //失去聚焦(软键盘消失)
292 | blur: function(e) {
293 | this.setData({
294 | zhanweiHeight: '100px',
295 | scrollHeight: '100vh',
296 | inputBottom: 0,
297 | showReminder : true
298 | });
299 | this.pageScrollToBottom();
300 | },
301 | onTextareaInput:function(e){
302 | this.setData({
303 | inputVal:e.detail.value,
304 | toView: 'msg-' + (msgList.length - 1)
305 | })
306 | },
307 |
308 | //页面自动滚动到底部
309 | pageScrollToBottom: function() {
310 | this.setData({
311 | scrollTop: windowHeight + 10000
312 | })
313 | // wx.createSelectorQuery().select('#scrollpage').boundingClientRect(function(rect){
314 | // wx.pageScrollTo({
315 | // scrollTop: rect.bottom, // 设置一个足够大的值,以确保能够滚动到页面底部
316 | // duration: 100 // 滚动持续时间
317 | // });
318 | // }).exec();
319 | },
320 | /*
321 | 监听提示语
322 | */
323 | handleClick: function (e) {
324 | const text = e.currentTarget.dataset.text; // 获取view中存储的文本内容
325 | const inputText = text; // 将文本内容赋值给input的值
326 | // 使用选择器获取textarea组件,并设置其内容
327 | // 更新 textarea 的值
328 | this.setData({
329 | inputVal: inputText
330 | });
331 | },
332 | gptRequest:function(inputvalue){
333 | let that = this;
334 | inputVal = '';
335 | wx.request({
336 | url: _url,
337 | data:{
338 | APIModel:model,
339 | APIkey:key,
340 | info: inputvalue
341 | },
342 |
343 | //封装返回数据格式
344 | header: {
345 | 'Content-Type': 'application/json'
346 | },
347 | //请求成功的回调
348 | success: function(res) {
349 | // console.log(res.data);
350 |
351 | let data = res.data;
352 | // console.log(res.data);
353 | msgList.push({
354 | speaker: 'server',
355 | contentType: 'text',
356 | content: res.data + "(made by chatgpt)"
357 | })
358 | //调用set方法,告诉系统数据已经改变 启动循环,循环聊天信息
359 | that.setData({
360 | msgList,
361 | inputVal,
362 | })
363 | that.pageScrollToBottom();
364 | wx.setNavigationBarTitle({
365 | title: "电影知识系统小助手"
366 | })
367 | },
368 | fail: function (res) {
369 | msgList.push({
370 | speaker: 'server',
371 | contentType: 'text',
372 | content: "发送请求失败,请检查你的网络。" + res.errMsg,
373 | })
374 | //调用set方法,告诉系统数据已经改变 启动循环,循环聊天信息
375 | that.setData({
376 | msgList,
377 | inputVal
378 | })
379 | that.pageScrollToBottom();
380 | wx.setNavigationBarTitle({
381 | title: "电影知识系统小助手"
382 | })
383 | }
384 |
385 | })
386 |
387 | },
388 | /**
389 | * 发送点击监听
390 | */
391 | sendClick: function(e) {
392 | if (this.data.inputVal != ''){
393 | let inputvalue = this.data.inputVal;
394 | wx.setNavigationBarTitle({
395 | title: "对方正在输入中"
396 | })
397 | msgList.push({
398 | speaker: 'customer',
399 | contentType: 'text',
400 | content: this.data.inputVal
401 | })
402 | let that = this;
403 | inputVal = '';
404 | wx.request({
405 | url: kgqa_url + this.data.inputVal,
406 | method: 'POST', // 请求方法为 POST
407 | // data:{
408 | // data :
409 | // },
410 | //封装返回数据格式
411 | // header: {
412 | // 'Content-Type': 'application/json'
413 | // },
414 | //请求成功的回调
415 | success: function(res) {
416 | // console.log(res.data);
417 |
418 | let data = res.data;
419 | if (res.statusCode == 200 && typeof(res.data.answer) == "string"){
420 | if (res.data.answer.includes("没有找到答案。") || res.data.answer.includes("抱歉,我无法理解这个问题")){
421 | that.gptRequest(inputvalue);
422 | return -1;
423 | }else{
424 | msgList.push({
425 | speaker: 'server',
426 | contentType: 'text',
427 | content: res.data.answer,
428 | })
429 | }
430 |
431 | //调用set方法,告诉系统数据已经改变 启动循环,循环聊天信息
432 | }else if (res.statusCode == 200 && typeof(res.data.answer) == "object"){
433 | msgList.push({
434 | speaker: 'server',
435 | contentType: 'text',
436 | content: res.data.answer.introduction,
437 | image: res.data.answer.image
438 | })
439 | }
440 | else{
441 | that.gptRequest(inputvalue);
442 | return -1;
443 | }
444 | that.setData({
445 | msgList,
446 | inputVal,
447 | })
448 | that.pageScrollToBottom();
449 | wx.setNavigationBarTitle({
450 | title: "电影知识系统小助手"
451 | })
452 | },
453 | fail: function (res) {
454 | msgList.push({
455 | speaker: 'server',
456 | contentType: 'text',
457 | content: "发送请求失败,请检查你的网络。" + res.errMsg,
458 | })
459 | //调用set方法,告诉系统数据已经改变 启动循环,循环聊天信息
460 | that.setData({
461 | msgList,
462 | inputVal
463 | })
464 | that.pageScrollToBottom();
465 | wx.setNavigationBarTitle({
466 | title: "电影知识系统小助手"
467 | })
468 | }
469 | });
470 | inputVal = '';
471 | this.setData({
472 | msgList,
473 | inputVal,
474 | });
475 | that.pageScrollToBottom();
476 | }
477 | },
478 |
479 | /**
480 | * 退回上一页
481 | */
482 | toBackClick: function() {
483 | wx.navigateBack({})
484 | },
485 | voiceStart:function(e){
486 | let that = this;
487 | if (imageUrl == "/img/voice.png"){
488 | imageUrl = "/img/stop.svg"
489 | this.setData({
490 | imageUrl: imageUrl
491 | });
492 | this.startLy();
493 | this.setData({
494 | recording: true,
495 | scrollHeight: (windowHeight - 200) + 'px'
496 | }, () => {
497 | console.log("进入底部事件");
498 | this.pageScrollToBottom();
499 | });
500 | }
501 | else{
502 | imageUrl = "/img/voice.png"
503 | this.setData({
504 | imageUrl: imageUrl
505 | })
506 | this.endLy();
507 | inputVal = this.data.result;
508 | console.log(inputVal);
509 | this.setData({
510 | inputVal: inputVal
511 | });
512 | this.setData({
513 | scrollHeight: (windowHeight - 100) + 'px'
514 | });
515 | }
516 |
517 | },
518 |
519 | })
520 |
--------------------------------------------------------------------------------
/frontend/pages/chat/chat.json:
--------------------------------------------------------------------------------
1 | {
2 |
3 | }
--------------------------------------------------------------------------------
/frontend/pages/chat/chat.wxml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 | AI 提问
11 |
12 |
13 |
14 | 知识图谱
15 |
16 |
17 |
18 | 图数据库
19 |
20 |
21 |
22 |
23 |
24 | {{reminder.reminderText}}
26 |
27 |
43 |
44 |
45 |
46 |
47 |
48 |
49 |
50 |
51 |
52 |
53 |
54 |
55 |
56 |
57 |
58 | {{item.content}}
59 |
60 |
61 |
62 |
63 | {{item.content}}
64 |
65 |
66 |
67 |
68 |
69 |
70 |
71 |
72 |
73 |
74 |
75 |
76 |
77 |
78 |
79 |
80 |
81 |
82 |
83 |
84 |
85 |
86 |
87 |
88 |
89 |
90 |
91 |
92 |
93 |
94 |
95 |
96 |
97 |
98 |
99 |
100 |
101 |
102 |
103 |
104 |
105 |
106 |
107 |
108 |
109 |
110 |
111 |
112 |
113 |
114 |
115 |
116 |
117 |
118 |
119 |
120 |
121 |
122 |
123 |
124 |
--------------------------------------------------------------------------------
/frontend/pages/chat/chat.wxss:
--------------------------------------------------------------------------------
1 | /* pages/contact/contact.wxss */
2 |
3 | page {
4 | background-color: white;
5 | box-sizing: border-box;
6 | position: absolute;
7 | width: 100%;
8 | height: 100%;
9 | left: 0;
10 | top: 0;
11 | /* 在右侧添加阴影效果 */
12 | }
13 | .content-wrapper{
14 | box-sizing: border-box;
15 | display: flex;
16 | flex-direction: column;
17 | height: 100%;
18 | justify-content: space-between;
19 | align-items: flex-end;
20 | align-self: end;
21 |
22 | }
23 | .zhanwei{
24 | width: 100%;
25 | /* height: 75px; */
26 | background-color: white;
27 | }
28 | scroll-view{
29 | /* flex: 1; */
30 | max-height: calc(100vh - 100px);
31 | /* box-sizing: border-box; */
32 | }
33 | .mainBox{
34 | /* height: calc(100% - 160rpx); */
35 | padding-top: 50rpx;
36 | margin-left: 10rpx;
37 | margin-right: 10rpx;
38 | display: flex;
39 | flex-direction: column;
40 | /* border: 1px solid red; */
41 | }
42 | .titleBox{
43 | height: 300rpx;
44 | display: flex;
45 | flex-direction: row;
46 | /* border: 1px solid blue; */
47 | }
48 | .KG{
49 | padding-top: 10rpx;
50 | display: flex;
51 | flex-direction: column;
52 | align-items: center;
53 | width: 33%;
54 | /* border:1px red solid; */
55 | }
56 | .GD{
57 | padding-top: 10rpx;
58 | display: flex;
59 | flex-direction: column;
60 | align-items: center;
61 | width: 33%;
62 | /* border:1px blue solid; */
63 | }
64 | .CB{
65 | padding-top: 10rpx;
66 | display: flex;
67 | flex-direction: column;
68 | align-items: center;
69 | width: 33%;
70 | /* border:1px green solid; */
71 | }
72 |
73 | .leftMsg {
74 | box-sizing: border-box;
75 | font-size: 30rpx;
76 | color: black;
77 | line-height: 7vw;
78 | padding: 2vw 2.5vw;
79 | background-color: #8EC5FC;
80 | background-image: linear-gradient(90deg, #8EC5FC 12%, #E0C3FC 100%);
81 | /* 在右侧添加阴影效果 */
82 | background-clip: padding-box; /* 设置背景仅填充内容框 */
83 | margin-left: 0.5vw;
84 | border-radius: 20px;
85 | z-index: 10;
86 | }
87 | .leftMsg_img{
88 | margin-bottom: 10rpx;
89 | box-sizing: border-box;
90 | width: 100%;
91 | height: 0;
92 | padding-bottom: 100%;
93 | border-radius: 5%;
94 | background-size: cover;
95 | }
96 | .rightMsg {
97 | box-sizing: border-box;
98 | font-size: 30rpx;
99 | color: black;
100 | line-height: 7vw;
101 | padding: 2vw 2.5vw;
102 | background-color: #8EC5FC;
103 | background-image: linear-gradient(270deg, #8EC5FC 12%, #E0C3FC 100%);
104 | /* 在右侧添加阴影效果 */
105 | border-radius: 10rpx;
106 | z-index: 10;
107 | }
108 | .left_img{
109 | width: 11vw;
110 | height: 11vw;
111 | border-radius: 10rpx;
112 | }
113 | .inputRoom {
114 | width: 100vw;
115 | min-height: 120rpx;
116 | border-top: 1px solid #cdcdcd;
117 | background-color: white;
118 | position: fixed;
119 | /* position: fixed; */
120 | bottom: 0;
121 | display: flex;
122 | align-items: center;
123 | z-index: 20;
124 | padding-top: 10rpx;
125 | margin-bottom: 25rpx;
126 | }
127 | .inputBox{
128 | width: 580rpx;
129 | display: flex;
130 | justify-content: center;
131 | align-items: center;
132 | background-color: white;
133 | border:5rpx solid #f1f1f1;
134 | border-radius: 40rpx;
135 | margin-left: 10rpx;
136 | margin-right: 10rpx;
137 | padding: 0 30rpx;
138 | }
139 | .voice_bottom{
140 | width: 60rpx;
141 | margin-left: 3.2vw;
142 | border-radius: 30rpx;
143 | /* border:1rpx solid #f1f1f1; */
144 | cursor: pointer;
145 | }
146 | .inputBar {
147 | display: felx;
148 | justify-content: center;
149 | width: 500rpx;
150 | min-height: 80rpx;
151 | line-height: 40rpx;
152 | font-size: 40rpx;
153 | color: #444;
154 | overflow-y: hidden;
155 | padding-top: 5rpx;
156 | }
157 | .inputBar_placeHolder{
158 | font-size: 40rpx;
159 | font-family: '华文宋体';
160 | color: #7c7c7c;
161 | }
162 | .btn_submit{
163 | display: flex;
164 | justify-content: center;
165 | align-items: center;
166 | border: none;
167 | width: 75rpx;
168 | height: 75rpx;
169 | background-color: black;
170 | text-align: center;
171 | font-size: 30rpx;
172 | font-weight: bold;
173 | padding: -10rpx;
174 | border-radius: 20rpx;
175 | box-shadow: 0 0.3rpx #f1f1f1; /* 为了更像立方体,在按钮下方加上小小的阴影 */
176 | text-shadow: 1rpx 1rpx #f1f1f1; /* 按钮上的文字也以加上小小的阴影 */
177 | z-index: 999;
178 | }
179 |
180 | .send_img{
181 | height: 50rpx;
182 | width: 50rpx;
183 | }
184 |
185 | .remindBox{
186 | margin-top: 30rpx;
187 | box-sizing: border-box;
188 | width: 100%;
189 | padding: 20rpx 20rpx;
190 | /* border: 1px red solid; */
191 | display: flex;
192 | justify-content: space-between;
193 | /* justify-content: space-around; */
194 | flex-direction: row;
195 | flex-wrap: wrap;
196 | }
197 | .reminderBlock{
198 | box-sizing: border-box;
199 | width: 31%;
200 | min-height: 150rpx;
201 | padding: 5rpx;
202 | margin-bottom: 40rpx;
203 | display: flex;
204 | text-align: center;
205 | align-items: center;
206 | justify-content: center;
207 | font-size: 35rpx;
208 | color: #535353;
209 | border:2px #f1f1f1 solid;
210 | border-radius: 30rpx; /* 圆角 */
211 | /* box-shadow: 0 1px 4px rgba(0, 0, 0, 0.3); 立体效果的阴影 */
212 | }
213 |
214 | .reminder1{
215 | display: flex;
216 | flex-direction: column;
217 | /* border:1px solid red; */
218 | width:33%;
219 | }
220 | .reminder2{
221 | display: flex;
222 | flex-direction: column;
223 | /* border:1px solid blue; */
224 | width:33%;
225 | }
226 | .reminder3{
227 | display: flex;
228 | flex-direction: column;
229 | /* border:1px solid green; */
230 | width:33%;
231 | }
232 | .voiceBox{
233 | display: flex;
234 | justify-content: center;
235 | /* border:1px solid red; */
236 | box-sizing: border-box;
237 | width:100%;
238 | position: fixed;
239 | bottom: 100px;
240 | z-index: 99;
241 | }
242 | .loading{
243 | display: none;
244 | vertical-align: middle;
245 | margin-bottom: 50rpx;
246 | }
247 | .loading{
248 | display: inline-block;
249 | }
250 | .loading > view{
251 | display: inline-block;
252 | vertical-align: middle;
253 | width: 12rpx;
254 | background-color: #006EFF;
255 | margin-right: 16rpx;
256 | border-radius:50rpx;
257 | }
258 | .loading > view:last-child{
259 | margin-right: 0;
260 | }
261 | .line1{
262 | animation: lines 0.5s infinite ease-in-out alternate;
263 | }
264 | .line2{
265 | animation: lines 0.3s infinite ease-in-out alternate;
266 | }
267 | .line3{
268 | animation: lines 0.4s infinite ease-in-out alternate;
269 | }
270 | .line4{
271 | animation: lines 0.2s infinite ease-in-out alternate;
272 | }
273 | .line5{
274 | animation: lines 0.6s infinite ease-in-out alternate;
275 | }
276 |
277 | @keyframes lines {
278 | from,10% {
279 | height: 4rpx;
280 | }
281 | to,90%{
282 | height: 60rpx;
283 | }
284 | }
285 | @-webkit-keyframes lines {
286 | from,10% {
287 | height: 4rpx;
288 | }
289 | to,90%{
290 | height: 60rpx;
291 | }
292 | }
--------------------------------------------------------------------------------
/frontend/pages/index/index.js:
--------------------------------------------------------------------------------
1 | //index.js
2 | //获取应用实例
3 | var app = getApp()
4 | Page({
5 | data: {
6 | motto: 'Hello World',
7 | avatarUrl:'',
8 | nickName:''
9 | },
10 | //事件处理函数
11 | bindViewTap: function() {
12 | wx.navigateTo({
13 | url: '../logs/logs'
14 | })
15 | },
16 | loginCenterIndex: function(){
17 |
18 | wx.navigateTo({
19 | url: '../chat/chat'
20 | })
21 | },
22 |
23 | onLoad: function () {
24 | //console.log('onLoad')
25 | var that = this
26 | //调用应用实例的方法获取全局数据
27 | app.getUserInfo(function(userInfo){
28 | //更新数据
29 | that.setData({
30 | userInfo:userInfo
31 | })
32 | });
33 | wx.showShareMenu({
34 | withShareTicket:true,
35 | menus:['shareAppMessage','shareTimeline']
36 | })
37 | },
38 | /**
39 | * 退回上一页
40 | */
41 | toBackClick: function() {
42 | wx.navigateBack({})
43 | },
44 | onShow: function () {
45 | let that = this;
46 | wx.getUserInfo({
47 | success: function (res) {
48 | that.setData({
49 | avatarUrl: res.userInfo.avatarUrl,
50 | nickName: res.userInfo.nickName
51 | });
52 | },
53 | fail: function (res) {
54 | // 用户拒绝授权或其他失败情况处理
55 | }
56 | });
57 | }
58 |
59 | })
60 |
--------------------------------------------------------------------------------
/frontend/pages/index/index.json:
--------------------------------------------------------------------------------
1 | {
2 | "navigationBarBackgroundColor": "#8EC5FC"
3 | }
--------------------------------------------------------------------------------
/frontend/pages/index/index.wxml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | Movie KQGA
6 |
7 |
8 |
9 | Start
10 |
11 |
--------------------------------------------------------------------------------
/frontend/pages/index/index.wxss:
--------------------------------------------------------------------------------
1 | /**index.wxss**/
2 |
3 | .container {
4 | display: flex;
5 | flex-direction: column;
6 | padding-top: 0;
7 | height: 100vh;
8 | background-color: #8EC5FC;
9 | background-image: linear-gradient(180deg, #8EC5FC 12%, #E0C3FC 100%);
10 | /* 在右侧添加阴影效果 */
11 | }
12 | .mainBox {
13 | margin-top: 30rpx;
14 | display: flex;
15 | flex-direction: column;
16 | align-items: center;
17 | height: 80vh;
18 | width: 100%;
19 | }
20 | .title{
21 | font-size: 120rpx;
22 | text-align: center;
23 | font-family: 'Shojumaru';
24 | font-weight:bold;
25 | color: black;
26 | }
27 | .StartBox {
28 | display: flex;
29 | flex-direction: column;
30 | justify-content: center;
31 | align-items: center;
32 | text-align: center;
33 | width: 100vw;
34 | margin-bottom: 20rpx;
35 | }
36 | .botImg{
37 | margin:30rpx;
38 | height:620rpx;
39 | width: 580rpx;
40 | }
41 | .loginBtn {
42 | width: 300rpx;
43 | border-radius: 28px;
44 | /* 圆角半径,可以根据需要调整 */
45 | background-color: black;
46 | /* 设置背景颜色为黑色 */
47 | color: white;
48 | /* 设置文字颜色为白色,以便于对比 */
49 | padding: 10px 20px;
50 | /* 设置内边距,调整按钮大小 */
51 | border: none;
52 | /* 可以去掉边框 */
53 | outline: none;
54 | /* 去掉按钮点击时的外边框 */
55 | font-size: 35px;
56 | font-weight: bold;
57 | font-family: 'Shojumaru';
58 | }
--------------------------------------------------------------------------------
/frontend/project.config.json:
--------------------------------------------------------------------------------
1 | {
2 | "appid": "wx3c83c9f89fd38a15",
3 | "compileType": "miniprogram",
4 | "libVersion": "2.25.3",
5 | "packOptions": {
6 | "ignore": [],
7 | "include": []
8 | },
9 | "setting": {
10 | "coverView": true,
11 | "es6": true,
12 | "postcss": true,
13 | "minified": true,
14 | "enhance": true,
15 | "showShadowRootInWxmlPanel": true,
16 | "packNpmRelationList": [],
17 | "babelSetting": {
18 | "ignore": [],
19 | "disablePlugins": [],
20 | "outputPath": ""
21 | },
22 | "condition": false,
23 | "uglifyFileName": false
24 | },
25 | "condition": {},
26 | "editorSetting": {
27 | "tabIndent": "insertSpaces",
28 | "tabSize": 2
29 | },
30 | "simulatorPluginLibVersion": {}
31 | }
--------------------------------------------------------------------------------
/frontend/project.private.config.json:
--------------------------------------------------------------------------------
1 | {
2 | "description": "项目私有配置文件。此文件中的内容将覆盖 project.config.json 中的相同字段。项目的改动优先同步到此文件中。详见文档:https://developers.weixin.qq.com/miniprogram/dev/devtools/projectconfig.html",
3 | "projectname": "weichatapp-master",
4 | "setting": {
5 | "compileHotReLoad": true,
6 | "urlCheck": false,
7 | "bigPackageSizeSupport": true
8 | },
9 | "libVersion": "3.2.3"
10 | }
--------------------------------------------------------------------------------
/frontend/utils/asr.min.js:
--------------------------------------------------------------------------------
1 | const recorderManager=wx.getRecorderManager();let recorderSpeechRecognizeInstance;const guid=()=>{return"xxxxxxxx-xxxx-5xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,function(e){const t=Math.random()*16|0,n=e==="x"?t:t&3|8;return n.toString(16)})};function formatSignString(e,t){let n="";let i="asr.cloud.tencent.com/asr/v2/";if(e["appid"]){i+=e["appid"]}else{return""}const r=Object.keys(t);r.sort();for(const s in r){n+=`&${r[s]}=${t[r[s]]}`}return`${i}?${n.slice(1)}`}function getServerTime(e){return new Promise((t,n)=>{try{wx.request({url:"https://asr.cloud.tencent.com/server_time",data:e,method:"GET",dataType:"json",success:e=>{if(e&&e.data){t(e&&e.data)}else{n(e)}},fail:e=>{n(e)}})}catch(e){n(e)}})}async function createQuery(e,t){const n={};const i=await getServerTime();n["secretid"]=e.secretid||"";n["engine_model_type"]=e.engine_model_type||"16k_zh";n["timestamp"]=parseInt(i);n["expired"]=parseInt(i)+24*60*60;n["nonce"]=Math.round(i/100);n["voice_id"]=t;n["voice_format"]=e["voice_format"]||8;e.hasOwnProperty("hotword_id")&&(n["hotword_id"]=e.hotword_id);e.hasOwnProperty("customization_id")&&(n["customization_id"]=e.customization_id);e.hasOwnProperty("needvad")&&(n["needvad"]=e.needvad);e.hasOwnProperty("filter_dirty")&&(n["filter_dirty"]=e.filter_dirty);e.hasOwnProperty("filter_modal")&&(n["filter_modal"]=e.filter_modal);e.hasOwnProperty("filter_punc")&&(n["filter_punc"]=e.filter_punc);e.hasOwnProperty("convert_num_mode")&&(n["convert_num_mode"]=e.convert_num_mode);e.hasOwnProperty("word_info")&&(n["word_info"]=e.word_info);e.hasOwnProperty("vad_silence_time")&&(n["vad_silence_time"]=e.vad_silence_time);e.hasOwnProperty("hotword_list")&&(n["hotword_list"]=e.hotword_list);e.hasOwnProperty("reinforce_hotword")&&(n["reinforce_hotword"]=e.reinforce_hotword);return n}async function getSignStr(e,t){const n=await createQuery(e,t);return formatSignString(e,n)}export class SpeechRecognizer{constructor(e){this.appid="";this.secretid="";this.socket=null;this.isSignSuccess=false;this.isSentenceBegin=false;this.query={};this.signCallback=null;this.voiceId="";this.isLog=e}stop(){if(this.socket&&this.socket.readyState===1){this.socket.send({data:JSON.stringify({type:"end"})})}}async getUrl(e,t){const n=await getSignStr(e,t);if(!n){return false}return`${n}&signature=${encodeURIComponent(this.signCallback(n))}`}async start(r){this.appid=r.appid||"";this.secretid=r.secretid||"";this.socket=null;this.isSignSuccess=false;this.isSentenceBegin=false;this.query={...r};this.voiceId=guid();function s(e){const t=e.words;const n=e.sigBytes;const i=new Uint8Array(n);for(let e=0;e>>2]>>>24-e%4*8&255}return i}function e(e){const t=r.secretkey;const n=CryptoJS.HmacSHA1(e,t);const i=s(n);return wx.arrayBufferToBase64(i)}this.signCallback=r.signCallback||e;const t=await this.getUrl(this.query,this.voiceId);this.isLog&&console.log("get url",t,this.voiceId);if(!t){this.OnError({code:6002,message:"鉴权失败",voice_id:this.voiceId});return}const n={url:`wss://${t}`,header:{}};if(r.token){n["header"]["X-TC-Token"]=r.token}this.socket=wx.connectSocket(n);this.socket.onMessage(e=>{const t=JSON.parse(e.data||null);if(t.code!==0){this.OnError(t);this.socket&&this.socket.close()}else{if(!this.isSignSuccess){this.OnRecognitionStart(t);this.isSignSuccess=true}if(t.final===1){this.OnRecognitionComplete(t);return}if(t.result){if(t.result.slice_type===0){this.OnSentenceBegin(t);this.isSentenceBegin=true}else if(t.result.slice_type===2){if(!this.isSentenceBegin){this.OnSentenceBegin(t)}this.OnSentenceEnd(t)}else{this.OnRecognitionResultChange(t)}}}});this.socket.onError(e=>{this.isLog&&console.log("socket onError",e,this.voiceId);this.socket&&this.socket.close();this.OnError({code:6e3,message:e,voice_id:this.voiceId});this.socket=null});this.socket.onClose(e=>{this.socket=null})}write(e){if(!this.socket||this.socket.readyState!==1){return}this.socket.send({data:e,success:e=>{},fail:e=>{this.isLog&&console.log("socket send error",e,this.voiceId);this.OnError({code:6e3,message:e,voice_id:this.voiceId})}})}OnRecognitionStart(e){}OnSentenceBegin(e){}OnRecognitionResultChange(){}OnSentenceEnd(){}OnRecognitionComplete(){}OnError(){}}class Recorder{constructor(){this.canStop=false;if(!Recorder.instance){Recorder.instance=this}return Recorder.instance}start(e,t){this.isLog=t;function n(e){switch(String(e)){case"1":return"pcm";case"8":return"mp3";default:return"mp3"}}const i={duration:e.duration||6e5,sampleRate:16e3,numberOfChannels:1,encodeBitRate:64e3,format:n(e.voice_format),frameSize:e.frameSize||.32};this.isLog&&console.log("recorderParams: ",i);recorderManager.start(i);recorderManager.onStart(e=>{this.isLog&&console.log("recorderManager is start");this.canStop=true});recorderManager.onStop(e=>{this.isLog&&console.log("recorderManager is stop: ",e);this.canStop=false;this.OnStop(e)});recorderManager.onError(e=>{this.isLog&&console.log("recorderManager is error: ",e);this.canStop=false;this.OnError(e);this.stop()});recorderManager.onFrameRecorded(e=>{this.OnReceivedData(e.frameBuffer);this.OnFrameRecorded(e)});recorderManager.onInterruptionBegin(()=>{this.stop();this.OnInterruptionBegin()});recorderManager.onInterruptionEnd(()=>{this.stop();this.OnInterruptionEnd()})}stop(){if(recorderManager&&this.canStop){recorderManager.stop()}}OnReceivedData(e){}OnError(e){}OnStop(e){}OnInterruptionBegin(){}OnInterruptionEnd(){}OnFrameRecorded(){}}class RecorderSpeechRecognizer{constructor(e){this.isLog=e}init(){this.speechRecognizer=null;this.isCanSendData=false;this.audioData=[]}start(r){this.isLog&&console.log("start function is click");if(this.recorder){return false}this.init();this.recorder=new Recorder;const e={duration:r.duration,frameSize:r.frameSize,voice_format:r.voice_format};this.recorder.start(e,this.isLog);this.audioData=[];this.recorder.OnReceivedData=e=>{this.audioData.push(...new Int8Array(e));const t=r["engine_model_type"].includes("8k")?640:1280;if(this.isCanSendData&&this.audioData.length>t){const n=this.audioData.splice(0,t);const i=new Int8Array(n);this.speechRecognizer.write(i.buffer)}};this.recorder.OnFrameRecorded=e=>{this.OnFrameRecorded(e)};this.recorder.OnInterruptionBegin(()=>{this.isLog&&console.log("recorderOnInterruptionBegin");this.OnInterruptionBegin()});this.recorder.OnInterruptionEnd(()=>{this.isLog&&console.log("recorderOnInterruptionEnd");this.OnInterruptionEnd()});this.recorder.OnStop=e=>{this.recorder=null;if(this.isCanSendData&&this.audioData.length>0){this.speechRecognizer&&this.speechRecognizer.write(new Int8Array(this.audioData).buffer);this.audioData=[]}this.OnRecorderStop(e);if(this.speechRecognizer){this.speechRecognizer.stop()}};this.recorder.OnError=e=>{this.stop();this.OnError(e)};if(!this.speechRecognizer){this.speechRecognizer=new SpeechRecognizer(this.isLog)}this.speechRecognizer.OnRecognitionStart=e=>{this.isLog&&console.log("OnRecognitionStart",e);this.OnRecognitionStart(e);this.isCanSendData=true};this.speechRecognizer.OnSentenceBegin=e=>{this.isLog&&console.log("OnSentenceBegin",e);this.OnSentenceBegin(e)};this.speechRecognizer.OnRecognitionResultChange=e=>{this.OnRecognitionResultChange(e)};this.speechRecognizer.OnSentenceEnd=e=>{this.OnSentenceEnd(e)};this.speechRecognizer.OnRecognitionComplete=e=>{this.isLog&&console.log("OnRecognitionComplete",e);this.OnRecognitionComplete(e);this.isCanSendData=false};this.speechRecognizer.OnError=e=>{this.isLog&&console.log("OnError",e);this.OnError(e);this.isCanSendData=false;setTimeout(()=>{if(this.recorder){this.recorder.stop()}},500)};this.speechRecognizer.start(r)}stop(){this.isLog&&console.log("stop function is click");if(this.recorder){this.recorder.stop()}}OnRecognitionStart(e){}OnSentenceBegin(e){}OnRecognitionResultChange(){}OnSentenceEnd(){}OnRecognitionComplete(){}OnError(){}OnRecorderStop(){}OnInterruptionBegin(){}OnInterruptionEnd(){}OnFrameRecorded(){}}export function getRecorderSpeechRecognizer(e){if(!recorderSpeechRecognizeInstance){recorderSpeechRecognizeInstance=new RecorderSpeechRecognizer(e)}return recorderSpeechRecognizeInstance}var CryptoJS=CryptoJS||function(c,n){var e={},t=e.lib={},i=function(){},r=t.Base={extend:function(e){i.prototype=this;var t=new i;e&&t.mixIn(e);t.hasOwnProperty("init")||(t.init=function(){t.$super.init.apply(this,arguments)});t.init.prototype=t;t.$super=this;return t},create:function(){var e=this.extend();e.init.apply(e,arguments);return e},init:function(){},mixIn:function(e){for(var t in e)e.hasOwnProperty(t)&&(this[t]=e[t]);e.hasOwnProperty("toString")&&(this.toString=e.toString)},clone:function(){return this.init.prototype.extend(this)}},a=t.WordArray=r.extend({init:function(e,t){e=this.words=e||[];this.sigBytes=t!=n?t:4*e.length},toString:function(e){return(e||o).stringify(this)},concat:function(e){var t=this.words,n=e.words,i=this.sigBytes;e=e.sigBytes;this.clamp();if(i%4)for(var r=0;r>>2]|=(n[r>>>2]>>>24-8*(r%4)&255)<<24-8*((i+r)%4);else if(65535>>2]=n[r>>>2];else t.push.apply(t,n);this.sigBytes+=e;return this},clamp:function(){var e=this.words,t=this.sigBytes;e[t>>>2]&=4294967295<<32-8*(t%4);e.length=c.ceil(t/4)},clone:function(){var e=r.clone.call(this);e.words=this.words.slice(0);return e},random:function(e){for(var t=[],n=0;n>>2]>>>24-8*(i%4)&255;n.push((r>>>4).toString(16));n.push((r&15).toString(16))}return n.join("")},parse:function(e){for(var t=e.length,n=[],i=0;i>>3]|=parseInt(e.substr(i,2),16)<<24-4*(i%8);return new a.init(n,t/2)}},h=s.Latin1={stringify:function(e){var t=e.words;e=e.sigBytes;for(var n=[],i=0;i>>2]>>>24-8*(i%4)&255));return n.join("")},parse:function(e){for(var t=e.length,n=[],i=0;i>>2]|=(e.charCodeAt(i)&255)<<24-8*(i%4);return new a.init(n,t)}},d=s.Utf8={stringify:function(e){try{return decodeURIComponent(escape(h.stringify(e)))}catch(e){throw Error("Malformed UTF-8 data")}},parse:function(e){return h.parse(unescape(encodeURIComponent(e)))}},l=t.BufferedBlockAlgorithm=r.extend({reset:function(){this._data=new a.init;this._nDataBytes=0},_append:function(e){"string"==typeof e&&(e=d.parse(e));this._data.concat(e);this._nDataBytes+=e.sigBytes},_process:function(e){var t=this._data,n=t.words,i=t.sigBytes,r=this.blockSize,s=i/(4*r),s=e?c.ceil(s):c.max((s|0)-this._minBufferSize,0);e=s*r;i=c.min(4*e,i);if(e){for(var o=0;oa;a++){if(16>a)d[a]=e[t+a]|0;else{var h=d[a-3]^d[a-8]^d[a-14]^d[a-16];d[a]=h<<1|h>>>31}h=(i<<5|i>>>27)+c+d[a];h=20>a?h+((r&s|~r&o)+1518500249):40>a?h+((r^s^o)+1859775393):60>a?h+((r&s|r&o|s&o)-1894007588):h+((r^s^o)-899497514);c=o;o=s;s=r<<30|r>>>2;r=i;i=h}n[0]=n[0]+i|0;n[1]=n[1]+r|0;n[2]=n[2]+s|0;n[3]=n[3]+o|0;n[4]=n[4]+c|0},_doFinalize:function(){var e=this._data,t=e.words,n=8*this._nDataBytes,i=8*e.sigBytes;t[i>>>5]|=128<<24-i%32;t[(i+64>>>9<<4)+14]=Math.floor(n/4294967296);t[(i+64>>>9<<4)+15]=n;e.sigBytes=4*t.length;this._process();return this._hash},clone:function(){var e=i.clone.call(this);e._hash=this._hash.clone();return e}});e.SHA1=i._createHelper(t);e.HmacSHA1=i._createHmacHelper(t)})();(function(){var e=CryptoJS,h=e.enc.Utf8;e.algo.HMAC=e.lib.Base.extend({init:function(e,t){e=this._hasher=new e.init;"string"==typeof t&&(t=h.parse(t));var n=e.blockSize,i=4*n;t.sigBytes>i&&(t=e.finalize(t));t.clamp();for(var r=this._oKey=t.clone(),s=this._iKey=t.clone(),o=r.words,c=s.words,a=0;a