def create_dictionaries(model=None, combined=None): ''' Function does are number of Jobs: 1- Creates a word to index mapping 2- Creates a word to vector mapping 3- Transforms the Training and Testing Dictionaries ''' if (combined is not None) and (model is not None): gensim_dict = Dictionary() gensim_dict.doc2bow(model.vocab.keys(), allow_update=True) # freqxiao10->0 所以k+1 w2indx = {v: k+1 for k, v in gensim_dict.items()}#所有频数超过10的词语的索引,(k->v)=>(v->k) w2vec = {word: model[word] for word in w2indx.keys()}#所有频数超过10的词语的词向量, (word->model(word)) def parse_dataset(combined): # 闭包-->临时使用 ''' Words become integers ''' data=[] for sentence in combined: new_txt = [] for word in sentence: try: new_txt.append(w2indx[word]) except: new_txt.append(0) # freqxiao10->0 data.append(new_txt) return data # word=>index combined=parse_dataset(combined) combined= sequence.pad_sequences(combined, maxlen=maxlen)#每个句子所含词语对应的索引,所以句子中含有频数小于10的词语,索引为0 return w2indx, w2vec,combined else: print( 'No data provided...')
时间: 2024-02-10 19:10:07 浏览: 126
Chinese-Mandarin-Dictionaries:中文普通话词典-中文词典中文词典
这段代码定义了一个名为 `create_dictionaries` 的函数,它有两个参数 `model` 和 `combined`,分别表示 Word2Vec 模型和语料库数据。该函数的作用是:
1. 创建一个 word to index 的映射,将每个单词映射到一个整数值。
2. 创建一个 word to vector 的映射,将每个单词映射到其对应的词向量。
3. 转换训练集和测试集数据,将其转换为整数索引列表的形式。
如果 `model` 和 `combined` 参数都不为空,则会使用 gensim 库中的 Dictionary 类创建一个词袋模型,并将词袋模型中的单词和对应的索引添加到一个名为 `w2indx` 的字典中。然后,使用 Word2Vec 模型将每个单词映射到其对应的词向量,将其添加到一个名为 `w2vec` 的字典中。最后,使用闭包函数 `parse_dataset` 将语料库数据 `combined` 中的每个单词替换为其对应的索引值,从而将其转换为整数索引列表的形式。
如果 `model` 和 `combined` 参数中有一个为空,则会返回一个错误消息。
阅读全文