gpt4 book ai didi

Python 测验 - 如何接受大多数正确答案

转载 作者:太空宇宙 更新时间:2023-11-04 09:11:20 29 4
gpt4 key购买 nike

我正在编写一个允许用户设置个人测验的程序(如记事卡式系统)。参加测验时,用户会在每个问题上计时。虽然答案不会是多项选择,但它们将由用户输入。

有没有一种方法可以让我充分接受那些不是他们第一次设置测验时输入的完整答案的答案?

例子

问:“苏格拉底是谁。”

A:“一位希腊哲学家。”


我想过使用类似的东西:

if input in answer:
print "That's correct."

但这根本不起作用。

有没有办法做到这一点?或者接近它的东西。

---更新---

我最近遇到了一个在这方面表现出色的 Python 模块,它叫做 FuzzyWuzzy,这里是它的描述和它能做什么的链接 http://seatgeek.com/blog/dev/fuzzywuzzy-fuzzy-string-matching-in-python

最佳答案

这完全取决于您要尝试做什么。您的尝试听起来像是在尝试匹配“A Greek Philosopher”的任何子字符串,因此“ee”将是正确答案。这听起来不对。

对于每个问题,您可以有一组(或列表)可能的正确答案。对于您的示例,也许您也可以只接受“哲学家”。

如果您想忽略拼写错误,您可以测试输入的内容是否“接近”任何已知的正确答案。这需要一个函数来计算匹配的接近程度。一种流行的方法是使用编辑距离。见:

http://en.wikipedia.org/wiki/Levenshtein_distance
http://en.wikibooks.org/wiki/Algorithm_implementation/Strings/Levenshtein_distance
http://code.activestate.com/recipes/576874-levenshtein-distance/
http://pypi.python.org/pypi/python-Levenshtein/

更新

如果您想允许不精确的拼写,Levenshtein Distance 是个不错的选择。但是如果你想允许不同的短语,即“来自古希腊的哲学家”,那么就需要不同的方法。如果你真的有动力,你可以尝试使用 NLTK, Natural Language Toolkit for Python实现一种模糊短语匹配,您尝试匹配词性而不是提供的确切短语。请注意,这并非微不足道

关于Python 测验 - 如何接受大多数正确答案,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14668614/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com