Python:列表/集合的交集
<代码> def boolean_search_and(self, text):
results = []
and_tokens = self.tokenize(text)
tokencount = len(and_tokens)
term1 = and_tokens[0]
print ' term 1:', term1
term2 = and_tokens[1]
print ' term 2:', term2
#for term in and_tokens:
if term1 in self._inverted_index.keys():
resultlist1 = self._inverted_index[term1]
print resultlist1
if term2 in self._inverted_index.keys():
resultlist2 = self._inverted_index[term2]
print resultlist2
#intersection of two sets casted into a list
results = list(set(resultlist1) & set(resultlist2))
print 'results:', results
return str(results)
此代码非常适合两个标记,例如:text= "Hello World" 等,tokens = ['hello', 'world']。我想将其概括为多个标记,因此文本可以是一个句子,也可以是整个文本文件。
self._inverted_index 是一个字典,它将标记保存为键,值是键/标记出现的 DocID。
你好-> [1,2,5,6]
世界-> [1,3,5,7,8]
结果:
你好和世界-> [1,5]
我想要实现以下目标: 说, (((hello AND Computer) AND science) AND world)
我正在努力使其适用于多个单词,而不仅仅是两个单词。我今天早上开始使用 python 工作,所以我不知道它必须提供的很多功能。
有什么想法吗?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
内置的 set 类型适合您吗?
Would the built-in set type work for you?