簡體   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