SVN сжимает двоичное содержание?

У вас есть две ошибки. Во-первых, у вас есть простая опечатка, здесь:

for word1,word2 in labels:
    ids.append([word_to_id [word1], word_to_id [word1]])

Вы добавляете идентификатор для word1 дважды , там. Исправьте второй word1, чтобы найти word2 вместо этого.

Далее, вы не проверяете, видели ли вы слово раньше, поэтому для 'Kleiber' вы сначала даете ему идентификатор 4, а затем переписываете эту запись на 6 на следующей итерации. Вам нужно дать уникальные слова, а не все слова:

counter = 0
for word in vocabulary:
    if word not in word_to_id:
        word_to_id[word] = counter
        counter += 1

, иначе вы просто не можете добавить слово в vocabulary, если у вас уже есть это слово в списке. Кстати, вам не нужен отдельный список vocabulary. Отдельный цикл ничего не покупает, поэтому работает также следующее:

word_to_id = {}
counter = 0
for words in labels:
    for word in words:
        word_to_id [word] = counter
        counter += 1

Вы можете немного упростить свой код, используя defaultdict объект и itertools.count() для предоставления значений по умолчанию:

from collections import defaultdict
from itertools import count

def words_to_ids(labels):
    word_ids = defaultdict(count().__next__)
    return [[word_ids[w1], word_ids[w2]] for w1, w2 in labels]

Объект count() дает вам следующее целочисленное значение в серии каждый раз, когда вызывается __next__, и defaultdict() будет вызывать это каждое время, когда вы пытаетесь получить доступ к ключу, который еще не существует в словаре. Вместе они обеспечивают уникальный идентификатор для каждого уникального слова.

7
задан 19 January 2009 в 16:23
поделиться

2 ответа

Думаю, да.

Отсюда: http://svn.apache.org/repos/asf/subversion/trunk/INSTALL

  * libz  (REQUIRED for client and server)
     Subversion uses zlib for compressing binary differences.
     These diff streams are used everywhere -- over the network,
     in the repository, and in the client's working copy.
12
ответ дан 6 December 2019 в 12:55
поделиться

Да, Подверсия сжимает новые файлы, а также изменения. (Сервер не заботится, является ли файл текстом или двоичным файлом.)

Отметьте, однако: если файл, который Вы добавляете, будет уже сжат (например, архив zip, mp3 файл, JPEG, GIF), то подверсия не сможет сделать его немного меньшим.

4
ответ дан 6 December 2019 в 12:55
поделиться
Другие вопросы по тегам:

Похожие вопросы: