-1

ユーザーが操作したいデータ本体を動的に選択できるようにしたいと思います。これを行うには、ユーザーが選択した「コーパス」を特定した後、適切なコーパスをインポートする必要があります。(私は Python 2.7.3 で実行しています)

corpora_ls = ["gutenberg","inaugural","movie_reviews","state_union"]
import_validation = False

while not import_validation:
    print "Corpora Options: \"gutenberg\", \"inaugural\", \"movie_reviews\", \"state_union\"."
    import_option = str(raw_input("What corpus would you like to import? "))

    if import_option in corpora_ls:
        import_validation = True

        if import_option == "gutenberg":
            fname = "gutenberg"
            from nltk.corpus import gutenberg as DATA
        elif import_option == "inaugural":
            fname = "inaugural"
            from nltk.corpus import inaugural as DATA
        elif import_option == "movie_reviews":
            fname = "movie_reviews"
            from nltk.corpus import movie_reviews as DATA
        elif import_option == "state_union":
            fname = "state_union"
            from nltk.corpus import state_union as DATA
    else:
        print "Please enter one of the available corpora as listed.\n"

率直に言って、このコードは面倒に見えます。次のような趣旨のことを簡単に言いたいと思います。

if import_option == "gutenberg":
    fname = "gutenberg"
elif import_option == "inaugural":
    fname = "inaugural"

   etc....

from nltk.corpus import import_option as DATA

from nltk.corpus...etc.ごとに個別に行うのではなく、if/elif

このようなことは可能ですか?

助けてくれてありがとう!

4

1 に答える 1

5

はい。使用できますgetattr

import nltk.corpus
corpus_data = getattr(nltk.corpus, corpus_name)
于 2013-04-12T03:56:58.697 に答える