Gensim-python: Есть ли простой способ узнать, сколько раз данный токен возникает во всех документах? - PullRequest
0 голосов
/ 15 декабря 2018

Моя модель gensim выглядит следующим образом:

class MyCorpus(object):
    parametersList = []
    def __init__(self,dictionary):
       self.dictionary=dictionary
    def __iter__(self):
        #for line in open('mycorpus.txt'):
        for line in texts:
            # assume there's one document per line, tokens separated by whitespace
            yield self.dictionary.doc2bow(line[0].lower().split())




if __name__=="__main__":
    texts=[['human human interface computer'],
             ['survey user user computer system system system response time'],
             ['eps user interface system'],
             ['system human system eps'],
             ['user response time'],
             ['trees'],
             ['graph trees'],
             ['graph minors trees'],
             ['graph minors minors survey survey survey']]


    dictionary = corpora.Dictionary(line[0].lower().split() for line in texts)

    corpus= MyCorpus(dictionary)

Частота каждого токена в каждом документе оценивается автоматически.

Я также могу определить модель tf-idf и получить доступ к tf-IDF статистика для каждого токена в каждом документе.

model = TfidfModel(corpus)

Однако я понятия не имею, как подсчитать (с учетом памяти) количество документов, которые возникают с данным словом.Как я могу это сделать? [Конечно ... Я могу использовать значения tf-idf и частоту документа, чтобы оценить это ... Однако я хотел бы оценить это непосредственно из некоторого процесса подсчета]

Например, для первого документа я хотел бы получить somenthing как

[('human',2), ('interface',2), ('computer',2)]

, так как каждый вышеупомянутый токен возникает дважды в каждом документе.

Для второго.

[('survey',2), ('user',3), ('computer',2),('system',3), ('response',2),('time',2)]

1 Ответ

0 голосов
/ 15 декабря 2018

Как насчет этого?

from collections import Counter

documents = [...]
count_dict = [word_count(document) for filename in documents]

total = sum(count_dict, Counter())

Я предположил, что все ваши строки - разные документы / файлы.Вы можете внести соответствующие изменения.Также внесены изменения в код.

...