回答此问题可获得 20 贡献值,回答如果被采纳可获得 50 分。
<p>我有一个单词对列表,并希望描述ID上的单词。id应该从0到len(set(words))。现在的列表如下所示:</p>
<pre><code>[['pluripotent', 'Scharte'],
['Halswirbel', 'präventiv'],
['Kleiber', 'Blauspecht'],
['Kleiber', 'Scheidung'],
['Nillenlutscher', 'Salzstangenlecker']]
</code></pre>
<p>结果应该具有相同的格式,但是使用id代替。例如:</p>
<pre><code>[[0, 1],
[2, 3],
[4, 5],
[4, 6],
[7, 8]]
</code></pre>
<p>到目前为止,我有这个,但它没有给我正确的输出:</p>
<pre><code>def words_to_ids(labels):
vocabulary = []
word_to_id = {}
ids = []
for word1,word2 in labels:
vocabulary.append(word1)
vocabulary.append(word2)
for i, word in enumerate(vocabulary):
word_to_id [word] = i
for word1,word2 in labels:
ids.append([word_to_id [word1], word_to_id [word1]])
print(ids)
</code></pre>
<p>输出:</p>
<pre><code>[[0, 0], [2, 2], [6, 6], [6, 6], [8, 8]]
</code></pre>
<p>它是在有唯一单词的地方重复id。你知道吗</p>