-1

Pythonを使用して文章を生成する必要があります。必要な単語はそのままあるのですが、作り方がわからないので、実行すると正しい文章しか出てきません。

これが私のコードです

import random

def S():
    print DP(), VP()

def DP():
    detPhrase = D() + ' ' + N()
    return detPhrase

def VP():
    randInt = random.randint(0,1)
    if randInt == 0:
        return V() 
    else:
        return V() + ' ' + DP()

def N():
    nouns = ['cat', 'dog', 'Bella']
    randInt = random.randint(0,len(nouns)-1)
    return nouns[randInt]

def D():
    articles = ['the', 'to']
    randInt = random.randint(0,len(articles)-1)
    return articles[randInt]

def V():
    verbs = ['ran','kissed','gave']
    randInt = random.randint(0,len(verbs)-1)
    return verbs[randInt]

for num in range(30):
    S()
4

4 に答える 4

2

チョムスキー階層について読む:http://en.wikipedia.org/wiki/Chomsky_hierarchy#Formal_grammars

于 2013-02-10T23:32:53.930 に答える
1

品詞を正しく識別することで、大幅な改善を行うことができます。「to」は前置詞であり、冠詞ではありません

articles = ['the', 'a']

シェイクスピアではありませんが、少なくとも私たちは球場にいます。

a dog kissed the dog
a dog kissed the dog
the cat kissed
a cat kissed
a cat gave the dog
a dog kissed the cat
the dog gave
a dog kissed the dog
于 2013-06-29T20:47:28.437 に答える
1

約 6 か月前、私は古いracterプログラムを思い出し、Python のバリエーションをまとめました。おそらく、実際の文生成よりも MadLib に近いでしょう。Utility Mill でオンライン ユーティリティとしてパッケージ化しました: http://utilitymill.com/utility/Graduation_speech

于 2013-02-10T23:42:45.263 に答える
0

クリスマス休暇中に、Python 3.3 に組み込まれた Prolog のような DSL であるhornetを作成しました。これはまだあまり良くありません - 概念の証明にすぎません - 説明するドキュメントはありませんが、単純なドイツ語の文の DCG ルールを含むファイルparsing.pyが付属しています。試してみて、コードを見てみましょう。多分それはあなたに役立つでしょう。

于 2013-02-11T00:38:22.373 に答える