繁体   English   中英

将单独的列表转换为一个列表

[英]cast separate lists into to one list

我正在关注这个示例语义聚类

!pip install sentence_transformers
from sentence_transformers import SentenceTransformer
from sklearn.cluster import KMeans

embedder = SentenceTransformer('all-MiniLM-L6-v2')

# Corpus with example sentences
corpus = ['A man is eating food.',
          'A man is eating a piece of bread.',
          'A man is eating pasta.',
          'The girl is carrying a baby.',
          'The baby is carried by the woman',
          'A man is riding a horse.',
          'A man is riding a white horse on an enclosed ground.',
          'A monkey is playing drums.',
          'Someone in a gorilla costume is playing a set of drums.',
          'A cheetah is running behind its prey.',
          'A cheetah chases prey on across a field.'
          ]
corpus_embeddings = embedder.encode(corpus)

# Perform kmean clustering
num_clusters = 5
clustering_model = KMeans(n_clusters=num_clusters)
clustering_model.fit(corpus_embeddings)
cluster_assignment = clustering_model.labels_

clustered_sentences = [[] for i in range(num_clusters)]
for sentence_id, cluster_id in enumerate(cluster_assignment):
    clustered_sentences[cluster_id].append(corpus[sentence_id])

for i, cluster in enumerate(clustered_sentences):
  print("Cluster", i+1)
  print(cluster)
  print(len(cluster))
  print("")

结果lists

Cluster  1
['The girl is carrying a baby.', 'The baby is carried by the woman']
2

Cluster  2
['A man is riding a horse.', 'A man is riding a white horse on an enclosed ground.']
2

Cluster  3
['A man is eating food.', 'A man is eating a piece of bread.', 'A man is eating pasta.']
3

Cluster  4
['A cheetah is running behind its prey.', 'A cheetah chases prey on across a field.']
2

Cluster 5
['A monkey is playing drums.', 'Someone in a gorilla costume is playing a set of drums.']
2

如何将这些单独的list添加到一个列表中?

预期结果:

list2[['The girl is carrying a baby.', 'The baby is carried by the woman'], .....['A monkey is playing drums.', 'Someone in a gorilla costume is playing a set of drums.']]

我尝试了以下方法:

list2=[]
for i in cluster:
  list2.append(i)
list2

但我只返回最后一个:

['A monkey is playing drums.',
 'Someone in a gorilla costume is playing a set of drums.']

有任何想法吗?

按照该示例,您无需任何操作即可获取列表列表; 这已经为你完成了。

尝试打印clustered_sentences

基本上,您需要从列表列表中获取“平面”列表,您可以使用 python 列表理解来实现:

flat = [item for sub in clustered_sentences for item in sub]

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM