Я создал следующий класс для реализации инвертированного индекса в Python. Я читаю вопросы из пары вопросов о кворе. Вопросы в этой форме:
---------------------------
qid |question
---------------------------
1 |Why do we exist?
2 |Is there life on Mars?
3 |What happens after death?
4 |Why are bananas yellow?
Проблема в том, что я хочу, чтобы qid передавался вместе с каждым словом в инвертированном индексе, чтобы я знал после его создания, из какого вопроса происходит каждое слово, и легко к нему обращаюсь.
class Index:
""" Inverted index datastructure """
def __init__(self):
self.index = defaultdict(list)
self.documents = {}
self.__unique_id = 0
def lookup(self, word):
"""
Lookup a word in the index
"""
word = word.lower()
if self.stemmer:
word = self.stemmer.stem(word)
return [self.documents.get(id, None) for id in self.index.get(word)]
def addProcessed(self, words):
"""
Add a document string to the index
"""
for word in words:
if self.__unique_id not in self.index[word]:
self.index[word].append(self.__unique_id)
self.documents[self.__unique_id] = words
self.__unique_id += 1
Как я могу реализовать это в моей структуре данных выше?