【发布时间】:2016-12-15 18:45:31
【问题描述】:
我正在尝试创建一个计算机诊断服务程序。我希望能够询问用户他们的问题是什么,然后从中提取关键词。然后我想打印一个解决方案。例如,用户说“我的屏幕坏了”,程序识别“屏幕”并打印屏幕坏了的解决方案。老实说,我不知道该怎么做,我真的需要一些帮助。谢谢!
【问题讨论】:
标签: python python-3.x diagnostics
我正在尝试创建一个计算机诊断服务程序。我希望能够询问用户他们的问题是什么,然后从中提取关键词。然后我想打印一个解决方案。例如,用户说“我的屏幕坏了”,程序识别“屏幕”并打印屏幕坏了的解决方案。老实说,我不知道该怎么做,我真的需要一些帮助。谢谢!
【问题讨论】:
标签: python python-3.x diagnostics
带有一些关键字字典来解决d,
d = {'screen': 'Get a new screen', ...}
problem = input('What did you do? ').lower()
for k in d:
if k in problem:
print(d[k])
对于每个关键字,检查它是否存在问题。如果是,则打印相关的解决方案
【讨论】:
with open('input.txt') as f: {k: v for k, v in map(lambda x: x.split(':'), f.readlines())} 这样的东西应该可以工作。如果空格太多,您可能需要做一些strips
这也有效
import re
D = {'screen': 1, 'keyboard': 2, 'mouse': 3}
keywords = set(D)
wordre = re.compile(r'\w+')
problem = "The cursor doesn't move on the screen when I move the mouse"
found = set(wordre.findall(problem.lower())) & keywords
print(found) # prints {'mouse', 'screen'}
【讨论】:
您的问题没有说明您的代码是否会对用户输入的范围施加任何限制。
假设用户能够在很大程度上描述他的问题(即输入原始文本而不是仅仅输入一两个句子),您可以使用summa 模块。
如果您查看它的文档,您会发现通过将其关键字功能应用于任何文本;您可以从中提取关键字。因此,您可以解析这些参数以打印相应的解决方案。一个简单的方法是维护一个字典,将您感兴趣的关键字作为键,将它们的解决方案作为值;然后只需简单地对照这些交叉检查 summa 生成的关键字即可打印您的最终解决方案。
【讨论】: