當前位置: 首頁>>代碼示例>>Python>>正文


Python corpora.Dictionary方法代碼示例

本文整理匯總了Python中gensim.corpora.Dictionary方法的典型用法代碼示例。如果您正苦於以下問題:Python corpora.Dictionary方法的具體用法?Python corpora.Dictionary怎麽用?Python corpora.Dictionary使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在gensim.corpora的用法示例。


在下文中一共展示了corpora.Dictionary方法的15個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Python代碼示例。

示例1: load_dictionary

# 需要導入模塊: from gensim import corpora [as 別名]
# 或者: from gensim.corpora import Dictionary [as 別名]
def load_dictionary(filename: str) -> corpora.Dictionary:
    """辭書をロードする。

    Args:
        filename (str): ファイル名。
    Returns:
        corpora.Dictionary: 辭書。
    """
    dic = corpora.Dictionary.load(filename)
    # if with_symbol and \
    #         not (dic.token2id["<S>"] == 0 and dic.token2id["</S>"] == 1):
    #     raise Exception("<S> and </S> ids should be 0 and 1")

    print("load dictionary: {} items".format(len(dic.values())))
    # print([item for item in dic.items()][:10])
    return dic 
開發者ID:kenkov,項目名稱:seq2seq,代碼行數:18,代碼來源:util.py

示例2: __init__

# 需要導入模塊: from gensim import corpora [as 別名]
# 或者: from gensim.corpora import Dictionary [as 別名]
def __init__(self, sentences_file, stopwords):
        self.dictionary = None
        self.corpus = None
        f_sentences = codecs.open(sentences_file, encoding='utf-8')
        documents = list()
        count = 0
        print("Gathering sentences and removing stopwords")
        for line in f_sentences:
            line = re.sub('<[A-Z]+>[^<]+</[A-Z]+>', '', line)

            # remove stop words and tokenize
            document = [word for word in nltk.word_tokenize(line.lower()) if word not in stopwords]
            documents.append(document)
            count += 1
            if count % 10000 == 0:
                sys.stdout.write(".")

        f_sentences.close()

        self.dictionary = corpora.Dictionary(documents)
        self.corpus = [self.dictionary.doc2bow(text) for text in documents]
        self.tf_idf_model = TfidfModel(self.corpus)

        print(len(documents), "documents red")
        print(len(self.dictionary), " unique tokens") 
開發者ID:davidsbatista,項目名稱:Snowball,代碼行數:27,代碼來源:VectorSpaceModel.py

示例3: sum_bigram

# 需要導入模塊: from gensim import corpora [as 別名]
# 或者: from gensim.corpora import Dictionary [as 別名]
def sum_bigram(sent, model):
    sent = sent.split()
    first = True
    tot = 0
    for i in range(len(sent)):
        try:
            if first:
                tot += model[None][sent[i]]
                first = False
            else:
                tot += model[sent[i-1]][sent[i]]
        except:
            continue
    return tot

#Training Trigram Model[Returns Dictionary of Dictionaries]: 
開發者ID:GauravBh1010tt,項目名稱:DeepLearn,代碼行數:18,代碼來源:lex_sem_ft.py

示例4: LDA_train

# 需要導入模塊: from gensim import corpora [as 別名]
# 或者: from gensim.corpora import Dictionary [as 別名]
def LDA_train(doc):
    red = []
    en_stop = get_stop_words('en')
    for d in doc:
        try:
            raw = d.lower()
            tokens = tokenizer.tokenize(raw)
            stopped_tokens = [i for i in tokens if not i in en_stop]
            red.append(stopped_tokens)
        except:
            continue
    print("Forming Dictionary.....")
    dictionary = corpora.Dictionary(red)
    print("Forming Corpus.....")
    corpus = [dictionary.doc2bow(text) for text in red]
    print("Training Model.....")
    lda = models.ldamodel.LdaModel(corpus, num_topics=10, id2word = dictionary, passes=1)
    return lda

#Returns Average Of Probablity Of Word Present In LDA Model For Input Document(Returns Float): 
開發者ID:GauravBh1010tt,項目名稱:DeepLearn,代碼行數:22,代碼來源:lex_sem_ft.py

示例5: build_lsi_model

# 需要導入模塊: from gensim import corpora [as 別名]
# 或者: from gensim.corpora import Dictionary [as 別名]
def build_lsi_model(corpus_name, corpus_path, topics=300):
	logging.info( 'building lsi model for %s corpus', corpus_name )
	dictFile = corpus_path + corpus_name + '.dict'
	corpus_tfidf_file = corpus_path + corpus_name + '.tfidf.mm'
	
	logging.info( 'loading dictionary ...' )
	dictionary = corpora.Dictionary.load(dictFile)
	logging.info( 'loading tfidf corpus ...' )
	corpus_tfidf = corpora.MmCorpus(corpus_tfidf_file)
	logging.info( 'building lsi model' )
	lsi = models.LsiModel(corpus_tfidf, id2word=dictionary, num_topics=topics)
	logging.info( 'saving lsi' )
	lsiFile = corpus_path + corpus_name + '.lsi'
	lsi.save(lsiFile)
	logging.info( 'lsi model is ready' )
################################################################################## 
開發者ID:motazsaad,項目名稱:comparable-text-miner,代碼行數:18,代碼來源:textpro.py

示例6: _build_corpus

# 需要導入模塊: from gensim import corpora [as 別名]
# 或者: from gensim.corpora import Dictionary [as 別名]
def _build_corpus(sentences):
    """Construct corpus from provided sentences.

    Parameters
    ----------
    sentences : list of :class:`~gensim.summarization.syntactic_unit.SyntacticUnit`
        Given sentences.

    Returns
    -------
    list of list of (int, int)
        Corpus built from sentences.

    """
    split_tokens = [jieba_cut(sentence) for sentence in sentences]
    dictionary = Dictionary(split_tokens)
    return [dictionary.doc2bow(token) for token in split_tokens] 
開發者ID:yongzhuo,項目名稱:nlg-yongzhuo,代碼行數:19,代碼來源:textrank_gensim.py

示例7: tokens2ids

# 需要導入模塊: from gensim import corpora [as 別名]
# 或者: from gensim.corpora import Dictionary [as 別名]
def tokens2ids(
    tokens: List[str],
    dictionary: corpora.Dictionary,
    verbose: bool=False
) -> List[int]:
    if verbose:
        not_found_lst = [
            word for word in tokens if word not in dictionary.token2id
        ]
        if not_found_lst:
            print("not found in dict: {}".format(
                not_found_lst
            ))
        for word in tokens:
            if word in dictionary and dictionary.token2id[word] < 0:
                raise("word id < 0: {}".format(word))

    # 未知語は UNK にする
    return [
        dictionary.token2id[word] if word in dictionary.token2id
        else dictionary.token2id[config.UNK_SYMBOL]
        for word in tokens
    ] 
開發者ID:kenkov,項目名稱:seq2seq,代碼行數:25,代碼來源:util.py

示例8: latent_dirichlet_allocation

# 需要導入模塊: from gensim import corpora [as 別名]
# 或者: from gensim.corpora import Dictionary [as 別名]
def latent_dirichlet_allocation(corpus_fname, output_fname, tokenizer_name="mecab"):
    make_save_path(output_fname)
    documents, tokenized_corpus = [], []
    tokenizer = get_tokenizer(tokenizer_name)
    with open(corpus_fname, 'r', encoding='utf-8') as f:
        for document in f:
            tokens = list(set(tokenizer.morphs(document.strip())))
            documents.append(document)
            tokenized_corpus.append(tokens)
    dictionary = corpora.Dictionary(tokenized_corpus)
    corpus = [dictionary.doc2bow(text) for text in tokenized_corpus]
    LDA = ldamulticore.LdaMulticore(corpus, id2word=dictionary,
                                    num_topics=30,
                                    minimum_probability=0.0,
                                    workers=4)
    # 특정 토픽의 확률이 0.5보다 클 경우에만 데이터를 리턴한다
    # 확률의 합은 1이기 때문에 해당 토픽이 해당 문서에서 확률값이 가장 큰 토픽이 된다
    all_topics = LDA.get_document_topics(corpus, minimum_probability=0.5, per_word_topics=False)
    with open(output_fname + ".results", 'w') as f:
        for doc_idx, topic in enumerate(all_topics):
            if len(topic) == 1:
                topic_id, prob = topic[0]
                f.writelines(documents[doc_idx].strip() + "\u241E" + ' '.join(tokenized_corpus[doc_idx]) + "\u241E" + str(topic_id) + "\u241E" + str(prob) + "\n")
    LDA.save(output_fname + ".model") 
開發者ID:ratsgo,項目名稱:embedding,代碼行數:26,代碼來源:sent_utils.py

示例9: main

# 需要導入模塊: from gensim import corpora [as 別名]
# 或者: from gensim.corpora import Dictionary [as 別名]
def main():
    corpora_documents = []
    for item_text in raw_documents:
        item_str = list(jieba.cut(item_text))
        corpora_documents.append(item_str)

    dictionary = corpora.Dictionary(corpora_documents)
    corpus = [dictionary.doc2bow(text) for text in corpora_documents]

    similarity =similarities.Similarity('-Similarity-index', corpus, num_features=400)

    test_data_1 = '你好,我想問一下我想離婚他不想離,孩子他說不要,是六個月就自動生效離婚'
    test_cut_raw_1 = jieba.cut(test_data_1)
    test_corpus_1 = dictionary.doc2bow(test_cut_raw_1)
    similarity.num_best = 5
    # 返回最相似的樣本材料,(index_of_document, similarity) tuples
    print(similarity[test_corpus_1]) 
開發者ID:jarvisqi,項目名稱:nlp_learning,代碼行數:19,代碼來源:text.py

示例10: train

# 需要導入模塊: from gensim import corpora [as 別名]
# 或者: from gensim.corpora import Dictionary [as 別名]
def train(self, prefix: str, corporas: list):
        """ 訓練模型
        保存字典,語料,模型到磁盤

        Arguments:
            prefix {str} -- 模型名稱前綴
            corpora_documents {list} -- 分詞後的文本
        """
        # 生成字典和向量語料
        dictionary = corpora.Dictionary(corporas)
        dictionary.save('./models/{}_dict.dic'.format(prefix))  # 保存生成的詞典

        corpus = [dictionary.doc2bow(text) for text in corporas]
        corpora.MmCorpus.serialize('./models/{}_corpuse.mm'.format(prefix), corpus)  # 保存生成的語料
        tfidf_model = models.TfidfModel(corpus)
        tfidf_model.save("./models/{}_tfidf_model.model".format(prefix))  # 保存Tfidf模型 
開發者ID:jarvisqi,項目名稱:nlp_learning,代碼行數:18,代碼來源:docsim.py

示例11: genDictionary

# 需要導入模塊: from gensim import corpora [as 別名]
# 或者: from gensim.corpora import Dictionary [as 別名]
def genDictionary(self,documents,**kwarg):
        '''Generate dictionary and bow-vector of all tokenzied news(articles).

        # Arguments:
            documents: List of news(articles).
            saveDict: Save dictionary or not(bool type).
            saveBowvec: Save bow-vector or not(bool type).
            returnValue: Return value or not(bool type).
        '''
        self._raw_documents = documents
        token = self.jieba_tokenize(documents) #jieba tokenize
        #corpora_documents = self.RemoveWordAppearOnce(token)  # remove thw words appearing once in the dictionary
        self._dictionary = corpora.Dictionary(token)  # generate dictionary using tokenized documents  
        if kwarg['saveDict']:
            self._dictionary.save(kwarg['saveDictPath']) # store the dictionary, for future reference
        self._BowVecOfEachDoc = [self._dictionary.doc2bow(text) for text in token]  # convert tokenized documents to vectors
        if kwarg['saveBowvec']:
            corpora.MmCorpus.serialize(kwarg['saveBowvecPath'], self._BowVecOfEachDoc)  # store to disk, for later use
        if kwarg['returnValue']:
            return token, self._dictionary, self._BowVecOfEachDoc 
開發者ID:DemonDamon,項目名稱:Listed-company-news-crawl-and-text-analysis,代碼行數:22,代碼來源:text_processing.py

示例12: init_tfidf_chinese_or_pinyin

# 需要導入模塊: from gensim import corpora [as 別名]
# 或者: from gensim.corpora import Dictionary [as 別名]
def init_tfidf_chinese_or_pinyin(sources_path):
    """
      構建td_idf
    :param path: 
    :return: 
    """
    questions = txtRead(sources_path)
    corpora_documents = []
    for item_text in questions:
        item_seg = list(jieba.cut(str(item_text).strip()))
        corpora_documents.append(item_seg)

    dictionary = corpora.Dictionary(corpora_documents)
    corpus = [dictionary.doc2bow(text) for text in corpora_documents]
    tfidf_model = models.TfidfModel(corpus)
    print("init_tfidf_chinese_or_pinyin ok! " + sources_path)
    file = open(sources_path.replace(".csv", "_dictionary_model.pkl"), 'wb')
    pickle.dump([dictionary, tfidf_model], file) 
開發者ID:yongzhuo,項目名稱:nlp_xiaojiang,代碼行數:20,代碼來源:cut_td_idf.py

示例13: get_dictionary

# 需要導入模塊: from gensim import corpora [as 別名]
# 或者: from gensim.corpora import Dictionary [as 別名]
def get_dictionary(df):
		logger.debug("一共%d行文本數據", len(df))

		all_rows = []
		for one in df['html_cut']:
			#不知為何從csv加載的有的html切詞是nan,然後識別成float類型了,加上這個做錯誤處理
			if not isinstance(one, str):
				logger.error("當前行的html_cut數據類型不是Str:%r", one)
				continue
			cut_content_list = one.split(" ")
			all_rows.append(cut_content_list)
		# 得到詞典
		dictionary = corpora.Dictionary(all_rows)
		#為了防止未來詞表亂掉,先保存一個詞表,固定下來。後續的分類驗證的時候,會用這個固定詞表
		# dictionary.save("out/dictionary.dic")
		logger.debug("詞袋一共%d個詞", len(dictionary.keys()))

		return dictionary 
開發者ID:newsettle,項目名稱:ns4_chatbot,代碼行數:20,代碼來源:dbscan_analysis.py

示例14: build_dictionary

# 需要導入模塊: from gensim import corpora [as 別名]
# 或者: from gensim.corpora import Dictionary [as 別名]
def build_dictionary(self):
        print('%s: build dictionary' % time.strftime("%Y/%m/%d-%H:%M:%S"))

        if self.use_cache and os.path.exists(Constants.DICTIONARY_FILE):
            print('Dictionary already exists')
            self.dictionary = corpora.Dictionary.load(Constants.DICTIONARY_FILE)
            return

        all_words = []

        for record in self.records:
            all_words.append(record[Constants.BOW_FIELD])

        self.dictionary = corpora.Dictionary(all_words)

        self.dictionary.filter_extremes(
            Constants.MIN_DICTIONARY_WORD_COUNT,
            Constants.MAX_DICTIONARY_WORD_COUNT)

        self.dictionary.save(Constants.DICTIONARY_FILE) 
開發者ID:melqkiades,項目名稱:yelp,代碼行數:22,代碼來源:reviews_preprocessor.py

示例15: get_topic_distribution

# 需要導入模塊: from gensim import corpora [as 別名]
# 或者: from gensim.corpora import Dictionary [as 別名]
def get_topic_distribution(self, review):
        """

        :type review: str
        """
        review_bow = lda_context_utils.create_bag_of_words([review])
        dictionary = corpora.Dictionary(review_bow)
        corpus = dictionary.doc2bow(review_bow[0])
        lda_corpus = self.lda_model.get_document_topics(corpus)

        topic_distribution =\
            lda_document_to_topic_distribution(lda_corpus, self.num_topics)

        return topic_distribution

    # TODO: Adapt this to a data structure in which a user can rate the same
    # item multiple times in different contexts 
開發者ID:melqkiades,項目名稱:yelp,代碼行數:19,代碼來源:context_knn.py


注:本文中的gensim.corpora.Dictionary方法示例由純淨天空整理自Github/MSDocs等開源代碼及文檔管理平台,相關代碼片段篩選自各路編程大神貢獻的開源項目,源碼版權歸原作者所有,傳播和使用請參考對應項目的License;未經允許,請勿轉載。