Привет, мне нужно создать диктофон из списка уникальных слов, токенизированных и обработанных из нескольких файлов. Таким образом, окончательный формат словаря сообщений будет следующим: {wordid: [0, 1, ...], wordid2: [0, 1, ...]},
Я действительно борюсь с этим, единственный код, который у меня есть сейчас:
for i in range(len(docids)):
for word in vocab:
if word not in postings.keys():
postings[word] = []
else:
postings[word].append(i)
это просто выводит словарь с термином, а документы просто повторяют друг друга по странным шаблонам в зависимости от количества файлов, которые я попросил проиндексировать.
Пример ввода и ожидаемого вывода:
Doc1 = привет, меня зовут Джон, Doc2 = привет, меня зовут Смит.
Это составит список слов: ['привет', 'мой ', 'имя', 'есть', 'джон, 'привет', 'второй', 'кузнец'].
Каждое слово имеет wordid, который является просто индексом слова.
И docid: [0, 1]
(это просто подсчитывает документы и используется при создании списка сообщений, чтобы сказать: слово w встречается в документе doc)
Конечным результатом этого примера будет:
postings = {0: [0], 1: [0,1], 2: [0,1], 3: [0,1], 4: [0], 5: [1], 6: [1], 7: [1]}
Таким образом, этот словарь показывает каждый идентификатор слова (индекс каждого слова в словаре) и в каких документах он появляется.
Также предполагается, что программа в целом будет запускаться с терминала и передавать ей каталог и количество файлов в качестве аргументов.
docids
иvocab
? - person adir abargil   schedule 02.12.2020docids
,vocab
,postings
,...) и ожидаемым выходным словарем для этого случая. - person Querenker   schedule 02.12.2020