【发布时间】:2015-02-05 15:53:21
【问题描述】:
嘿,伙计们,这是非常基本的东西,但我正在努力为作业操作一个简单的文本文档。在文本中有多个故事,由“新文档”分隔。我应该将它们放入字典中,并能够根据索引号或搜索词检索它们。到目前为止,我的字典包含文本中的所有单词作为键,它们在每个文档中的位置作为值。如果一个词出现在多个文档中,则它具有多个值。我想不出一种方法来搜索字典中的字符串并返回包含该确切短语的所有文档的索引。
def main_menu():
file = open("ap_docs2.txt", 'r')
dict1 = {}
docNum = 0
numList = []
for line in file:
line = line.strip("\n")
line = line.strip('.')
line = line.strip(',')
line = line.lower()
if line == "<new document>":
docNum += 1
else:
line = line.split()
for i in line:
if i in dict1:
dict1[i].add(docNum)
else:
dict1[i] = set(numList)
dict1[i].add(docNum)
这是我的搜索功能:
def search(dict1):
user_input = input("Enter the phrases you'd like to search")
user_input = user_input.lower()
user_input = user_input.strip("\n")
user_input = user_input.strip('.')
user_input = user_input.strip(',')
list1 = user_input.split()
print(list1)
for i in list1:
if i in dict1:
print(i, "is found in", dict1[i], "documents")
这是文件:
<NEW DOCUMENT>
Look on the bright
side of Life.
<NEW DOCUMENT>
look on the very, dark
side of the Moon
<NEW DOCUMENT>
is there life
on the moon
例如,如果我搜索“月亮”,它会返回:
the is found in documents {1, 2, 3}
moon is found in documents {2, 3}
我希望能够搜索整个短语而不是一个词。然后返回包含整个短语的任何文档。感谢您的帮助,很抱歉,这可能是一个非常简单的解决方案,我刚刚被困了一段时间。
【问题讨论】:
标签: python list dictionary set document