【问题标题】:difficulty splitting, searching and printing document in python 3在 python 3 中难以拆分、搜索和打印文档
【发布时间】: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


    【解决方案1】:

    我将创建字典,其中全文文本作为键,文档编号作为值。然后只需检查用户输入的短语是否在其中一个键中,然后获取文档编号,如下所示:

    for key in story_document_dict:
      if phrase in key:
        return story_document_dict[key]
    

    【讨论】:

    • 第一行可以是for key in dict:(虽然dict是个坏名字)
    猜你喜欢
    • 2019-04-24
    • 2015-08-27
    • 1970-01-01
    • 1970-01-01
    • 2018-07-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多