首页 > 解决方案 > 关于Keras中skipgram函数结果冲突的问题

问题描述

我对 keras.preprocessing.sequence 中的 skipgram 函数有疑问。

在规范中,link、skipgrams 函数使用字典生成负样本。

为了理解 skipgrams,我打印了 skipgrams 函数的结果。

我注意到有一个冲突的结果,正样本和负样本两边都有一对。

这些数据对模型没有影响吗?

或者

大字典可以忽略这些冲突吗?

我的代码如下:

samplingTable = keras.preprocessing.sequence.make_sampling_table(26)

print (samplingTable)
targetList = [random.randint(0,25) for i in range(200)]

couple, labels = keras.preprocessing.sequence.skipgrams(targetList, 26, sampling_table=samplingTable,shuffle=False )

result= []
for i in range(len(labels)):
    result.append("{}\t{}\t{}".format(couple[i][0],couple[i][1],labels[i]))

for i in sorted(result):
    print (i)

以下是代码的结果。(8,24), (8,25) 是冲突的。(正1负0)

target  context isExist
8   1   1
8   10  0
8   10  0
8   11  1
8   12  0
8   14  0
8   2   1
8   24  0
8   24  1
8   25  0
8   25  1

标签: pythonkerasword2vec

解决方案


推荐阅读