0

だから私はこのような数字と単語で構成されたこのテキスト(ワードネット)ファイルを持っています、例えばこのように -

"09807754 18 n 03 aristocrat 0 blue_blood 0 patrician"

そして、最初の数字を、それに続く単語の辞書名 (またはリスト) として読み込みたいと思います。このレイアウトは変更されません。常に 8 桁のキーの後に 2 桁の数字、1 文字、2 桁の数字が続きます。この最後の 2 桁の数字 (03) は、最初の 8 桁のキーに関連付けられている単語数 (この場合は 3 単語) を示します。

私の考えは、文字列の 14 番目を検索し、その数字を使用してループを実行し、そのキーに関連付けられているすべての単語を選択することでした。

だから私はそれがこのようになると思う

with open('nouns.txt','r') as f:
    for line in f:

        words = range(14,15)
        numOfWords = int(words)
            while i =< numOfWords
                #here is where the problem arises, 
                #i want to search for words after the spaces 3 (numOfWords) times 
                #and put them into a dictionary(or list) associated with the key
                range(0,7) = {word(i+1), word(i+2)}

技術的には、これらのいずれかがより意味のあるものを探しています:

09807754 = { 'word1':aristocrat, 'word2':blue_blood , 'word3':patrician }
or
09807754 = ['aristocrat', 'blue_blood', 'patrician']

明らかにこれは実行されませんが、誰かが私に何かポインタを与えることができれば、それは大歓迎です

4

2 に答える 2

0
res = {}
with open('nouns.txt','r') as f:
    for line in f:
        splited = line.split()
        res[splited[0]] = [w for w in splited[4:] if not w.isdigit()] 

出力:

{'09807754': ['aristocrat', 'blue_blood', 'patrician']}
于 2013-06-05T11:40:45.750 に答える