如何仅从句子列表中查找唯一句子



我得到了这样的列表:

['University', 'Cambridge', 'Lesley University', 'Lesley', 
'Office of Information Technology', 
'Office', 'of', 'Information', 'Technology', 'MA', 
'United States', 'United', 'States', 'Lesley University ', ' University', 
'Lesley University Cambridge']
大学(大写(
  • 应与大学(小写(相同
  • 由于"莱斯利大学"已经包含"大学",因此应跳过"大学">

因此,Id 喜欢只打印最独特的超集,因此输出看起来像:-

['Office of Information Technology', 'MA', 
'United States', 
'Lesley University Cambridge']

====

==================================================================
tok= ['University', 'Cambridge', 'Lesley University', 'Lesley', 
'Office of Information Technology', 
'Office', 'of', 'Information', 'Technology', 'MA', 
'United States', 'United', 'States', 'Lesley University ', ' University', 
'Lesley University Cambridge']
dic={}
for i in [x.lower() for x in tok]:
dic[i]=1
dic
{'大学': 1, '剑桥': 1, '

莱斯利大学': 1, '办公室 信息技术":1,"MA":1,"美国":1,"莱斯利" 大学 ": 1, "大学": 1, "莱斯利大学剑桥": 1, '莱斯利': 1}

sup_=sorted(jt.keys(), key=len)
se_={}
for i in sup_:
ctr=0
status=True
for k in sup_:
if i in k.split():
ctr+=1
status=status and (i in k.split())
if status==True:
#se[i]=1
#print (ctr)
if ctr==0:
se_[i]=1
se_
{'美国': 1, '莱斯利大学'

: 1, '莱斯利大学 剑桥': 1, '信息技术办公室': 1}

这段代码怎么样:

import re
test = ['University', 'Cambridge', 'Lesley University', 'Lesley', 'Office of Information Technology', 'Office', 'of', 'Information', 'Technology', 'MA', 'United States', 'United', 'States', 'Lesley University ', ' University', 'Lesley University Cambridge']
result = []
for i in range(len(test)):
str_init = test[i].strip()
flag_add = True
for j in range(len(test)):
# exclude variable same index
if(i!=j):
str_include = " "+test[j]+" "
pattern = r"s{0}s".format(str_init)
if(re.search(pattern,str_include,re.IGNORECASE)):
flag_add = False
if(flag_add):
result.append(str_init)
print(result)

输出:

['Office of Information Technology', 'MA', 'United States', 'Lesley University Cambridge']

有点难以知道这是否是您需要的,但此函数应该为您提供列表中的唯一单词

def unique_universities(text):
low = []
for x in text:
x.replace(' ', '')
low.append(x.lower())
return set(low)

这就是你要找的吗?

您可以像这样处理数据:

def is_substr(str,l):
for s in l:
if s.lower().strip() != str.lower().strip():
if str.lower().strip() in s.lower().strip():
return True
return False
input = ['University', 'Cambridge', 'Lesley University', 'Lesley', 'Office of Information Technology', 'Office', 'of', 'Information', 'Technology', 'MA', 'United States', 'United', 'States', 'Lesley University', 'University', 'Lesley University Cambridge']
sentences = []
for i in input:
if not is_substr(i,input):
sentences.append(i)
print sentences

运行此操作将生成输出:

['Office of Information Technology', 'MA', 'United States', 'Lesley University Cambridge']

最新更新