我想根据它们是否与另一个列表中的条目匹配来聚类单词或句子。
像这样:
searchterms = ["windows pc", "linux laptop", "some gibberish"]
osCluster = ["windows", "linux"]
我现在要做的是通过搜索字符串并使用osCluster列表对它们进行分类。最后我想要像这样的csv格式:
现在我有这样的事情:
for searchterm in searchterms:
for os in osCluster:
if os in searchterm:
print searchterm, os
导致:
windows pc windows
linux laptop linux
[Finished in 0.0s]
然而,我想标记一些乱码" as" N / A"。如果我只是添加:
else:
print searchterm
这将导致:
windows windows
windows
linux
linux linux
gibberish
gibberish
[Finished in 0.0s]
我知道这就是我编写的程序。但我认为这是错误的思维方式。如果你能指出我正确的方向,这将是非常有用的。
答案 0 :(得分:3)
你非常接近。以下是一些修复方法:
>>> searchterms = ["windows pc", "linux laptop", "some gibberish"]
>>> osCluster = ["windows", "linux"]
>>> for term in searchterms:
found_cluster = 'N/A'
for cluster in osCluster:
if cluster in term:
found_cluster = cluster
break
print('%-15s | %s' % (term, found_cluster))
windows pc | windows
linux laptop | linux
some gibberish | N/A