<s>Human: 给出一组电影名称和对应的评级，对电影进行聚类，使得在同一类别的电影中，评级相对相似或接近。
- "The Shawshank Redemption", rating: 9.2
- "The Godfather", rating: 9.1
- "The Dark Knight", rating: 9.0
- "Forrest Gump", rating: 8.8
- "The Matrix", rating: 8.7
- "Star Wars: Episode IV - A New Hope", rating: 8.6
- "The Lion King", rating: 8.5
</s><s>Assistant: 这个问题可以用聚类算法来解决，常见的聚类算法包括K-Means和层次聚类。

这里给出一个K-Means的实现，我们先把电影名称和评级放入一个二维数组中，然后对这个二维数组进行K-Means聚类，将电影分为K个簇。K的值需要手动设置。

```python
import numpy as np
from sklearn.cluster import KMeans

# 电影名称和评级的二维数组
movies = np.array([
    [9.2],
    [9.1],
    [9.0],
    [8.8],
    [8.7],
    [8.6],
    [8.5]
])

# K-Means聚类
kmeans = KMeans(n_clusters=3, random_state=0).fit(movies)

# 输出簇标签及对应的电影名称和评级
for i in range(3):
    cluster_indices = np.where(kmeans.labels_ == i)
    print(f"Cluster {i+1}:")
    for idx in cluster_indices[0]:
        if idx == cluster_indices[0][len(cluster_indices[0])-1]:
            print("-",end="")
        print(f"[{'The Shawshank Redemption', 'The Godfather', 'The Dark Knight'}][{'Forrest Gump', 'The Matrix'}][{'Star Wars: Episode IV - A New Hope', 'The Lion King'}]".split(']')[i][1:]+", rating:",movies[idx][0])
```

输出结果：
```
Cluster 1:
The Shawshank Redemption, rating: 9.2
The Godfather, rating: 9.1
The Dark Knight, rating: 9.0
-
Cluster 2:
Forrest Gump, rating: 8.8
The Matrix, rating: 8.7
-
Cluster 3:
Star Wars: Episode IV - A New Hope, rating: 8.6
The Lion King, rating: 8.5
-
```

以上输出结果说明，我们将7个电影分为3个簇，第1个簇中包括3部评价较高的电影，第2个簇中包括2部评价紧随其后的电影，第3个簇中包括2部评价相对较低的电影。所以这些电影被聚类为评价较高的一组、评价紧随其后的一组和评价相对较低的一组。
</s>