Python 如何解构和回答一个三字句子

Python 如何解构和回答一个三字句子,python,python-2.7,python-3.x,Python,Python 2.7,Python 3.x,我正在尝试编写一个代码,用一个代词、主语(名词)和动词组成一个三字句子。我恨你。然后识别每个单词(无论是名词、动词还是代词)并记住名词和动词。然后它将以一种非常明显的方式对判决作出答复,例如:; 输入:我讨厌苹果。 回答:你为什么讨厌苹果? 输入:我做运动。 回答:你为什么做运动 非常简单的东西,但我很难把句子中的每个单词都拆开,然后保存它们所属的类型。稍后我将讨论专有名词,因为现在我将讨论一个大约2000个名词的简单列表 from nouns import nouns_list from ad

我正在尝试编写一个代码,用一个代词、主语(名词)和动词组成一个三字句子。我恨你。然后识别每个单词(无论是名词、动词还是代词)并记住名词和动词。然后它将以一种非常明显的方式对判决作出答复,例如:; 输入:我讨厌苹果。 回答:你为什么讨厌苹果? 输入:我做运动。 回答:你为什么做运动

非常简单的东西,但我很难把句子中的每个单词都拆开,然后保存它们所属的类型。稍后我将讨论专有名词,因为现在我将讨论一个大约2000个名词的简单列表

from nouns import nouns_list
from adjectives import adjectives_list
from verbs import verbs_list
from adverbs import adverbs_list
from pronouns import pronouns_list



test = raw_input("Please input a fruit: ")

words = test.split()
    #numbers = map(int, test.split())
    #use later!


def word_identify(words):
    for word in words:
        if word in nouns_list:
            print words + " is a noun!"
            word == noun
        elif words in verbs_list:
            print words + " is a verb!"
            word == verb
        elif words in pronouns_list:
            print words + " is a pronoun!"
            word == pronoun
        elif words in adjectives_list:
            print words + " is an adjective!"
            word == adjective
        elif words in adverbs_list:
            print word + " is a adverb!"
            word == adverb
        elif words == 'i' or words == "I":
            print "This is the I pronoun!"
            word == 'you'
        else:
            print "Word " + words + " not identified!"
            return -1
        return 1

while word_identify(test) > 0:
    test = raw_input("Please input a fruit: ")
最后,我将只刊登一个简单的广告“为什么”+动词+名词+'?” 基本上,我问的是如何正确使用.split()函数,以及如果特定单词被触发,我如何记得使用哪个函数?事实上,它将返回一个动词在一个不适当的时态是罚款我,我会处理这以后! 非常感谢 布拉姆


编辑:忽略
numbers=map(int,test.split())

当您使用
=
操作符时,您正在比较两个对象。因此,
word==副词
根据对象是否相等返回
True
False
。相反,请尝试以下方法:

def word_identify(words):
    parts_of_speech = []
    for word in words:
        if word in nouns_list:
            print word + " is a noun!"
            part_of_speech = 'noun'
        elif words in verbs_list:
            print word + " is a verb!"
            part_of_speech = 'verb'
        ...
        else:
            print "Word " + word + " not identified!"
            part_of_speech = None
        parts_of_speech.append(part_of_speech)
    return parts_of_speech
然后,
word\u identify()
将返回类似以下内容的列表:

['pronoun', 'verb', 'noun']
如果它不能识别一个单词:

['pronoun', None, 'noun']
选中此项:

d = {'noun':nouns_list, 
     'pronoun':pronouns_list,
     'adjective':adjectives_list,
     'verb':verbs_list,
     'adverb':adverbs_list
}

def part_of_speech(word):
    for pos,l in d.items():
        if word in l:
            return pos
    return None

def get_parts_of_speech(sentence):
    return [part_of_speech(word.lower()) for word in sentence.split()]

sentence = raw_input("Enter a three word sentence [<noun> <verb> <pronoun>]:");

print "The parts are:", get_parts_of_speech(sentence)
d={'noon':名词列表,
“代词”:代词列表,
“形容词”:形容词列表,
“动词”:动词列表,
“副词”:副词列表
}
def词性部分(单词):
对于pos,d中的l项()
如果单词在l中:
返回位置
一无所获
def get_词类(句子):
返回句子中单词的[词性部分(word.lower()).split()]
句子=原始输入(“输入一个三字句子[]:”);
打印“部件是:”,获取演讲(句子)的部件

这非常有帮助!唯一的问题是,现在它没有输出任何东西!我查看了代码,无法找出原因,因为打印功能确实存在。您必须发布一些代码,否则我们看不到问题。如果您的问题已解决,请选择一个答案标记为正确。