好的,我一遍又一遍地思考它,但我只是python的初学者,我找不到任何解决方案。 这是我需要做的: 我有一个来自LIWC的文本文件,背后有各种荷兰语单词和数字:
aaien 12 13 32
aan 10
aanbad 12 13 14 57 58 38
...
然后我从LIWC获得了一个文本文件,后面有一个数字和一个类别:
01:Pronoun
02:I
03:We
04:Self
05:You
06:Other
...
现在我应该将我自己的语料库与这些类别的荷兰语单词联系起来。首先,我必须将我的荷兰语单词与LIWC单词列表中荷兰语单词后面的数字相关联,然后我将必须将这些数字与这些类别相关联...... 我认为从LIWC制作两个列表的字典会很有用。 这是我到目前为止所得到的:
with open('LIWC_words.txt', 'rU') as document:
answer = {}
for line in document:
line = line.split()
if not line: #empty line
continue
answer[line[0]] = line[1:]
with open ('LIWC_categories.txt','rU') as document1:
categoriesLIWC = {}
for line in document1:
line = line.strip()
if not line:
continue
key, value = line.split(':')
if key.isdigit():
categoriesLIWC[int(key)] = value
else:
categoriesLIWC[key] = value
所以我现在有两本词典......但现在我被卡住了。有谁知道我接下来该做什么? (我使用python 2.6.5,因为我必须主要使用NLTK)
答案 0 :(得分:0)
我不确定您要创建的最终格式。例如,您可以创建一个字典,其中dict['pronoun']
包含document
中包含'01'
的所有行。
#for example from this format
dic = {'word1': [1,2,3], 'word2':[3,2]}
ref = {1: 'pronoun', 2: 'I' , 3: 'you'}
out = {}
for word in dic:
for entry in dic[word]:
if entry in out:
out[entry].append(word)
else:
out[entry] = []
out[entry].append(word)
print out
>>>{1: ['word1'], 2: ['word1', 'word2'], 3: ['word1', 'word2']}
或者,您可以将document
中的数字替换为document1
中的条目。
#for example from this format
dic = {'word1': [1,2,3], 'word2':[3,2]}
ref = {1: 'pronoun', 2: 'I' , 3: 'you'}
for word in dic:
for indx in range(len(dic[word])):
dic[word][indx] = ref[dic[word][indx]]
print dic
>>>{'word1': ['pronoun', 'I', 'you'], 'word2': ['you', 'I']}
否则你想过一个数据库吗?
答案 1 :(得分:0)
这是将数据转换为该格式的一种方法。
dic = {}
ref = {}
tempdic = open('dic.txt','r').read().split('\n')
tempref = open('ref.txt','r').read().split('\n')
for line in tempdic:
if line:
line = line.split()
dic[line[0]] = line[1:]
for line in tempref:
if line:
line = line.split(':')
ref[line[0]] = line[1]
#dic = {'word1':[1,2,3], word2:[2,3]...}
#ref = {1:'ref1',2:'ref2',...}
for word in dic:
for indx in range(len(dic[word])):#for each number after word
dic[word][indx] = ref[dic[word][indx]]
让我们说我们从{'apple':[1,2,3]}
开始。 dic['apple'][0]
将解析为1
,右侧将为ref[1]
,可能为'pronoun'
。这将使我们留下{'apple' : ['pronoun', 2, 3]
,其余的数字将在下一次迭代时被替换。